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();
}
}