当前位置:   article > 正文

Mybatis学习笔记2——增删改的实现_usermapper usermapper = .getmapper(usermapper.clas

usermapper usermapper = .getmapper(usermapper.class);

一、向表里插入数据。我们只需要更改userMapper.interface和userMapper.xml,最后在userMapperTest中测试

1.在userMapper接口中声明方法

  1. //插入用户信息
  2. int insertUser(user userx);

2.在userMapper.xml中实现该方法

  1. <insert id="insertUser" parameterType="com.mybatislearn.pojo.user">
  2. insert into user1 (id,username,sex) values(#{id},#{username},#{sex})
  3. </insert>

注意:1.此时用到的是<insert>  </insert>,不再是<select>  </select>

           2.parameType是参数类型,由于我们要插入一个用户,所以插入的是user类

           3.注意sql语句的写法

3.在userMapperTest中测试

  1. @Test
  2. public void insertTest(){
  3. SqlSession sqlsession = new mybatisUtils().getSqlsession();
  4. userMapper mapper = sqlsession.getMapper(userMapper.class);
  5. int i = mapper.insertUser(new user(5, "黎明", "男"));
  6. if(i>0){
  7. System.out.println("插入成功!");
  8. sqlsession.commit();
  9. }
  10. sqlsession.close();
  11. }

读者可能会发现,我们多了一个sqlsession.commit()的操作,是因为对数据库进行了改动,需要提交事务。在本文中增删改都是修改了数据库,都要用到提交事务,否则的话数据库中的数据不会发生变化。

4.运行结果及查看表

.

二、删除表里的数据

1.在userMapper接口中声明方法

  1. //删除用户
  2. int deleteUser(int id);

2.在userMapper.xml中实现该方法

  1. <delete id="deleteUser" parameterType="int">
  2. delete from user1 where id = #{id}
  3. </delete>

3.在userMapperTest中测试

  1. @Test
  2. public void deleteTest(){
  3. SqlSession sqlsession = new mybatisUtils().getSqlsession();
  4. userMapper mapper = sqlsession.getMapper(userMapper.class);
  5. int i = mapper.deleteUser(41);
  6. if(i>0){
  7. System.out.println("删除成功!");
  8. sqlsession.commit();
  9. }
  10. sqlsession.close();
  11. }

注意要使用sqlsession.commit()

4.运行结果及查看表

三、更新表中的数据

1.在userMapper接口中声明方法

  1. //更新数据
  2. int updateUser(user userx);

2.在userMapper.xml中实现该方法

  1. <update id="updateUser" parameterType="com.mybatislearn.pojo.user">
  2. update user1 set username = #{username}, sex = #{sex} where id = #{id} ;
  3. </update>

3.在userMapperTest中测试

  1. @Test
  2. public void updateTest(){
  3. SqlSession sqlsession = new mybatisUtils().getSqlsession();
  4. userMapper mapper = sqlsession.getMapper(userMapper.class);
  5. int i = mapper.updateUser(new user(5,"liming","女"));
  6. if(i>0){
  7. System.out.println("更新成功");
  8. sqlsession.commit();
  9. }
  10. sqlsession.close();
  11. }

4.运行结果及查看表

四、万能Map(野路子)

在插入和更新表中数据时,我们用到的parameterType="com.mybatislearn.pojo.user",如果user.class有许多成员变量的话,我们在写Sql实现语句的时候就会很麻烦。所以引入了Map。

1.在userMapper接口中声明方法

  1. //万能Map更新数据
  2. int updateUser2(Map<String,Object> map);

2.在userMapper.xml中实现该方法

  1. <!-- 因为map的key可以自己命名,所以不一定要和表中的字段名一模一样,这样操作更加灵活,而且使用map可以只写需要更改的字段,很简便 -->
  2. <update id="updateUser2" parameterType="map">
  3. update user1 set username = #{mapname} where id = #{mapid};
  4. </update>

3.在userMapperTest中测试

  1. @Test
  2. public void updateTest2(){
  3. SqlSession sqlsession = new mybatisUtils().getSqlsession();
  4. userMapper mapper = sqlsession.getMapper(userMapper.class);
  5. //创建一个map
  6. Map<String,Object> map = new HashMap<String, Object>() ;
  7. //map的key及其赋值,注意:此处的map的key名称要与userMapper.xml里的一样
  8. map.put("mapname","大王");
  9. map.put("mapid",42);
  10. int i = mapper.updateUser2(map);
  11. if(i>0){
  12. System.out.println("万能map修改成功!");
  13. sqlsession.commit();
  14. }
  15. sqlsession.close();
  16. }

4.运行结果及查看表

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/949378
推荐阅读
相关标签
  

闽ICP备14008679号