一.pom.xml引入myBatis的jar包。
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
二.书写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>
<!--引入外部jdbc.properties文件-->
<properties resource="jdbc.properties"/>
<!--连接数据库-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- <mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>-->
<mappers>
<mapper resource="Mapper.xml"/>
</mappers>
</configuration>
三.书写Mapper.xml sql查询文件
<?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="abc">
<!--
select: 标签可以发送select sql
id: select标签的唯一标识
resultType: 查询返回的结果
#{id} : 传递过来的参数
-->
<select id="selectById" resultType="cn.kxx.poji.User">
select * from tb_user where id = #{id}
</select>
</mapper>
四.书写Mapper层接口 UserMapper
public interface UserMapper {
方法1;
方法2;
.....
方法n;
}
五.Mapper层接口和Mapper xml sql文件相关连
更改mapper sql xml 文件的 namespace 的路径值,路径值为mapper层接口的位置
<?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="abc"> 替换一下 <mapper namespace="cn.kxx.mapper.UserMapper">
六.编写mapper层接口内容,增删改查
/**
* 根据id查询用户信息
* @param id
* @return
*/
public User queryUserById(int id);
/**
* 查询所有用户信息
* @return
*/
public List<User> queryAllUser();
/**
* 根据id删除用户信息
* @param id
*/
public int deleteUserById(int id);
/**
* 添加用户信息
* @param user
*/
public void addUser(User user);
/**
* 修改用户信息
* @param user
*/
public void updateUser(User user);
七.编写mapper xml sql 查询语句
按住alt + 回车自动生成
<?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="cn.kxx.mapper.UserMapper">
<!--添加user-->
<insert id="addUser">
INSERT INTO tb_user(id, user_name, sex)
VALUES (#{id}, #{userName}, #{sex})
</insert>
<!--根据id删除-->
<delete id="deleteUserById">
delete from tb_user where id = #{id}
</delete>
<!--查询所有-->
<select id="queryAllUser" resultType="User">
select * from tb_user
</select>
<!--根据id进行查询-->
<select id="queryUserById" resultMap="id">
select * from tb_user where id = #{id}
</select>
</mapper>
八.编写测试类
一键导入
package cn.kxx.mapper;
import cn.kxx.poji.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.Before;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
/**
* @Auther: Kong Xiang Xiang
* @Date: 2022/10/17 12:19
* @DESC:
*/
public class UserMapperTest {
private UserMapper userMapper;
private SqlSession sqlSession;
//提前加载连接数据库的煎饼果子一套
@Before
public void setUp() throws Exception {
//指定核心配置文件的位置
String resource = "mybatis-config.xml";
//加载核心配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//构建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,"dev");
//获取SqlSession对象,SqlSession可以操作crud
sqlSession = sqlSessionFactory.openSession();
//SqlSession进行数据库操作
userMapper = sqlSession.getMapper(UserMapper.class);
}
@Test
public void queryUserById() {
User user = this.userMapper.queryUserById(1);
System.out.println(user);
}
@Test
public void queryAllUser() {
List<User> users = userMapper.queryAllUser();
users.stream().forEach(System.out::println);
}
@Test
public void deleteUserById() {
int i = userMapper.deleteUserById(2);
System.out.println(i);
}
@Test
public void addUser() {
User user = new User();
user.setId(3);
user.setUserName("ynqi");
user.setSex("20");
userMapper.addUser(user);
sqlSession.commit();
}
@Test
public void updateUser() {
User user = new User();
user.setId(1);
user.setUserName("张三");
user.setSex("30");
userMapper.updateUser(user);
sqlSession.commit();
}
}