一.基础知识
早期的名字叫 iBatis ,2010年后更名为 Mybatis 是一个半自动的ORM(持久层)框架,需要指定SQL语句,
相对于 Hibernate 全自动来说,Hibernate 只需要指定类与表的关系,无需指定SQL语句。
需求背景:
1.原生JDBC创建连接的时候,每次用完都会销毁(性能问题,不销毁有资源占用问题)
2.DAO层好多流程都一样(绕不过增删改查),造成代码冗余
1.基础操作
①导包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
②配置xml文件config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/study?serverTimezone=Hongkong"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
environment可以配置多个,通过属性id 在environments 处切换不同的数据库信息
transactionManager 指定事务的管理方式
DataSource的类型指定的是连接池的方式来创建连接,底层会自动的创建一个连接池来管理连接数量。
mappers下指定的是SQL语句文件所在的路径。( 如果用注解的方式,则不需要这项。)
这里是通过xml文件来创建链接,还有另一种通过java类来创建链接,详细参照Mybatis文档
(connect8.0往后的版本需要配置serverTimezone参数)
③通过xml创建链接。
需要读取xml配置文件的流。
一个SqlSessionFactoryBuilder类根据读取的XML信息来构建SqlSessionFactory
再通过SqlSessionFactory.openSession()方法来获取SqlSession
(openSession(true/false)默认是false,指定是否自动提交事务;)
最后调用SqlSession的方法并制定SQL语句来执行持久层的操作
String resource = "config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("com.zwei.selectUser", 1);
④创建一个存放SQL语句的XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zwei">
<select id="selectUser" resultType="com.zwei.domain.User">
select * from user where user_id = #{id}
</select>
</mapper>
本文主要介绍了Mybatis的基础配置,包括导包、配置xml文件config.xml以创建链接,以及通过XML文件来创建SqlSessionFactory和SqlSession,执行持久层操作。特别提到了在connect8.0以上版本需要配置serverTimezone参数。

被折叠的 条评论
为什么被折叠?



