1.mybatise—>orm框架–>持久层—>数据库打交道—>半自动的orm框架:程序员自己编写sql语句
学习成本较低
2.掌握的知识点
1.环境搭建
2.持久化—>sqlSession对象
3.mapper代理开发
4.动态sql:程序在运行时可以根据条件来改变执行的sql语句的
—>$
DEBUG [main] - ==> Preparing: SELECT * from t_user where cnname LIKE ‘张%’
DEBUG [main] - > Parameters:
DEBUG [main] - < Total: 1
—>#
DEBUG [main] - ==> Preparing: SELECT * from t_user where id=?
DEBUG [main] - > Parameters: 1(Integer)
DEBUG [main] - < Total: 1
selectOne和selectList
1.selectOne:只能映射实际查询结果只有一条的数据
2.selectList:既能处理多条数据的映射也能处理一条数据的映射
3.结果集映射---->resultMap
1.一对一
2.一对多
3.多对多
4.延迟加载:association、collection
1.需要再次查询的时候再进行第二次查询
SELECT * from t_student_health_male WHERE student_id=#{value} SELECT * from t_student 2.处理mybatis的配置,设置全局的属性 ### 5.缓存 1.sqlSession级别的缓存:在同一的sqlsession中的数据有效,默认开启sqlsession的缓存, 当调用insert、update、delete操作缓存清除掉 2.sqlSessionFactory级别的缓存:二级缓存mapper级别,当多个sqlsession操作同一mapper对象的时候, 默认没有开启二级缓存的。 1.配置设置全局属性 2.映射文件中通过cache标识进行缓存处理 <!-- 开启mapper的缓存 -->
<cache></cache>
3.实体类对象必须实现Serializeable接口
4.禁用二级缓存-->select执行useCache为false
<select id="findByIdLazy" resultMap="lazyLoadHealInfo" parameterType="int" useCache="false">
SELECT * from t_student
</select>
3.整合第三方的缓存框架–>ehcache
1.引入依赖
net.sf.ehcache
ehcache
2.10.3
org.mybatis
mybatis-ehcache
1.0.0
2.编写ehcache的配置文件
3.映射文件中执行cache提供的"实现商"