1.新增数据
使用MyBatis生成器生成的方法中含有两个新增方法,分别是insert和insertSelective,可以直接使用。这个两个方法的区别是,insertSelective对应的sql语句加入了NULL校验,只会插入数据不为NULL的字段,insert则会插入所有的字段,会插入NULL值。测试方法如下,示例代码:
//新增
@Test
public void insert() throws ParseException{
//获取sqlsession
SqlSession sqlSession=sessionFactory.openSession();
try{
//获取dao/mapper
UserDAO userDao=sqlSession.getMapper(UserDAO.class);
User user=new User();
user.setUsername("小度");
user.setPassword("345");
user.setDetime(new Date());
user.setSex(false);
user.setPowerid(3);
//新增数据,返回受影响的行数
int num=userDao.insertSelective(user);
if(num>0){
System.out.println("新增成功");
}
//提交事务
sqlSession.commit();
}finally{
//关闭sqlSession
sqlSession.close();
}
}
2.修改数据
与新增方法类型,MyBatis生成器的方法中已经包含有两个修改方法,分别是updateByPrimryKey、updateByPrimaryKeySelective,区别是updateByPrimryKey会修改所有的字段,为空会插入NULL,updateByPrimaryKeySelective对应的sql语句加入了NULL校验,只会修改不为NULL的字段。测试方法如下,示例代码:
//修改
@Test
public void update() throws ParseException{
//获取sqlsession
SqlSession sqlSession=sessionFactory.openSession();
try{
//获取dao/mapper
UserDAO userDao=sqlSession.getMapper(UserDAO.class);
//先查询出需要修改的数据
/*User user=userDao.selectByPrimaryKey(22);*/
User user=new User();
user.setUserid(22);
user.setUsername("萨克斯");
//修改数据,返回受影响的行数
int num=userDao.updateByPrimaryKeySelective(user);
if(num>0){
System.out.println("修改成功");
}
//提交事务
sqlSession.commit();
}finally{
//关闭sqlSession
sqlSession.close();
}
}
3.删除数据
MyBatis生成器生成的方法含有根据主键删除数据的方法deleteByPrimaryKey,示例代码:
//删除
@Test
public void delete(){
//获取sqlsession
SqlSession sqlSession=sessionFactory.openSession();
try{
//获取dao/mapper
UserDAO userDao=sqlSession.getMapper(UserDAO.class);
//删除数据,返回受影响的行数
int num=userDao.deleteByPrimaryKey(31);
if(num>0){
System.out.println("删除成功");
}
//提交事务
sqlSession.commit();
}finally{
//关闭sqlSession
sqlSession.close();
}
}
4.新增返回主键
编写UserDAO.java文件,添加如下代码:
/**
* 新增返回主键
* @param record
* @return
*/
public int insertReturnId(User record);
编写UserDAO.xml文件,直接复制insertSelective部分代码,在原有的新增方法的基础上添加useGeneratedKeys=“true” keyProperty=“userId”,keyProperty对应的是PO类的属性,示例代码:
<insert id="insertReturnId" parameterType="com.gx.po.User" useGeneratedKeys="true" keyProperty="userid" >
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userid != null">
userid,
</if>
<if test="username != null">
username,
</if>
<if test="password != null">
`password`,
</if>
<if test="userage != null">
userage,
</if>
<if test="sex != null">
sex,
</if>
<if test="createtime != null">
createtime,
</if>
<if test="detime != null">
detime,
</if>
<if test="powerid != null">
powerid,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userid != null">
#{
userid,jdbcType=INTEGER},
</if>
<if test="username != null">
#{
username,jdbcType=VARCHAR},
</if>
<if test="password != null">
#{
password,jdbcType=VARCHAR},
</if>
<if test="userage != null">
#{
userage,jdbcType=INTEGER},
</if>
<if test="sex != null">
#{
sex,jdbcType=BIT},
</if>
<if test="createtime != null">
#{
createtime,jdbcType=DATE},
</if>
<if test="detime != null">
#{
detime,jdbcType=TIMESTAMP},
</if>
<if test="powerid != null">
#{
powerid,jdbcType=INTEGER},
</if>
</trim>
</insert>