mybatis注解

Mybatis与Ibatis比较

心不动则不痛 提交于 2020-04-07 07:56:50
随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis 虽然从正式版发布至今也有近一年时间,官方也非常友好的提供了 中文版的使用手册 ,不过相信很多人还在项目中使用ibatis2.x版本。 究竟Mybatis有哪些新特性,能给我们带来哪些好处呢?以下是我看一位大侠研究后 1、Mybatis实现了接口绑定,使用更加方便。 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。 这可以说是Mybatis最重要的改进。 注意: 虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置, 不过强烈建议仍然使用xml配置的方式。毕竟annotation的配置方式功能有限且代码入侵性太强。使用xml配置方式才能体现出Mybatis的优势所在 2、对象关系映射的改进,效率更高 相信很多在使用ibatis2.x的朋友并没有通过ibatis的xml映射文件来实现对象间的关系映射。其实也确实没有必要那么做,因为ibatis2.x采用的是“嵌套查询”的方式将对象之间的关系通过查询语句的直接拼装来实现,其效果和在DAO或Service中自行封装是一样的。 不过这种方式存在“N+1查询问题”。 概括地讲,N

Spring Boot 自动装配流程

為{幸葍}努か 提交于 2020-04-06 11:06:25
Spring Boot 自动装配流程 本文以 mybatis-spring-boot-starter 为例简单分析 Spring Boot 的自动装配流程。 Spring Boot 发现自动配置类 这里说的自动配置类指的是在 META-INF/spring.factories 文件中声明的 XXXAutoConfiguration 类。 首先,我们从 @SpringBootApplication 注解的定义中,我们可以发现有一个叫做 @EnableAutoConfiguration 的注解,这也是 SpringBoot 实现自动装配最关键的注解。 //@EnableAutoConfiguration 注解的定义 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration { String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration" ; Class<?>[

Mybatis2

会有一股神秘感。 提交于 2020-04-02 09:26:49
Mybatis配置文件中的各个属性 1、mybatis可以使用properties来引入外部properties配置文件的内容 resource:引入类路径下的资源 url:引入网络路径或者磁盘路径下的资源 例子: dbConfig.properties(mysql) jdbc.driver=com:mysql.jdbc.driver jdbc.url=jdbc:mysql://localhost:3306//mybatis jdbc.username=root jdbc.password=123456 dbConfig.properties(oracle) orcl.driver=oracle.jdbc.OracleDriver orcl.url=jdbc:oracle:thin:@localhsot:1521:orcl orcl.username=scott orcl.password=123456 在全局配置文件引入dbConfig.properties <properties resource="dbConfig.properties"/> 2、Settings(改变mybatis的运行时行为) mapUnderscoreToCamelcase:是否开启驼峰命名规则(camel case)映射(从经典数据库列名A_COLUMN到经典Java属性名aColumn的类似映射)

MyBatis 系列文章

混江龙づ霸主 提交于 2020-03-30 20:50:47
一、MyBatis系列:第一个MyBatis工程 二、MyBatis系列:全局配置文件 三、MyBatis系列:Mapper映射详解 通过mapper映射文件来读取数据库记录 使用POJO实体来接收数据和传入参数 多级关联查询结果映射 关联对象属性及延迟加载 四、MyBatis系列:原始Dao方式开发 五、MyBatis系列:动态代理方式开发 六、MyBatis系列:注解方式开发 七、MyBatis系列:延迟加载 八、MyBatis系列:一级缓存的使用 九、MyBatis系列:二级缓存的使用 十、MyBatis系列:与Spring的整合 十一、MyBatis系列:逆向工程(自动生成代码) 十二、MyBatis系列:Plugins开发(分页插件) 来源: https://www.cnblogs.com/xialiang/p/4565137.html

【MyBatis源码分析】环境准备

家住魔仙堡 提交于 2020-03-30 20:49:25
Mybatis学习总结 《 Mybatis系列(一)入门 》 《 Mybatis系列(二)配置 》 《 Mybatis系列(三)简单示例 》 基础 但是实际使用不采用这个方式 参考 第九节 《 Mybatis系列(四)映射文件 》 《 Mybatis系列(五)动态SQL 》 可以的 《 Mybatis系列(六)接口式编程 》 这节很有用 《 Mybatis系列(七)关联映射 》 《 Mybatis系列(八)集合映射 》 《 Mybatis系列(九)Spring & Mybatis整合 》 这节很有用 《 Mybatis系列之实战篇(上) 》 《 Mybatis系列之实战篇(中) 》 《 Mybatis系列之实战篇(下) 》 Mybatis实战之TypeHandler高级进阶 Mybatis实战之自定义TypeHandler处理枚举 深入springMVC------文件上传源码解析(上篇) 深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇) 深入浅出Mybatis系列(九)---强大的动态SQL 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete 深入浅出Mybatis系列(六)---objectFactory

