1、首先介绍一个代码自动生成工具
链接:https://pan.baidu.com/s/1pX2FaSCnBtsVDz1grhUUfw
提取码:yq4t
2、下载后导入eclipse
按照注解修改xml文件
3、运行然后刷新,获得自动生成的代码
4、新建一个maven项目,添加mybatis所需依赖
<!-- log4j -->
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
</dependencies>
<!-- jdk -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
5、新建如图包或文件,将自动生成的代码放入
6、添加所需配置文件mb.xml和log4j.properties
mb.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>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/bank?characterEncoding=utf8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
log4j.properties
log4j.rootLogger=INFO,A3,A1
# A1 \u5F80\u63A7\u5236\u53F0\u4E0A\u6253
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%p] [%l] %10.10c - %m%n
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=backup.log
log4j.appender.A3.DatePattern='.'yyyy-MM-dd
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n
7、新建
SessionFactory.java
package com.test.utils;
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;
// 专门生成sqlSession对象的工厂
// sqlSession(一级缓存) 暂时认为是对数据库的连接对象(Conncetion)
public class SessionFactory {
private static ThreadLocal<SqlSession> threadLocal;
//2 session 工厂
private static SqlSessionFactory factory;
static {
threadLocal = new ThreadLocal<>();
//1 丛配置文件中 读取 对数据库的连接的信息
InputStream in = null;
try {
in = Resources.getResourceAsStream("mb.xml");
//通过读出来的 连接信息 去初始化 session工厂
// SqlSessionFactoryBuider 创建SqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} catch (Exception e) {
e.printStackTrace();
}finally{
if(in!=null){
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 获得一个session
public static SqlSession getSession() {
SqlSession session = threadLocal.get();
if(session==null) {
// 创建一个session
session = factory.openSession();
// 把session放入threadLocal
threadLocal.set(session);
}
return session;
}
// 关闭session
public static void closeSession() {
SqlSession session = threadLocal.get();
if(session!=null) {
session.close();
threadLocal.set(null);
}
}
}
8、编写测试类
package com.test.test;
import org.apache.ibatis.session.SqlSession;
import com.test.entity.User;
import com.test.mapper.UserMapper;
import com.test.utils.SessionFactory;
public class TestMybatis {
public static void main(String[] args) {
SqlSession session = SessionFactory.getSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);
System.out.println(user.getAccount());
}
}