下载jar包链接
GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java
创建一个maven项目
对项目进行基本的pom配置,以及pojo\mapper结构创建
打开下载的mybits使用手册
复制新手入门
对resources粘贴
以上类容为配置数据库连接环境
解读数据库连接xml文件
首先是jdbc段,这里需进行配置:
JDBC
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
配置
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/fzhl_?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
下面一段为引入mybatis映射文件:
复制的代码
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
需对其进行配置(但先得创建mapper映射文件)
创建mapper映射文件和接口
两者必须保持文件名相同
连接数据库添加数据
pojo写数据库对应参数的java对象
User类
public class User {
private int id;
private String name;
public User(){
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
}
对应数据库
mysql> select * from fz01;
+------+------+
| id | name |
+------+------+
| 1 | aa |
+------+------+
1 row in set (0.01 sec)
mysql>
接口写一个添加方法
package org.example.mapper;
public interface Usermapper {
// 添加一条数据
int adduser();
}
xml映射:
找到使用手册
复制粘贴
<?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">
<!-- /写入Usermapper接口文件路径完成映射关系/ -->
<mapper namespace="org.example.mapper.Usermapper">
<!-- 默认自带一条查询语句 可删 -->
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
<!-- 写入添加信息sql语句 id对应接口方法名 -->
<insert id="adduser">
insert into fz01 values(2,'大明');
</insert>
</mapper>
配置数据库连接xml文件的mybatis段
<mappers>
<mapper resource="mapper/Usermapper.xml"/>
</mappers>
执行配置好的sql添加语句写法
package org.example;
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.example.mapper.Usermapper;
import org.junit.Test;
import sun.misc.Resource;
import java.io.FileInputStream;
import java.io.InputStream;
public class Usertext {
@Test
public void a() throws Exception{
// 获取文件输入流
InputStream inputStream = Resources.getResourceAsStream("mybatis_01.xml");
// 构建工程对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 构建工程
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
// 获取操作sql语句对象
SqlSession session = sqlSessionFactory.openSession();
// 实现 Usqlmapper 代理实现对象
Usermapper usermapper = session.getMapper(Usermapper.class);
// 执行sql语句 返回影响行
System.out.println(usermapper.adduser());
// ************* 重点 **************
// 执行语句后这里是默认回滚的,所以需要提交事务
session.commit();
// 关闭流
inputStream.close();
session.close();
}
}
对执行进行优化
不使用mapper接口来执行sql语句
// 实现 Usqlmapper 代理实现对象
// Usermapper usermapper = session.getMapper(Usermapper.class);
// 执行sql语句 返回影响行
// System.out.println(usermapper.adduser());
// 注释mapper接口,直接使用session
session.insert("org.example.mapper.Usermapper.adduser");
省略提交事务
// 获取操作sql语句对象
// SqlSession session = sqlSessionFactory.openSession();
// 获取sql时添加一个true参数
SqlSession session = sqlSessionFactory.openSession(true);
// 实现 Usqlmapper 代理实现对象
// Usermapper usermapper = session.getMapper(Usermapper.class);
// 执行sql语句 返回影响行
// System.out.println(usermapper.adduser());
// 注释mapper接口,直接使用session
session.insert("org.example.mapper.Usermapper.adduser");
// ************* 重点 **************
// 执行语句后这里是默认回滚的,所以需要提交事务
// session.commit();
执行结果打印sql执行后的日志信息
首先添加依赖log4j
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在resources文件下创建于映射文件log4j.xml
内容写入
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.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" />
</root>
</log4j:configuration>
运行sql语句显示日志结果