步骤:
<?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="db.properties"></properties>
<!-- 给com.example.demo.entity包起别名 -->
<typeAliases>
<package name="com.example.demo.entity" />
</typeAliases>
<environments default="mysql_environment">
<environment id="mysql_environment">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
<environment id="oracle_environment">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="driver" value="${oracle.driver}"/>
<property name="url" value="${oracle.url}"/>
<property name="username" value="${oracle.username}"/>
<property name="password" value="${oracle.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 配置关系映射文件路径 -->
<mapper resource="Mapping/UserMapping.xml"/>
</mappers>
</configuration>
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
mysql.username=root
mysql.password=12345678
@Data
public class User implements Serializable {
private Integer id;
private String username;
private String password;
private Integer age;
private String sex;
public User(Integer id, String username, String password, Integer age, String sex) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.sex = sex;
}
}
可以采用注解或xml的方式
public interface UserMapper {
int insert(User user);
@Select("select * from user")
List<User> select();
}
<?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">
<!-- namespace属性是名称空间,必须唯一 -->
<mapper namespace="com.demo.mapper.UserMapper">
<!-- resultMap标签:实体类和表的映射
type属性:表示实体全路径名,可起别名
id属性:为实体与表的映射取一个任意的唯一的名字
-->
<resultMap type="User" id="UserMap">
<!-- id标签:映射主键属性
result标签:映射非主键属性
property属性:实体的属性名
column属性:表的字段名
-->
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="age" column="age"/>
<result property="sex" column="sex"/>
</resultMap>
<insert id="insert" parameterType="User">
insert into user (id,username,password,age,sex) values (#{id},#{username},#{password},#{age},#{sex})
</insert>
</mapper>
public class MybatisUtil {
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<>();
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//加载位于src/mybatis.xml配置文件
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
} catch (IOException e) {
e.printStackTrace();
}
}
private MybatisUtil(){}
//获取sqlSession
public static SqlSession getSqlSession() {
SqlSession sqlSession = threadLocal.get();
if (sqlSession == null)
sqlSession=sqlSessionFactory.openSession();
threadLocal.set(sqlSession);
return sqlSession;
}
//关闭sqlSession
public static void close() {
SqlSession sqlSession = threadLocal.get();
if (sqlSession != null)
sqlSession.close();
//分开当前线程与SqlSession对象的关系,目的是让GC尽早回收
threadLocal.remove();
}
}
public void test(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> select = mapper.select();
//开启自动提交
sqlSession.commit();
for (User user : select) {
System.out.println(user);
}
sqlSession.close();
MybatisUtil.close();
}
结果:
原文:https://www.cnblogs.com/kwdlh/p/12683206.html