我们在MyBatis(一)中介绍了有关MyBatis的几点内容:
接下来我们来了解一下,关于MyBatis中的增删改查操作是如何实现的:
上一章中,我们介绍了根据指定字段查询、查询全部数据、插入一条数据,大家还有印象吗?让我们一起来回顾一下吧!
先看看目录结构:
dao层放的是接口,对数据的操作方法的声明
pojo层放的是实体类以及实体对应的get和set方法
utils包中存放了MyBatis的配置文件读取以及获取SqlSessionFactory对象等操作
【具体代码见MyBatis(一)】
// 创建一个查询方法
@Select("select * from user where id = #{id}")
List<User> queryUserById(@Param("id") int id);
@Select("select * from user")
List<User> findAll();
//创建一个插入的方法
@Insert("insert into user(id,username,password) values(#{id},#{username},#{password})")
int insertUser(Map map);
@Test
public void TestQuery(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.queryUserById(1);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void findAll(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> list = mapper.findAll();
for (User user : list) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void insertUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap map = new HashMap();
map.put("id",3);
map.put("username","user2");
map.put("password","1234");
mapper.insertUser(map);
sqlSession.close();
}
以上是MyBatis(一)中的部分内容,接下来让我们来学习一下,如何删除和修改数据
1.首先是在UserMapper.java中添加一个删除方法的声明
// 这是一个删除的方法
@Delete("delete from user where id = #{id}")
int deleteUser(@Param("id") int id);
2.然后在测试类中实现这个方法
@Test
public void DeleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int count = mapper.deleteUser(1);
if (count>0){
System.out.println("User already be deleted!");
}else{
System.out.println("Delete failure!");
}
sqlSession.close();
}
让我们来看看日志中打印了哪些内容
我们可以从打印的日志中看出,已经执行了删除的SQL语句。
为了验证是否删除,我们查看一下数据库:
id为1的用户信息已经被删除了!
1.首先是在UserMapper.java中添加一个修改方法的声明
// 这是一个修改方法
@Update("update user set password = #{password} where id = #{id}")
int updateUser(Map map);
2.然后在测试类中实现这个方法
@Test
public void UpdateUserInfo(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap map = new HashMap();
map.put("password","test123");
map.put("id",2);
int count = mapper.updateUser(map);
if (count>0){
System.out.println("User already be updated!");
}else{
System.out.println("Update failure!");
}
sqlSession.close();
}
让我们来看看日志中打印了哪些内容
参数(Parameters)有两个,分别是密码和id。
其中我们要将密码修改为test123
日志中,我们可以看到执行了一条update语句
我们再来看看数据库中id为2的用户密码是否被更改。
由此可以看出,我们的修改操作执行成功了!
1.在dao层的Mapper接口中申明要执行的操作和方法
2.在测试中实现对应的方法
增删改查在后期的SSM框架整合的web项目中会经常用到,比较重要,所以希望大家反复练习!!!
以上就是我们用MyBatis实现增删改查的全部内容啦!在后续的文章中,我将继续介绍一些常用的插件、如何在Mapper.xml中实现增删改查以及如何实现分页和模糊查询等内容,希望大家持续关注!
【求关注!求点赞!求三连!!!】
【具体代码我会上传至gitee和github中,等后期内容结束我会上传至网盘,链接我会放在评论区】