MyBatis(三):CRUD的操作实现

打印 上一主题 下一主题

主题 813|帖子 813|积分 2439

在MyBatis(二)的学习中我们已经实现了第一个MyBatis程序,现在我们要实现增删改查的完整操作,我们应该思考我们需要去修改哪些内容呢?
修改三个内容:Mapper接口、对应Mapper接口的xml配置文件、测试类。
一、查询
我们尝试一个根据id查询一个用户的信息。
1.修改UserMapper接口
在其中添加我们对应的方法:
  1. package com.jms.dao;
  2. import java.util.List;
  3. import com.jms.pojo.User;
  4. public interface UserMapper {//根据id获取User信息
  5.     User getUserbyid(int id);
  6. }
复制代码
2.修改UerMapper.xml配置文件
在其中添加我们实现接口方法的内容:
  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. <mapper namespace="com.jms.dao.UserMapper">
  6.   <select id="getUserbyid" parameterType="int" resultType="com.jms.pojo.User">
  7.       select * from mybaties.user where id=#{id}
  8.   </select>
  9. </mapper>
复制代码
我们这里在对上面几个名称进行回顾:
(1)namespace:命名空间,对应的是Mapper接口的全限定命名。
(2)id:对应的时Mapper接口中的方法名。
(3)parameterType:对应方法中传入的参数类型。
(4)resultType:对应的是SQL语句的返回值类型。
3.junit测试
  1. 1     @Test
  2. 2     public void Select() {
  3. 3         //利用工具类获取SqlSession
  4. 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  5. 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  6. 6         User user = userMapper.getUserbyid(10000);
  7. 7         System.out.println(user);
  8. 8         sqlSession.close();
  9. 9     }   
复制代码
测试结果:

二、增加
1.修改UserMapper接口
添加对应的方法:
  1. 1 package com.jms.dao;
  2. 2
  3. 3 import java.util.List;
  4. 4
  5. 5 import com.jms.pojo.User;
  6. 6
  7. 7 public interface UserMapper {
  8. 8     
  9. 9     //增加用户信息
  10. 10     int addUser(User user);
  11. 11 }
复制代码
2.修改UerMapper.xml配置文件
在其中添加我们实现接口方法的内容:
  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. <mapper namespace="com.jms.dao.UserMapper">
  6.   
  7.   <insert id="addUser" parameterType="com.jms.pojo.User">
  8.       insert mybaties.user value(#{id},#{username},#{password})
  9.   </insert>
  10. </mapper>
复制代码
其中的#{id}、#{username}、#{password}都是对应着User的私有属性id、usename、password。
3.junit测试
  1. 1 @Test
  2. 2     public void Insert() {
  3. 3         //利用工具类获取SqlSession
  4. 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  5. 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  6. 6         userMapper.addUser(new User(10006,"jms6","123456"));
  7. 7         //提交事务
  8. 8         sqlSession.commit();
  9. 9         sqlSession.close();
  10. 10     }
复制代码
 
上述代码第8行的提交事务是必须的,否则无法将内容插入的数据库中。
测试结果:

 
 我们可以看到数据成功插入。
三、修改
1.修改UserMapper接口
  1. 1 package com.jms.dao;
  2. 2
  3. 3 import java.util.List;
  4. 4
  5. 5 import com.jms.pojo.User;
  6. 6
  7. 7 public interface UserMapper {
  8. 8     
  9. 9     //修改用户信息
  10. 10     int UpdateUser(User user);
  11. 11 }
复制代码
2.修改UerMapper.xml配置文件
  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. <mapper namespace="com.jms.dao.UserMapper">
  6.   
  7.   <update id="UpdateUser" parameterType="com.jms.pojo.User">
  8.       update mybaties.user set username=#{username},password=#{password} where id=#{id}
  9.   </update>
  10. </mapper>
复制代码
3.junit测试
 
  1. 1 @Test
  2. 2     public void Update() {
  3. 3         //利用工具类获取SqlSession
  4. 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  5. 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  6. 6         userMapper.UpdateUser(new User(10006, "jms7", "456123"));
  7. 7         //提交事务
  8. 8         sqlSession.commit();
  9. 9         sqlSession.close();
  10. 10     }
复制代码
 
测试结果:

 
 四、删除
1.修改UserMapper接口
  1. 1 package com.jms.dao;
  2. 2
  3. 3 import java.util.List;
  4. 4
  5. 5 import com.jms.pojo.User;
  6. 6
  7. 7 public interface UserMapper {
  8. 8     //删除用户
  9. 9     int DeleteUser(int id);
  10. 10 }
复制代码
2.修改UserMapper.xml配置文件
  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. <mapper namespace="com.jms.dao.UserMapper">
  6.   
  7.   <delete id="DeleteUser" parameterType="int">
  8.       delete from mybaties.user where id=#{id}
  9.   </delete>
  10. </mapper>
复制代码
3.junit测试
  1. 1 @Test
  2. 2     public void Delete() {
  3. 3         //利用工具类获取SqlSession
  4. 4         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  5. 5         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  6. 6         userMapper.DeleteUser(10006);
  7. 7         //提交事务
  8. 8         sqlSession.commit();
  9. 9         sqlSession.close();
  10. 10     }
复制代码
测试结果:

 
 五、总结
1.注意Mapper.xml文件中各个名称的含义。
2.注意增删改操作需要SqlSession.commit()进行提交事务。
 
(本文仅作个人学习记录用,如有纰漏敬请指正)
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表