这个搭建比较容易,但是中间出了好多差错,第一次运行出来了,但是只有id有值,get不到name和age的值,仔细看了一下,set 的时候大小写不一样,压根没有set进去,所以读不出来。就这么点问题,真的让人很头大。我把搭建过程分享出来,真的很有意思。(小白选手,多多指点)
创建maven工程
使用IDEA创建maven工程
导入MySQL依赖
<!--Mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version`>8.0.27</version>
</dependency>
基本上从这儿就项目搭建成功了,接下来就开始准备数据库数据
数据准备
- 创建数据库
CREATE DATABASE mybatis;
- 创建user表
CREATE TABLE users (
uid int NOT NULL AUTO_INCREMENT,
`uname` varchar(20) NOT NULL,
`uage` int NOT NULL);
- 添加数据
insert into users(uid,uname,uage) value(null,'王朝',45),(null,'马汉',23);
创建数据库连接配置文件(db.properties)
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\
characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=填写自己的数据库密码
创建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>
<properties resource="db.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>
<!--mappering文件路径配置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
创建pojo实体
在项目中src/main/Java目录下创建xxx.pojo包,在这个包下创建User类(用于封装User对象属性)
package com.itheima.pojo;
public class User {
private int uid;
private String uname;
private int uage;
public int getUid(){
return uid;
}
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;
}
}
创建映射文件UserMapper.xml
在项目的resources目录下创建一个mapper文件夹,然后创建映射文件UserMapper(映射文件通常使用POJO实体类名+Mapper命名)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.pojo.User">
<select id="findById" parameterType="int"
resultType="com.itheima.pojo.User">
select * from users where uid=#{id}
</select>
</mapper>
编写测试类
在项目中Java目录下创建测试Test包,创建UserTest类。
package Test;
import com.itheima.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.IOException;
import java.io.Reader;
public class UserTest {
@Test
public void userFindByIdTest(){
String resources = "mybatis-config.xml";
//创建流
Reader reader=null;
try{
reader= Resources.getResourceAsReader(resources);
}catch (IOException e){
e.printStackTrace();
}
SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
//创建SqlSession实例
SqlSession session =sqlMapper.openSession();
//传入参数查询,返回结果
User user=session.selectOne("findById",1);
System.out.println(user.getUname());
//关闭session
session.close();
}
}
经过上述框架搭建起来,核心配置写进去,注意(一定要连接数据库,一定要连接数据库),就可以读取到数据库中的数据
最后运行结果
这里我添加进去的用户名称不一样,其他都没问题。