mybatis基础
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录
为什么要使用MyBatis
- 相比于之前使用的JDBC操作而言,操作更加简单,SQL夹在Java代码里,耦合度高,容易导致编码硬伤。往往在实际开发过程中,需要重复编译,频繁修改,代码冗余度高。
- 对于需要很多表链接的SQL,Hibernate处理也不容易,因为Hibernate内部自动生产SQL,不容易做特殊化处理,虽然操作更加简便,但这也是他的缺点之处。属于黑箱操作,不容易优化。面对基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。导致数据库性能下降。
- 相比之下MyBatis的优点就比较突出,属于半自动操作
对于开发人员而言,核心sql还是需要自己优化,提升数据库性能。
sql 和 Java编码分开,功能边界清晰,一个专注数据,一个专注业务。
MyBatis全局配置文件简介
`
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_1129" />
<property name="username" value="root" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
<!-- 引入SQL映射文件,Mapper映射文件 -->
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
`
configuration 配置
properties 属性
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
databaseIdProvider 数据库厂商标识
mappers 映射器
也可以创建一个资源文件,名为jdbc.properties的文件,将四个连接字符串的数据在资源文件中通过键值 对(key=value)的方式放置,不要任何符号,一条占一行
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_1129
jdbc.username=root
jdbc.password=1234
environment元素的dataSource元素中为其动态设置
<environments default="oracle">
<environment id="mysql">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username"
value="${jdbc.username}" />
<property name="password"
value="${jdbc.password}" />
</dataSource>
</environment>
</environments>