路线:MyBatis – Spring – SpringMVC
原笔记地址:http://dwz.date/ac27
博客:狂神说 文章 - KuangStudy-代码笔记
what:
MyBatis:主要针对DAO层使用
Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html
GitHub : https://github.com/mybatis/mybatis-3
what:
MyBatis 是一款优秀的持久层框架(面向mysql)
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。
2013年11月迁移到Github .
MyBatis 是一个半自动化的ORM框架 (Object Relationship Mapping) -->对象关系映射
why:
MyBatis的作用就是帮助管理在数据库中存取数据的。
优点:灵活,可维护性更高(解耦),支持动态SQL开发,快捷,快发效率高
持久化:指将程序数据在持久状态和瞬时状态转换的机制
例子:内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。猪肉冷藏
- why:因为内存一断电,数据就会丢失,且内存相比磁盘等较贵。
持久层:完成持久化工作的代码块——》DAO层
- 持久化的实现过程则大多通过各种关系数据库来完成。(了解)
how:
1.导入jar包:mybatis和mysql-connector-java
2.编写核心配置文件:mybatis-Config.xml
3.编写MyBatis工具类:MybatisUtils
4.编写实体类
5.编写Mapper接口和对应的Mapper.xml
6.在mybatis核心配置文件中注册Mapper(Mapper接口或Mapper.xml)
7.测试。。。。
主要知识点:
、、、标签:
参数:
id:对应着要执行的方法名
parameterType:参数类型
resultType:结果类型
使用万能的Map传参:在接口方法中,参数直接传递Map;
模糊查询:select * from user where name like #{value}(在java代码中添加通配符——%value%)
常用的标签;configuration(配置)、settings(设置)、typeAliases(类型别名)、environments(环境配置)、environment(环境变量)、transactionManager(事 务管理器)、dataSource(数据源)、mappers(映射器)————》注意元素节点的顺序!顺序不对会报错
注册Mapper的常用方式:
-
how:
使用class="接口地址" 使用name="Mapper接口和xml文件包名" 使用resource="Mapper.xml文件地址" 注意:前两种限制:Mapper接口Mapper.xml文件同名同包 properties优化:数据库这些属性可以由外部文件引入。 typeAliases优化:给实体类起别名,减少类完全限定名的冗余 setting:配置日志(标准日志和log4j日志)、开启驼峰命名(解决字段和属性名不同问题)、开启二级缓存 ResultMap和分页: 1.解决属性名和字段名不一致问题:①在sql语句中给字段名起别名②使用结果集映射ResultMap(推荐) 2.ResultMap针对查询结果映射处理——》ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。 3.日志: 标准日志: Log4j日志: what::通过使用Log4j,我们可以控制日志信息输送的目的地:控制台,文本,GUI组件.... why:过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。可以选择生成了一个日志的文件 how:1.导入log4j扎包 2.编写log4j.properties配置文件 3.在核心配置文件setting标签开启log4j 4.测试 4.分页: 1.使用limit实现分页:select * from user limit startIndex,PageSize (起始位置 = (当前页面 - 1 ) * 页面大小) 2.使用PageHelper插件(一款实现偷懒的分页工具)https://pagehelper.github.io/ 5.使用注解开发:四个注解对应四种sql语句,使用注解可以不用编写Mapper.xml@select ()@update ()@Insert ()@delete () 注解原理:jvm的动态代理 mybatis执行具体流程: @Param&#