CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。
关于Mybatis的入门,在博主的上一篇博客中。本篇文章就是基于上一篇文章来写的,为了统一标准,将UserDao接口更名为UserMapper接口。
增
增加一个User,我们就先在接口中定义方法:
/**
* 向数据库中插入一个User
*
* @param user 插入的user
* @return 返回受影响的行数
*/
int addUser(User user);
然后在对应的UserMapper.xml文件中添加如下:
<!--对象中的属性可以直接取出来-->
<insert id="addUser" parameterType="com.ara.pojo.User">
insert into user(name,password) values (#{name},#{password})
</insert>
测试方法编写:
@Test
public void addUserTest(){
//获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
//执行sql
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.addUser(new User("小明", "5451646984"));
//提交事务 所有的增删改都需要提交事务
sqlSession.commit();
System.out.println(result);
//关闭sqlSession
sqlSession.close();
}
执行结果:
查
UserMapper接口添加:
/**
* 根据id查询对应的用户
*
* @param id 查询id
* @return 返回对应的用户
*/
User getUserById(int id);
由于查询的方式太多了,博主这里就以Id查询为例。
UserMapper.xml中添加:
<select id="getUserById" resultType="com.ara.pojo.User" parameterType="int">
select * from user where id = #{id}
</select>
测试方法:
@Test
public void getUserByIdTest(){
//获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
//执行sql
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
//关闭sqlSession
sqlSession.close();
}
运行结果:
改
UserMapper接口添加:
/**
* 根据id修改用户信息
*
* @param user 需要修改的用户,其中id不可变 为修改的依据 将除id的属性全部修改为传入的User对应的值
* @return 返回受影响的行数
*/
int updateUser(User user);
UserMapper.xml中添加:
<update id="updateUser" parameterType="com.ara.pojo.User">
update user set name = #{name} , password = #{password} where id = #{id}
</update>
测试方法:
@Test
public void updateUserTest(){
//获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
//执行sql
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.updateUser(new User(10,"小明111", "5451646984"));
//提交事务 所有的增删改都需要提交事务
sqlSession.commit();
System.out.println(result);
//关闭sqlSession
sqlSession.close();
}
运行结果:
删
UserMapper接口添加:
/**
* 通过用户主键id删除对应记录
*
* @param id 需要删除的用户id
* @return 返回受影响的行数
*/
int deleteUserById(int id);
UserMapper.xml中添加:
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>
测试方法:
@Test
public void deleteUserByIdTest(){
//获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
//执行sql
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.deleteUserById(10);
//提交事务 所有的增删改都需要提交事务
sqlSession.commit();
System.out.println(result);
//关闭sqlSession
sqlSession.close();
}
运行结果:
我们通过使用Mybatis来简单操作数据库,同我们之前原生的JDBC代码相比,Mybatis使用起来真的是太方便了,我们在做好配置之后,就只需要对接口中和对应的Mapper.xml文件进行修改即可,我们的注意力就可以完全转移到对sql语句的编写了,不需要对繁琐的JDBC代码进行重复的编写,大大的提高了开发效率。
后续我们还会用到注解的方式,比现在这种方式都还简单。