MyBatis环境搭建
1、新建一个Maven项目
2、引入相关依赖
在新建的项目目录中,找到pom.xml文件并在project标签中插入以下代码,并点击刷新,Maven会自动添加相关依赖(首次引入需要联网)。
<dependencies>
<!--MyBatis核心包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!--Junit测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!--MySQL驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-mxj</artifactId>
<version>5.0.12</version>
<scope>runtime</scope>
</dependency>
</dependencies>
3、数据库准备
create database mybatis;
4、创建数据库连接信息配置文件
在项目的src/main/resources目录下创建数据库连接的配置文件,这里将其命名为db.properties,在该文件中配置数据库连接的参数。
# 如果MySQL版本在8.0以上则mysql.driver=com.mysql.cj.jdbc.Driver
# mysql.url中的mybatis是要连接的数据库名
# mysql.username是数据库的用户名
# mysql.password是数据库的密码
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&
characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123456
5、创建MyBatis的核心配置文件
在项目的src/main/resources目录下创建MyBatis的核心配置文件,该文件主要用于项目的环境配置,如数据库连接相关配置等。核心配置文件可以随意命名,但通常将其命名为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>
<!--引入外部db.properties-->
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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>
</environments>
</configuration>
MyBatis入门程序
1、数据准备
在mybatis数据库中创建users表,并在users表中插入几条数据。
use mybatis;
create table users(
uid int primary key auto_increment,
uname varchar(20) not null,
uage int not null
);
insert into users(uid,uname,uage) values(null,'张三',20),(null,'李四',18),(null,'王五',19);
2、创建POJO实体
在项目的src/main/java目录下创建com.mybatis.pojo包,在com.mybatis.pojo包下创建User类,该类用于封装User对象的属性。
package com.mybatis.pojo;
public class User {
private int uid;
private String uname;
private int uage;
public int getUid() {
return uid;
}
public String toString() {
return "User {" +
"uid = " + uid +
", uname = " + uname +
", uage = " + uage +
"}";
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public int getUage() {
return uage;
}
public void setUage(int uage) {
this.uage = uage;
}
}
3、创建映射文件
在项目的src/main/resources目录下创建一个,mapper文件夹,在mapper文件夹下创建映射文件UserMapper.xml,该文件主要用于实现SQLmapper语句和Java对象之间的映射,使SQL语句查询出来的关系型数据能够被封装成Java对象。
<?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="com.mybatis.pojo.User">
<!--id ="接口中的方法名" parameterType="传入的参数类型" resultType = "返回实体类对象,使用包.类名"-->
<select id="findById" parameterType="int" resultType="com.mybatis.pojo.User">
select * from users where uid = #{id}
</select>
</mapper>
4、修改mybatis-config.xml配置文件
在mybatis-config.xml映射文件中添加UserMapper.xml映射文件路径的配置,用于将UserMapper.xml映射文件加载到程序中。
<!--配置xxxMapper.xml文件的位置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
5、编写测试类
在项目的src/test/java目录下创建com.mybatis.test包,在com.mybatis.test包下创建UserTest类,该类主要用于程序测试。
package com.mybatis.test;
import com.mybatis.pojo.User;
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.Test;
import java.io.InputStream;
public class UserTest {
@Test
public void findById() throws Exception {
// 1.获取核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
// 2.创建sqlSessionFactory工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
// 3.创建sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4.执行sql语句,sql语句的唯一标识:namespace.statementId
User user = sqlSession.selectOne("com.mybatis.pojo.User.findById", 1);
System.out.println(user.toString());
// 5.释放资源
sqlSession.close();
}
}
最后运行程序,控制台输出查询结果: