Mybatis基本使用及与JDBC优缺点

发布于:2022-12-19 ⋅ 阅读:(211) ⋅ 点赞:(0)

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缺点
  • 硬编码
  1. 注册驱动,获取连接
  2. sql语句
  • 操作繁琐
  1. 手动设置参数
  2. 手动封装数据集
  • 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框架。
 

本文含有隐藏内容,请 开通VIP 后查看