1、图示工作流程

在这里插入图片描述

2、代码简单实现

在eclipse中新建一个普通的Java项目,然后,在根目录下新建一个 lib 文件夹来存放 MyBatis 依赖的 jar 包,以及连接 MySQL 需要的 jar 包;新建一个 config 文件夹来存放相关的配置文件,项目目录结构如下:

├─config
│  │  jdbc.properties
│  │  log4j.properties
│  │  sqlMapConfig.xml
│  │  
│  └─sqlMap
│          UserMapper.xml
│          
├─lib
│      ant-1.10.3.jar
│      ant-launcher-1.10.3.jar
│      asm-7.0.jar
│      cglib-3.2.10.jar
│      commons-logging-1.2.jar
│      javassist-3.24.1-GA.jar
│      log4j-1.2.17.jar
│      log4j-api-2.11.2.jar
│      log4j-core-2.11.2.jar
│      mybatis-3.5.2.jar
│      mysql-connector-java-8.0.18.jar
│      ognl-3.2.10.jar
│      slf4j-api-1.7.26.jar
│      slf4j-log4j12-1.7.26.jar
│      
└─src
    └─ddpapa
        └─mybatis
            ├─datasource
            │      DataConnection.java
            │      
            ├─model
            │      User.java
            │      
            └─test
                    MainTest.java

注: config 文件需要设置为项目源文件夹


1)新建 test 数据库并添加一个 usertable 表格
在这里插入图片描述
2)新建 usertable 对应的 pojo 类:User.java

package ddpapa.mybatis.model;

public class User {
	private int id;
	private String user;
	private String pwd;
	private String tips;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUser() {
		return user;
	}
	public void setUser(String user) {
		this.user = user;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getTips() {
		return tips;
	}
	public void setTips(String tips) {
		this.tips = tips;
	}
	
}

3)建立 UserMapper 映射文件,并编写查询语句

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="test">  
<select id="selectUser" resultType="ddpapa.mybatis.model.User">    
	select * from usertable where id = #{id}  
</select> 
</mapper>

4)建立数据库资源文件 jdbc.properties

driver=com.mysql.cj.jdbc.Driver
jurl=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false
username=root
password=123456

5)建立 log4j 日志资源文件 log4j.properties

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

6)建立核心配置文件 sqlMapConfig.xml

<?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>  
<properties resource="jdbc.properties"></properties>
<environments default="development">    
	<environment id="development">      
		<transactionManager type="JDBC"/>      
		<dataSource type="POOLED">        
		<property name="driver" value="${driver}"/>        
		<property name="url" value="${jurl}"/>        
		<property name="username" value="${username}"/>        
		<property name="password" value="${password}"/>      
		</dataSource>    
	</environment>  
</environments>  
<mappers>    
	<mapper resource="sqlMap/UserMapper.xml"/>  
</mappers> 
</configuration>

7)编写数据库交互类 DataConnection.java

package ddpapa.mybatis.datasource;

import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class DataConnection {
    private String resource = "sqlMapConfig.xml";
    private SqlSessionFactory sqlSessionFactory;
    private SqlSession sqlSession;

    public SqlSession getSqlSession() throws IOException {
        InputStream inputSteam = Resources.getResourceAsStream(this.resource);
        this.sqlSessionFactory = (new SqlSessionFactoryBuilder()).build(inputSteam);
        this.sqlSession = this.sqlSessionFactory.openSession();
        return this.sqlSession;
    }
}

8)编写测试文件进行测试

package ddpapa.mybatis.test;

import ddpapa.mybatis.datasource.DataConnection;
import ddpapa.mybatis.model.User;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class MainTest {
    public DataConnection dataConn = new DataConnection();

    public MainTest() {
    }

    @Test
    public void test() throws IOException {
        SqlSession sqlSession = this.dataConn.getSqlSession();
        User user = (User)sqlSession.selectOne("test.selectUser", 1);
        System.out.println(user.getId());
        System.out.println(user.getUser());
        System.out.println(user.getPwd());
        System.out.println(user.getTips());
    }
}

在这里插入图片描述


从这个简单的 Java 项目中也能大概验证一下整个 MyBatis 的运行流程。
在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