MyBatis新增,修改,删除数据

1、 MyBatis生成器生成的方法中已经含有两个新增方法,分别是insert和insertSelective。insertSelective只会插入数据不为null的字段值。 insert则会插入所有字段,为空会插入null。

public void insertUser(){

   //获取SqlSession

   SqlSession sqlSession=sessionFactory.openSession();

   try{

       //获取dao/mapper

       UserDAO userDAO=sqlSession.getMapper(UserDAO.class);

       //实例化po表,设置所需要新增的数据

       User user=new User();

       user.setUsername("新增");//用户名

       user.setPassword("123");//密码

       //单表新增数据 返回受影响的行数

       //int rows=userDAO.insert(user);// insert(),新增表中所有数据

       int rows=userDAO.insertSelective(user);//insertSelective(),新增表中所有非null数据

       //判断受影响行数

       if(rows>0) {

          System.out.println("新增成功");

       }

       //提交事务

       sqlSession.commit();//select update delete 都需要提交事务

   }finally{

       //关闭SqlSession

       sqlSession.close();

   }

}

2、 MyBatis生成器生成的方法中已经含有两个修改方法,分别是updateByPrimaryKey和updateByPrimaryKeySelective。updateByPrimaryKeySelective 只会修改数据不为null的字段值。 updateByPrimaryKey 修改所有字段,为空会插入null。

public void updateUser(){

   //获取SqlSession

   SqlSession sqlSession=sessionFactory.openSession();

   try{

       //获取dao/mapper

       UserDAO userDAO=sqlSession.getMapper(UserDAO.class);

       //根据id查询出所需要修改的数据

       User user=userDAO.selectByPrimaryKey(5);

       //设置所需要修改的数据

       user.setUsername("修改");//用户名

       //单表修改数据 返回受影响的行数

//int rows=userDAO.updateByPrimaryKey(user);//updateByPrimaryKey(),修改表中所有数据

  int rows=userDAO.updateByPrimaryKeySelective(user);// updateByPrimaryKeySelective(),修改表中所有非null数据

       //判断受影响行数

       if(rows>0) {

          System.out.println("修改成功");

       }

       //提交事务

       sqlSession.commit();//select update delete 都需要提交事务

   }finally{

       //关闭SqlSession

       sqlSession.close();

   }

}

3、 MyBatis生成器生成的方法中已经含根据主键删除数据的方法deleteByPrimaryKey,可以直接使用

public void deleteUser(){

   //获取SqlSession

   SqlSession sqlSession=sessionFactory.openSession();

   try{

       //获取dao/mapper

       UserDAO userDAO=sqlSession.getMapper(UserDAO.class);//根据id删除数据
      
      //返回受影响的行数

       int rows=userDAO.deleteByPrimaryKey(5);

       //判断受影响行数

       if(rows>0) {

          System.out.println("删除成功");

       }

       //提交事务

       sqlSession.commit();//select update delete 都需要提交事务

   }finally{

       //关闭SqlSession

       sqlSession.close();

   }

}
MyBatis是一个轻量级的对象关系映射(ORM)框架,它允许你在Java代码层面操作数据库,而不需要编写大量的SQL。在MyBatis中,如果你想要处理数据的增删改查操作,通常会涉及到以下几个关键接口: 1. **`SqlSession`**:这是MyBatis的核心接口,通过它可以执行所有的数据库操作,包括新增(insert)、修改(update)和删除(delete)。你可以通过`insert`, `update`, 和 `delete` 方法来完成这些操作。 ```java SqlSession session = sqlSessionFactory.openSession(); try { // 新增记录 User user = new User(); int result = session.insert("insertUser", user); // 更新记录 user.setId(1); // 修改id result = session.update("updateUser", user); // 删除记录 result = session.delete("deleteUser", user.getId()); } finally { session.close(); } ``` 这里的`"insertUser"`, `"updateUser"`, 和 `"deleteUser"`是Mapper接口中的命名空间(namespace)下的方法名,它们会在对应的XML配置文件中映射到实际的SQL语句。 2. **`Mapper`接口**:这是一个自动生成的接口,由MyBatis根据你的数据库表和字段生成,包含了针对每一张表的所有CRUD操作方法。开发者只需要关注业务逻辑部分,MyBatis会在运行时动态地生成SQL并执行。 例如,对于用户表,可能会有这样的接口: ```java public interface UserMapper { @Insert("INSERT INTO users (name, age) VALUES (?, ?)") int insert(User user); @Update("UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}") int updateUser(@Param("user") User user); @Delete("DELETE FROM users WHERE id = #{id}") int deleteUser(int id); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值