CURD
namespace
namespace 中的包名要和 Dao/Mapper 接口的包名一致!

编程思路
编写接口
UserMapper.java
java
import java.util.List;
public interface UserMapper {
// 查询全部用户
List<user> getUserList();
// 根据ID查询用户
user getUserById(int id);
// 插入用户
int addUser(user user);
// 更新用户
int updateUser(user user);
// 删除用户
int deleteUser(int id);
}
编写Mapper.xml中的sql语句
xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespcae=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.cike.dao.UserMapper">
<!--<select id="对应UserMapper的方法" resultType="实体类">-->
<select id="getUserList" resultType="com.cike.pojo.user">
<!--执行SQL-->
select * from mybatis.user
</select>
<select id="getUserById" parameterType="int" resultType="com.cike.pojo.user">
select * from mybatis.user where id = #{id}
</select>
<insert id="addUser" parameterType="com.cike.pojo.user">
insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd})
</insert>
<update id="updateUser" parameterType="com.cike.pojo.user">
update mybatis.user set name=#{name},pwd=#{pwd} where id =#{id};
</update>
<delete id="deleteUser" parameterType="com.cike.pojo.user">
delete from mybatis.user where id =#{id};
</delete>
</mapper>

测试
java
public class UserMapperTest {
@Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//执行SQL
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);// 获得对象
List<user> userList = userMapper.getUserList();
for (user user : userList){
System.out.println(user);
}
// 关闭SqlSession
sqlSession.close();
}
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
user userById = mapper.getUserById(1);
System.out.println(userById);
sqlSession.close();
}
/*增删改查需要提交事务*/
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.addUser(new user(3, "cike_y", "123456"));
if (res > 0){
System.out.println("成功插入"+res+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.updateUser(new user(1, "admin", "123456"));
System.out.println(i);
if (i > 0){
System.out.println("成功更新"+i+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.deleteUser(3);
if (i>0){
System.out.println("成功删除"+i+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
}
SELECT
Mapper.xml 中的代码
xml
<select id="getUserById" parameterType="int" resultType="com.cike.pojo.user">
select * from mybatis.user where id = #{id}
</select>
接口中的代码
java
user getUserById(int id);
测试方法
java
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
user userById = mapper.getUserById(1);
System.out.println(userById);
sqlSession.close();
}
INSERT
Mapper.xml 中的代码
xml
<insert id="addUser" parameterType="com.cike.pojo.user">
insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd})
</insert>
接口中的代码
java
<insert id="addUser" parameterType="com.cike.pojo.user">
insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd})
</insert>
测试方法
java
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.addUser(new user(3, "cike_y", "123456"));
if (res > 0){
System.out.println("成功插入"+res+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
UPDATE
Mapper.xml 中的代码
xml
<update id="updateUser" parameterType="com.cike.pojo.user">
update mybatis.user set name=#{name},pwd=#{pwd} where id =#{id};
</update>
接口中的代码
java
int updateUser(user user);
测试方法
java
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.updateUser(new user(1, "admin", "1234567"));
System.out.println(i);
if (i > 0){
System.out.println("成功更新"+i+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
DELETE
Mapper.xml 中的代码
xml
<delete id="deleteUser" parameterType="com.cike.pojo.user">
delete from mybatis.user where id =#{id};
</delete>
接口中的代码
java
int deleteUser(int id);
测试方法
java
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.deleteUser(3);
if (i>0){
System.out.println("成功删除"+i+"条数据");
}
sqlSession.commit();
sqlSession.close();
}
注意点
- 增删改(没有查)需要提交事务
- sqlSession.close();释放资源