1. UserMapper.java
package com.jing.dao;
import com.jing.pojo.User;
import java.util.List;
public interface UserMapper {
// 获取所有用户
List<User> getUserList();
// 根据id查询用户
User getUserById(int id);
// 新增用户
int addUser(User user);
// 更新用户
int updateUser(User user);
// 删除用户
int deleteUserById(int id);
}
2. UserMapper.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">
<!--UserMapper.xml:Mapper的配置文件的作用是替代xxxDaoImpl(UserMapper等价于UserDao)-->
<!--绑定接口!!! namespace:对应的接口的全限定名,将配置文件代替实现类与接口绑定-->
<mapper namespace="com.jing.dao.UserMapper">
<!--一个实现类要重写接口的所有方法,即一个Mapper的配置文件要映射所有的方法,与接口中的方法一一对应(用id标识)-->
<!--绑定方法!!! id:需要重写的方法名-->
<select id="getUserList" resultType="com.jing.pojo.User">
select * from mybastis_test.user;
</select>
<select id="getUserById" parameterType="int" resultType="com.jing.pojo.User">
select * from mybastis_test.user where id = #{id};
</select>
<insert id="addUser" parameterType="com.jing.pojo.User">
insert into mybastis_test.user (id, name, pwd) values (#{id}, #{name}, #{pwd});
</insert>
<update id="updateUser" parameterType="com.jing.pojo.User">
update mybastis_test.user set name = #{name}, pwd = #{pwd} where id = #{id};
</update>
<delete id="deleteUserById" parameterType="int">
delete from mybastis_test.user where id = #{id};
</delete>
</mapper>
3. UserMapperTest.java
增删改需要提交事务,MyBatis默认手动提交,而且已经开启了事务
package com.jing.dao;
import com.jing.pojo.User;
import com.jing.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserMapperTest {
@Test
public void test(){
// 1.获取SqlSession对象
SqlSession sqlSession = MybatisUtil.getSqlSession();
// 2.获取UserDao对象,根据注册的Mapper配置文件创建,接口类型的实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.执行方法
List<User> userList = mapper.getUserList();
// 4.输出结果
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User userById = mapper.getUserById(4);
System.out.println(userById);
sqlSession.close();
}
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(4, "赵六", "123456"));
// 增删改需要提交事务,MyBatis默认手动提交,而且已经开启了事务
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4, "赵六", "654321"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUserById(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUserById(4);
sqlSession.commit();
sqlSession.close();
}
}