编写完使用Mybatis框架进行基础的查询后, 接着编写使用Mybatis进行基础的新增、修改和删除的内容;
- 新增:
先在Mapper接口中添加上对应方法,在到相应的Mapper.xml配置文件中添加上相应的sql语句。
<!--insert标签没有resultType属性-->
<!--parameterType 所设置的传递参数类型直接设置到相应的对象-->
<!--对象中的属性可以直接取出来 注意名字要与对象中的名字一一对应-->
<insert id="addUser" parameterType="com.emt.pojo.User">
insert into mybatis.user(id,name,wq) values (#{id},#{name},#{wq})
</insert>
然后添加测试类进行测试
@Test
public void addUsertest(){
SqlSession sqlsession = MybatisUtils.getSqlsession();
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
int count = mapper.addUser(new User(4,"测试","流浪乐章"));
if (count>0){
System.out.println("新增成功");
}
//提交事务
sqlsession.commit();
sqlsession.close();
}
需要注意由于增删改需要提交事务所以需要在执行新增代码后将事务提交上去,否则新增数据不会进入数据库
MybatisUtils 是将获取SqlSessionFactory对象的方法提取成的一个工具类,具体如下:
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
//获取SqlSessionFactory对象
InputStream inputStream = Resources.getResourceAsStream( "mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlsession(){
return sqlSessionFactory.openSession();
}
}
- 修改:
同样先在Mapper接口中添加上对应方法,在到相应的Mapper.xml配置文件中添加上相应的sql语句。
<update id="updateUser" parameterType="com.emt.pojo.User">
update mybatis.user set name =#{name },wq=#{wq} where id=#{id}
</update>
添加测试类进行测试:
@Test
public void UpdateUsertest(){
SqlSession sqlsession = MybatisUtils.getSqlsession();
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
int count = mapper.updateUser(new User(4,"嗯","嗯嗯"));
if (count>0){
System.out.println("修改成功");
}
//提交事务
sqlsession.commit();
sqlsession.close();
}
- 删除:
操作同理,先在Mapper接口中添加上对应方法,在到相应的Mapper.xml配置文件中添加上相应的sql语句最后添加侧类进行测试。
<delete id="deleteUser" parameterType="int" >
delete from mybatis.user where id = #{id}
</delete>
@Test
public void DeleteUsertest(){
SqlSession sqlsession = MybatisUtils.getSqlsession();
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
int count = mapper.deleteUser(4);
if (count>0){
System.out.println("删除成功");
}
sqlsession.commit();
sqlsession.close();
}