MyBatis映射器(转载)

心已入冬 提交于 2020-03-27 02:29:19
<div class="post-content" itemprop="articleBody"> <h2>什么是MyBatis映射器?</h2><p>MyBatis框架包括两种类型的XML文件,一类是配置文件,即mybatis-config.xml,另外一类是映射文件,例如XXXMapper.xml等。在<a href="http://www.mybatis.cn/680.html" target="_blank">MyBatis的配置文件mybatis-config.xml</a>包含了<mappers></mappers>节点,这里就是MyBatis映射器。</p><h2>1、MyBatis映射器发展历史简介</h2><p>映射器是MyBatis中最核心的组件之一,在MyBatis 3之前,只支持XML映射器,所有的SQL语句都必须在XML文件中配置。而从MyBatis 3开始,开始支持接口映射器,其底层利用的是接口绑定技术(注:面试中经常会问到的一个知识点,见下文5.1项介绍)。另外,接口映射器允许通过注解定义SQL语句,用以替代XML文件配置SQL。</p><h2>2、MyBatis映射器分类</h2><h3>MyBatis映射器分为三类,如下所示:</h3><p>(1)纯xml映射器,利用SqlSession的各种方法实现增删改查。例如:</p><pre><code

Mybatis(一)Mybatis相关概念

跟風遠走 提交于 2020-03-25 13:33:54
1.1 传统的JDBC实现 public static void main(String[] args) { Connection connetion = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try{ //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); connetion = DriverManager.getConnetion("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root"); //定义SQL语句 String sql = "Select * from user where username = ?"; //获取预处理statement preparedStatement = connection.preparedStatement(sql); preparedStatement.setString(1,"zbc"); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int id = resultSet.getInt

MyBatis执行原理图

元气小坏坏 提交于 2020-03-23 06:44:07
作者:W&L 推荐: 陶邦仁的博客   (1)加载配置并初始化 触发条件: 加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。 (2) 接收调用请求 触发条件: 调用Mybatis提供的API 传入参数 :为SQL的ID和传入参数对象 处理过程: 将请求传递给下层的请求处理层进行处理。 (3)处理操作请求 触发条件: API接口层传递请求过来 传入参数 :为SQL的ID和传入参数对象 处理过程: (A)根据SQL的ID查找对应的MappedStatement对象。 (B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。 (C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。 (D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。 (E)释放连接资源。 (4)返回处理结果 将最终的处理结果返回。 1.1 分析结论 1、 mybatis 配置文件,包括 Mybatis 全局配置文件和 Mybatis 映射文件 ,其中全局配置文件配置了数据源、事务等信息;映射文件配置了 SQL

MyBatis持久层框架学习之01 MyBatis的起源和发展

柔情痞子 提交于 2020-03-23 05:47:04
一、MyBatis的简介    MyBatis 是支持定制化 SQL、存储过程以及 高级映射 的优秀的持久层框架。   MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis可以使用简单的XML或注解用于配置和原始映射, 将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 . 二、MyBatis的历史    原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation 迁移到了google code,随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis ,代码于2013年11月迁移到Github。   iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)    三、MyBatis的基本说明   (1)、MyBatis是一个工作在持久层的框架,它 不再是一个标准的ORM框架      我们先看看Hibernate是如何对数据库进行操作    我们再来看看Mybatis如何对数据库进行操作    因为它只管理了SQL语句和Java之间的关联和映射

Spring + Spring MVC + MyBatis 整合

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-20 15:16:14
1.所需要 Jar包 ? <!-- Spring3. 0.1 包 --> org.springframework.web- 3.0 . 1 系列 <!-- 公共包 --> slf4j-api- 1.5 . 6 .jar slf4j-log4j12- 1.5 . 6 .jar log4j- 1.2 . 13 .jar commons-logging- 1.1 . 1 .jar asm- 3.1 .jar cglib- 2.2 .jar <!-- mybatis与Spring的整合所需的包 --> mybatis- 3.0 . 5 .jar aopalliance- 1.0 .jar mybatis-spring- 1.0 . 1 .jar mybatis-generator-core- 1.3 . 1 .jar(mybatis代码生成器包) <!-- jdbc driven --> mysql-connector-java- 3.1 . 6 -bin.jar <!-- JSR验证-Hibernate validate 4.1 --> hibernate-validator- 4.1 . 0 .Final.jar validation-api- 1.0 . 0 .GA.jar <!-- Spring Json 支持包 --> jackson-all- 1.8 . 1 .jar 2.