搭建mybatis框架demo前,在IDEA中搭建MAVEN环境,并创建项目:
IDEA之MAVEN环境搭建
文件目录如下:
导入依赖包
在pom.xml中添加mybatisde1依赖包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
创建实体类
创建与数据表相关的实体类
package com.bc.bean;
public class User {
private int user_id;
private String name;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
String str = "user_id:"+getUser_id()+",name:"+getName();
return str;
}
}
创建数据库连接属性文件
在resources目录下创建mysql.properties文件,存储数据库连接信息
jdbc.databaseurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=root
添加配置文件
在resources目录下创建mybatis-config.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>
<!-- 加载mysql配置文件-->
<properties resource="mysql.properties"></properties>
<settings>
<!-- 自动映射 -->
<setting name="autoMappingBehavior" value="FULL"/>
</settings>
<typeAliases>
<!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名
<typeAliase type="com.mybatis.demo.Entity.User" alias="UserBean"/> -->
<!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->
<!--<package name="com.mybatis.demo.Entity"/>-->
<typeAlias alias="User" type="com.bc.bean.User"/>
</typeAliases>
<!-- 配置mybatis运行环境 可以配置多套环境 -->
<environments default="development">
<environment id="development">
<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
<transactionManager type="JDBC"/>
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.databaseurl}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件方式1,一个一个的配置-->
<mapper resource="mapper/userMapper.xml"/>
<!-- 映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
<!-- <package name="com.mybatis.demo"/>-->
</mappers>
</configuration>
添加mapper(映射)类接口以及对应mapper.xml
- mapper接口
```package com.bc.dao;
import com.bc.bean.User;
import java.util.List;
public interface userMapper {
/**
* 根据id查询user
* @return
*/
User findById(int user_id);
}
- mapper.xml
<?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.bc.dao.userMapper">
<!--返回类型使用实体类的别名(Mybatis-confing.xml中的别名方式)-->
<select id="findById" resultType="User">
select * from user where user_id=#{id}
</select>
</mapper>
创建单元测试
package com.bc.test;
import com.bc.bean.User;
import com.bc.dao.userMapper;
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.jupiter.api.Test;
import java.io.Reader;
import java.util.List;
public class TestMain {
@Test
public void test(){
System.out.println("测试开始");
try {
//使用MyBatis提供的Resources类加载mybatis的配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//通过SqlSessionFactory对象获取SqlSession对象。
SqlSession session= sessionFactory.openSession();
userMapper mapper=session.getMapper(userMapper.class);
User user = mapper.findById(1);
System.out.println(user.toString());
//提交事务
session.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
返回结果