1.Mybatis简介
MyBatis简而言之就是一个数据库框架,一种用于简化JDBC开发的持久层框架
2.Mybatis操作步骤
Mybati使用步骤总结
配置Mybtis核心配置文件(一般将其命名为 mybatis-config.xml)
根据核心配置文件创建 SqlSessionFactory 对象
通过 SqlSessionFactory 对象创建 SqlSession 对象
通过 SqlSession 对象操作数据库 CRUD
提交事务
释放资源
1.导入mysql数据库和MyBatis框架的jar包/maven直接导入坐标
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
2.设置配置信息
首先要在resources目录下创建配置文件,配置信息可以直接从官网复制粘贴
https://mybatis.org/mybatis-3/zh/index.html
<?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="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
3.获取配置信息
配置信息设置好之后就要获取配置信息,之后便是执行SQL语句,执行SQL语句就需要执行SQL的对象(万物皆对象)
MyBatis提供了一个类SqlSessionFactory来替我们获取sql执行对象
如何使用可以从官网复制粘贴
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
4.获取SQL执行对象
我们可以通过sqlSessionFactory来获取sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
5.执行SQL语句
首当其冲就是select
我们首先在接口中写方法比如说
User selectByName(String name);
然后插件会自动帮我们在配置文件中生成select标签和sql语句我们只需要对sql语句进行修改即可
<select id="selectByName" resultType="com.suo.pojo.User">
select * from t_user where name = #{name};
</select>
因为mySql默认是关闭事务的所以我们得手动提交事务否则数据会添加失败
6. 关闭资源
sqlSession.close();
3.Mybatis和JDBC优缺点
- JDBC缺点
- 硬编码
- 注册驱动,获取连接
- sql语句
- 操作繁琐
- 手动设置参数
- 手动封装数据集
- Mybatis 优点
Mybatis可以配置动态SQL
Mybatis、Hibernate、JDBC应用场景
1)从层次上看,JDBC是较底层的持久层操作方式,而Hibernate和MyBatis都是在JDBC的基础上进行了封装使其更加方便程序员对持久层的操作。
2)从功能上看,JDBC就是简单的建立数据库连接,然后创建statement,将sql语句传给statement去执行,如果是有返回结果的查询语句,会将查询结果放到ResultSet对象中,通过对ResultSet对象的遍历操作来获取数据;Hibernate是将数据库中的数据表映射为持久层的Java对象,对sql语句进行修改和优化比较困难;MyBatis是将sql语句中的输入参数和输出参数映射为java对象,sql修改和优化比较方便.
3)从使用上看,如果进行底层编程,而且对性能要求极高的话,应该采用JDBC的方式;如果要对数据库进行完整性控制的话建议使用Hibernate;如果要灵活使用sql语句的话建议采用MyBatis框架。