目录
1.我的开发环境
2.创建maven工程
(1)打包方式 : jar
(2)引入依赖
3.创建MyBatis的核心配置文件
4.创建mapper接口
5.创建MyBatis的映射文件
1.映射文件的命名规则:
2.MyBatis中可以面向接口操作数据 , 要保证两个一致 :
映射文件官方示例:
6.执行配置文件中的SQL语句
7.加入log4j日志功能
8.新增修改删除查询
(1)创建一个方法
(2)编写需要执行的SQL语句,且id要与方法名一一对应
(3)将执行的测试方法共同部分封装成一个工具类
(4)测试方法
小结 :
1.我的开发环境
开发工具 : IDEA 2021.01.02
构建工具 : maven 3.6.1
MYSQL版本 : MYSQL 8.0.29
MyBatis版本 : MyBatis 3.5.11
MySQL不同版本的注意事项
(1)驱动类driver-class-name
MySQL 5 版本使用jdbc5驱动 , 驱动类使用 : com.mysql.jdbc.Driver
MySQL 8 版本使用jdbc8驱动 , 驱动类使用 : com.mysql.cj.jdbc.Driver
(2)连接地址url
MySQL 5 版本的url : jdbc:mysql://localhost:3306/test
MySQL 8 的版本url : jdbc:mysql://localhost:3306/test?serverTimezone=UTC
2.创建maven工程
配置maven项目文件和镜像仓库
(1)打包方式 : jar
(2)引入依赖
<dependencies>
<!--Mybatis核心-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!--junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
注 :
注 :需要联网下载
3.创建MyBatis的核心配置文件
核心配置文件主要用于配置连接数据库环境以及MyBatis的全局配置信息
核心配置文件存放的位置是src/main/resources目录下
官方的XML文件配置示例
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://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>
核心配置文件
4.创建mapper接口
mapper接口的命名规则 : 操作的表名 + Mapper
5.创建MyBatis的映射文件
1.映射文件的命名规则:
表对应的实体类的类名 + Mapper.xml
例如 : 表t_user , 映射的实体类为User , 所对应的映射文件为UserMapper.xml
注 : (1) 因此一个映射文件对应一个实体类 和 一张表
(2) MyBatis映射文件用于编写SQL , 访问以及表中的数据
(3) MyBatis映射文件存放的位置是src/main/resources/mappers目录下
2.MyBatis中可以面向接口操作数据 , 要保证两个一致 :
(1) mapper接口的全类名和映射文件的命名空间(namespace)保持一致
(2) mapper接口中方法的方法名和映射文件中编写SQL标签的id属性保持一致
映射文件官方示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
例 :
6.执行配置文件中的SQL语句
创建一个测试类
package com.atguigu.mybatis.test;
import com.atguigu.mybatis.pojo.User;
import com.atguigu.mybatis.mapper.UserMapper;
import com.atguigu.mybatis.utils.SqlSessionUtil;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyBatisTest {
@Test
public void testInsert() throws IOException {
//获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder(工厂模式)对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//切换SQLSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//openSession含自动提交事务的方法
//获取sql的会话对象SqlSession(不会自动提交事务,需要手动提交事务) , 是MyBatis提供的操作数据库的对象
//SqlSession sqlSession = sqlSessionFactory.openSession();
//获取sql的会话对象SqlSession(会自动提交事务,需要在openSession中添加参数 true) , 是MyBatis提供的操作数据库的对象
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//方法一(常用)
//获取UserMapper的代理实现类对象,getMapper中封装了重写的方法(对接口进行重写)
//注 : 接口不能直接实例化
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用mapper接口中的方法,实现添加用户信息的功能
int result = mapper.insertUser();
//方法二
//提供SQL以及的唯一标识找到SQL并执行,唯一标识是namespace.sqlId
//int result = sqlSession.insert("com.atguigu.mybatis.pojo.mapper.UserMapper.insertUser");
System.out.println("结果:" + result);
//commit 提交事务(手动提交)
//sqlSession.commit();
//关闭sqlSession
sqlSession.close();
}
7.加入log4j日志功能
加入依赖
<!--log4j日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://cxf.apache.org/log4j">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L)\n"/>
</layout>
</appender>
<logger name="java.sql">
<level value="debug"/>
</logger>
<logger name="org.apache.ibatis">
<level value="info"/>
</logger>
<root>
<level value="debug"/>
<appender-ref ref="STDOUT"></appender-ref>
</root>
</log4j:configuration>
8.新增修改删除查询
(1)创建一个方法
(2)编写需要执行的SQL语句,且id要与方法名一一对应
(3)将执行的测试方法共同部分封装成一个工具类
(4)测试方法
小结 :
流程 :
1.创建maven项目引入依赖(mybatis , junit , mysql)
2.创建一个核心配置文件,文件名一般为 ( mybatis-config.xml ),用来连接数据库
3.创建一个接口(用来接收MyBatis的映射文件) , 命名方法一般为需要操作的 表名 + Mapper . 定义一个方法来调用SQL语句 .
4.创建映射文件 , 来编写SQL语句 ,命名与接口名相同 , 路径为接口的路径.
5.测试SQL语句