admin 管理员组

文章数量: 887021

Mybatis.

一、什么是Mybatis

官网:  .html 

JDBC的缺点:

 

二、MyBatis快速入门

注意:POJO类在此步骤中即为User类 

第一步:创建user表 添加数据

 第二步:创建模块,导入坐标 (这里创建的是Maven模块 直接把依赖的包导入坐标即可)

项目中常用的依赖 有以下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis-demo</artifactId><version>1.0-SNAPSHOT</version><!-- mybatis 依赖 (mybatis 需要的jar包) 因为是在Maven环境中写mybatis的项目 所以导入mybatis的依赖--><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!-- 因为是对数据库操作,因此要有mysql驱动jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!-- junit  单元测试  (只在maven项目的test文件中跑程序)--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!-- 添加slf4j 日志api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.20</version></dependency><!-- 添加logback-classic 依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!-- 添加logback-core 依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency></dependencies></project>

 注意细节: 这里的日志jar依赖 尽管导入到坐标了 还是还需要把logback.xml配置文件加载到工程当中

 第三步:编写Mybatis核心配置文件 - 替换(JDBC中繁琐的连接信息、解决硬码问题)

注意:这里可以去Mybatis官网入门里面查找 第二部当中导入Mybatis依赖也可以去官网找~

官网:

 

 第四步:编写SQL映射文件  【统一管理sql语句】       (去官网复制)

 

这里就相当于把对tb_user数据库查询的数据返回到User类对象属性当中 

 第五步:编码

5.1、定义POJO类

 5.2         5.3        5.4、

再定义一个Mybatis 类 编写下列需要完成的代码

5.2 加载核心配置文件,获取SqlSessionFactory对象 (官方复制即可)

 

这里也就是说测试程序加载核心配置文件,核心配置文件当中写的是sql的映射文件,里面写了SQL语句和对增删改查的返回结果 (封装成对象形式返回) 最后我们再进行处理

 5.3  5.4、获取SqlSession对象 执行SQL语句  并释放资源 (返回的是List集合)

 输出结果:

三、解决SQL映射文件的警告提示

 所以我的没有报红警告,就是有点花~

四、Mapper代理开发

问题1:

 问题2:

 

 Mapper代理开发步骤:

 步骤1、

 所以通过上面的细节: 我们把UserMapper.xml SQL的映射文件 和 UserMapper接口放同一个级别即可、即相当于放在同一个目录当中

如何查路径呢?

 所以我们可以为配置文件建立一个和接口相对应的包即可(这里要格外注意:配置文件不能新建包(包创建是com.itheima. 的形式) 只能新建文件(所以要com/itheima/ 的形式 ) 才会建立三层文件 )

操作如下:

 

 步骤2:

设置SQL映射文件的namespace属性为Mapper接口全限定名(全限定名可理解为:路径)

 

 步骤3:

在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致

 

注意: 这时因为我们把SQL映射文件位置放到包下面了 所以我们核心文件当中别忘了修改SLQ映射文件的位置路径

 路径查找:

 

 

 步骤4、编码

 输出结果和上面改造前一样:

五、Mybatis核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"".dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 这里是数据库的连接信息 --><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment><!-- 也就是说 可以再创建一个配置数据库的信息 然后把这个当作测试数据库  测试用的 --><environment id="test"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 这里是数据库的连接信息 --><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><!-- 加载sql映射文件 --><mapper resource="com/itheima/pojo/mapper/UserMapper.xml"/></mappers>
</configuration>

六、完成增删改查功能

本文标签: Mybatis