mybatis 学习笔记
2012-04-13 16:26
281 查看
小小接触了下 mybatis,没有和其它框架集成,单独使用了下,感觉还是蛮强大的,学习曲线也比较低。因为文档也比较丰富吧,所以遇到问题也很容易解决。
一、mybatis基本介绍:三类二文件
三类:
SqlSessionFactoryBuilder 用于创建 SqlSessionFactory ,在方法体或类到处实例化使用
SqlSessionFactory 用于创建SqlSession ,属于重量级组件,生命周期是整个应用,所以应该只创建一次
SqlSession 用于数据库操作实例,每个线程应该有单独的SqlSession实例,线程不安全,使用后及时关闭,回收资源
二文件:
配置文件:配置数据源信息 和 数据库优化配置等信息
映射文件:可读性和可拓展性需要,针对不同数据表对象操作有一个映射文件,存放各种数据库操作SQL语句
二、mybatis强大处
① 结果映射
经常有业务需求,进行多表查询,这样单纯的OM就不能满足需求,mybatis提供resultMap查询结果类型,按照下面配置结构,在select语句中配置resultMap="userResultMap",则可以得到实例对象。
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="user_name"/>
<result property="password" column="hashed_password"/>
</resultMap>
②动态SQL
当进行条件查询时,有时业务需求为这样,当一个指定查询条件为空,则查询全部信息,不为空,这查询该条件下的结果,针对这种情况,mybatis提供了强大的动态SQL,可以在SQL文中,嵌入像IF,CHOOSE,WHEN等判断语句:此时注意,查询参数类型 《1》参数类型为映射对象时,判断条件应该为对应的属性,这个可以很好理解。《2》参数类型为普通数据类型时,则应该使用map类型传入(其它方式还没有用成功过),以key-value形式传入,这样key为判断条件,同事赋值也应该以key处理,举例说明:
有如下操作需要:
Map<String, String> map = new HashMap<String, String>();
map.put("aaa","%test%");
List<UserInfo> list = dao.query(map);
则在映射文件中为
<select id="query" parameterType="map" resultMap="userInfoMap">
<if test="aaa != null">and a.UserName like #{aaa}</if>
</select>
一、mybatis基本介绍:三类二文件
三类:
SqlSessionFactoryBuilder 用于创建 SqlSessionFactory ,在方法体或类到处实例化使用
SqlSessionFactory 用于创建SqlSession ,属于重量级组件,生命周期是整个应用,所以应该只创建一次
SqlSession 用于数据库操作实例,每个线程应该有单独的SqlSession实例,线程不安全,使用后及时关闭,回收资源
二文件:
配置文件:配置数据源信息 和 数据库优化配置等信息
映射文件:可读性和可拓展性需要,针对不同数据表对象操作有一个映射文件,存放各种数据库操作SQL语句
二、mybatis强大处
① 结果映射
经常有业务需求,进行多表查询,这样单纯的OM就不能满足需求,mybatis提供resultMap查询结果类型,按照下面配置结构,在select语句中配置resultMap="userResultMap",则可以得到实例对象。
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="user_name"/>
<result property="password" column="hashed_password"/>
</resultMap>
②动态SQL
当进行条件查询时,有时业务需求为这样,当一个指定查询条件为空,则查询全部信息,不为空,这查询该条件下的结果,针对这种情况,mybatis提供了强大的动态SQL,可以在SQL文中,嵌入像IF,CHOOSE,WHEN等判断语句:此时注意,查询参数类型 《1》参数类型为映射对象时,判断条件应该为对应的属性,这个可以很好理解。《2》参数类型为普通数据类型时,则应该使用map类型传入(其它方式还没有用成功过),以key-value形式传入,这样key为判断条件,同事赋值也应该以key处理,举例说明:
有如下操作需要:
Map<String, String> map = new HashMap<String, String>();
map.put("aaa","%test%");
List<UserInfo> list = dao.query(map);
则在映射文件中为
<select id="query" parameterType="map" resultMap="userInfoMap">
<if test="aaa != null">and a.UserName like #{aaa}</if>
</select>
相关文章推荐
- mybatis学习笔记——java.lang.NullPointerException
- springmvc学习笔记(8)-springmvc整合mybatis之service
- Mybatis学习笔记(02) 多种方法配置SqlSessionFactory
- Mybatis 学习笔记 1(非原创 自己整理)
- [知了堂学习笔记]_myBatis_01入门介绍
- MyBatis 学习笔记
- mybatis学习笔记_Sql2005增,删,改,查(mybatis_3.2.2.jar)
- Mybatis官网文档学习笔记
- MyBatis源码学习笔记(二)
- SqlMapConfig.xml配置文件---Mybatis学习笔记(七)
- Mybatis学习笔记(三)【入门程序一】
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- MyBatis学习笔记
- mybatis学习笔记(14)-mybatis整合ehcache
- MyBatis入门示例——MyBatis学习笔记之一
- mybatis学习笔记--typehandler自定义类型转换
- Mybatis学习笔记-一对一关联
- MyBatis源码学习笔记(十)SQL执行流程分析
- ant入门示例——mybatis学习笔记之预备篇(二) 推荐
- MyBatis 学习笔记一基本对象