Mybatis实现增删改查-mybatis的核心

电玩女神 2023-07-15 09:17 83阅读 0赞

CRUD(增删改查)–mybatis的核心
搭建好mybatis环境以后可以实现对数据库的增删改查等操作
结构目录
在这里插入图片描述
1.namespace
namespace中的包名要和Dao/mapper接口中的包名一致!

2.过程

  • id:就是对应的namespace中的方法名
  • parameterType:参数类型
  • resultType:sql语句执行的返回值

1.编写接口

  1. package com.superman.dao;
  2. import com.superman.pojo.User;
  3. import java.util.List;
  4. public interface UserMapper {
  5. //查询全部用户
  6. List<User> getUserList();
  7. //根据用户id查询
  8. User getUserById(int id);
  9. //增加一个用户
  10. int addUser(User user);
  11. //修改一个用户
  12. int updateUser(User user);
  13. //删除一个用户
  14. int deleteUser(int id);
  15. }

2.填写对应的mapper中的sql语句

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--namespace=绑定一个对应的Dao/Mapper接口-->
  6. <mapper namespace="com.superman.dao.UserMapper">
  7. <!--select查询语句-->
  8. <select id="getUserList" resultType="com.superman.pojo.User">
  9. select * from mybatis.user;
  10. </select>
  11. <select id="getUserById" resultType="com.superman.pojo.User" parameterType="int">
  12. select * from mybatis.user where id=#{ id};
  13. </select>
  14. <!--对象中的属性,可以直接取出来-->
  15. <insert id="addUser" parameterType="com.superman.pojo.User">
  16. insert into mybatis.user(id,username,birthday,sex,address) values (#{ id},#{ username},#{ birthday},#{ sex},#{ address});
  17. </insert>
  18. <!--修改数据库中的某个参数-->
  19. <update id="updateUser" parameterType="com.superman.pojo.User">
  20. update mybatis.user set username=#{ username},address=#{ address},birthday=#{ birthday} where id=#{ id};
  21. </update>
  22. <!--删除数据库中的一个用户-->
  23. <delete id="deleteUser" parameterType="int">
  24. delete from mybatis.user where id=#{ id};
  25. </delete>
  26. </mapper>

3.测试

  1. package com.superman.dao;
  2. import com.superman.pojo.User;
  3. import com.superman.utils.MybatisUtil;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.junit.Test;
  6. import java.util.List;
  7. public class UserDaoTest {
  8. @Test
  9. public void test() {
  10. //第一步:获得sqlsession对象
  11. SqlSession sqlSession = MybatisUtil.getSqlSession();
  12. //方式一:执行SQL
  13. UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  14. List<User> userList=mapper.getUserList();
  15. for (User user : userList) {
  16. System.out.println(user);
  17. }
  18. //关闭SqlSession
  19. sqlSession.close();
  20. }
  21. @Test
  22. public void getUserById(){
  23. SqlSession sqlSession=MybatisUtil.getSqlSession();
  24. UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  25. User user=mapper.getUserById(1);
  26. System.out.println(user);
  27. sqlSession.close();
  28. }
  29. @Test
  30. public void addUser(){
  31. SqlSession sqlSession=MybatisUtil.getSqlSession();
  32. UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  33. mapper.addUser(new User(5,"caiji","20201005","男","北京"));
  34. List<User> userList=mapper.getUserList();
  35. for (User user : userList) {
  36. System.out.println(user);
  37. }
  38. //提交事务,负责数据库将不会发生变化,即使输出打印时显示插入成功
  39. sqlSession.commit();
  40. sqlSession.close();
  41. }
  42. @Test
  43. public void updateUser(){
  44. SqlSession sqlSession=MybatisUtil.getSqlSession();
  45. UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  46. mapper.updateUser(new User(5,"zhaoxuan","20201515","女","太谷"));
  47. sqlSession.commit();
  48. sqlSession.close();
  49. }
  50. @Test
  51. public void deleteUser(){
  52. SqlSession sqlSession=MybatisUtil.getSqlSession();
  53. UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  54. mapper.deleteUser(5);
  55. sqlSession.commit();
  56. sqlSession.close();
  57. }
  58. }

注意点:
执行sql语句时,增删改必须要提交事务,sqlSession.commit();,否则无法对数据库产生语句效果
代码中没有使用mybatis中建议的代码格式,但是每次都需要在最后加上sqlSession.close();

发表评论

表情:
评论列表 (有 0 条评论,83人围观)

还没有评论,来说两句吧...

相关阅读