Select

选择,查询语句

id:就是对应的namespace中的方法名;

resultType:Sql语句执行的返回值;

parameterType:参数类型

我们想使用查询语句首先要在UserMapper.java定义新的抽象方法

Such as

之后,我们在UserMapper.xml里面写我们的sql语句

<!--注意id是新的抽象方法-->
<select id="getUserById" resultType="com.zou.pojo.User">
select * from mybatis."user" where id = #{id};
</select>

两文件的关系

Ok,接下来我们写测试类吧

public class test {
//查询所有用户和密码
@Test
public void getUserById(){
//通过MybatisUtils工具类获得sqlSession对象,这句话是写死的
SqlSession sqlSession = MybatisUtils.getSqlSession(); //我们需要做的就是写中间这段代码
//获取接口
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//我们查一下一号用户
User user = mapper.getUserById(1);
System.out.println(user); //关闭sqlSession,这句话是写死的
sqlSession.close();
}
}

基本就是以上这些步骤

上面执行了查询语句,接下来我们编写增删改的代码

我们费那么大力气搭建Mybatis项目,就是为了之后的方便,以后只用修改几个地方

注意:增删改和查询的最大区别是必须用sqlSession提交业务,否则无法成功!

1、UserMapper接口类

需要在UserMapper接口类中定义新的抽象方,不用删掉之前的方法,我们后边测试的时候只调用需要的方法即可

public interface UserMapper {
//查询全部用户
List<User> getUserList(); //根据ID查询用户
User getUserById(int id); //增加一个用户
int addUser(User user); //修改用户
int updateUser(User user); //删除用户
int deleteUser(int id);
}

2、UserMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.zou.dao.UserMapper"> <!--查询语句-->
<select id="getUserList" resultType="com.zou.pojo.User">
select * from mybatis.user;
</select> <!--根据ID查询用户名和密码-->
<select id="getUserById" parameterType="int" resultType="com.zou.pojo.User">
select * from mybatis.user where id = #{id};
</select> <!--增加一个用户-->
<insert id="addUser" parameterType="com.zou.pojo.User">
insert into mybatis.user(id, name, pwd) value (#{id},#{name},#{pwd});
</insert> <!--修改一个用户-->
<update id="updateUser" parameterType="com.zou.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id= #{id};
</update> <!--删除一个用户-->
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id};
</delete>

3、UserMapperTest测试类

public class UserMapperTest {
//查询所有用户和密码
@Test
public void test(){
//第一步:获得sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//方式一:getMapper
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList(); for (User user : userList) {
System.out.println(user);
} //关闭sqlSession
sqlSession.close();
} //根据ID查询用户和密码
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.getUserById(1);
System.out.println(user); sqlSession.close();
} //增删改需要提交事务 //增加一个用户
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(4, "王五", "123456")); //提交事务
sqlSession.commit();
sqlSession.close();
} //修改一个用户
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"田七","123123")); sqlSession.commit();
sqlSession.close();
} //删除一个用户
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
}

版权声明:以上大部分为CSDN博主「饿死在深夜」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_44986648/article/details/103143992

依旧是喜欢大力的一天

3.CRUD(增删改查)的更多相关文章

  1. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  2. 前端的CRUD增删改查的小例子

    前端的CRUD增删改查的小例子 1.效果演示 2.相关代码: <!DOCTYPE html> <html lang="en"> <head> & ...

  3. yii2-basic后台管理功能开发之二:创建CRUD增删改查

    昨天实现了后台模板的嵌套,今天我们可以试着创建CRUD模型啦 刚开始的应该都是“套用”,不再打算细说,只把关键的地方指出来. CRUD即数据库增删改查操作.可以理解为yii2为我们做了一个组件,来实现 ...

  4. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  5. 【EF6学习笔记】(二)操练 CRUD 增删改查

    本篇原文链接: Implementing Basic CRUD Functionality 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根 ...

  6. EF6 学习笔记(二):操练 CRUD 增删改查

    EF6学习笔记总目录 ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 接上篇: EF6 学习笔记(一):Code First 方式生成数据库及初始化数据库实际操作 本篇原文链接: I ...

  7. 一起学Vue:CRUD(增删改查)

    目标 使用Vue构建一个非常简单CRUD应用程序,以便您更好地了解它的工作方式. 效果页面 比如我们要实现这样列表.新增.编辑三个页面: 列表页面 新增页面 编辑页面 我们把这些用户信息保存到Todo ...

  8. MybatisPlus核心功能——实现CRUD增删改查操作 (包含条件构造器)

    CRUD 官方文档:https://baomidou.com/ (建议多看看官方文档,每种功能里面都有讲解)[本文章使用的mybatisplus版本为3.5.2] 条件构造器 一般都是用service ...

  9. Mybatis的CRUD 增删改查

    目录 namespace 命名空间 select insert update delete Mybatis 官网: https://mybatis.org/mybatis-3/zh/getting-s ...

  10. EasyUI第一章Application之Basic CRUD(增删改查)

    先看效果图: 增加: 修改: 删除: 具体实现: html与js代码: @{ Layout = null; } <!DOCTYPE html> <html> <head& ...

随机推荐

  1. Mapped Statements collection does not contain value for xxx

    这是我第二次遇到的这个问题了,总结下. 第一次的问题是 mybatis的sqlSessionFactory的mapperLocations,配置的是这个路径下的所有映射文件,但是我没写的没有在该路径下 ...

  2. Codeforces 383C Propagating tree, 线段树, 黑白染色思想

    按深度染色,奇深度的点存反权值. #include <bits/stdc++.h> using namespace std; vector <]; ],a[],s[],vis[],i ...

  3. openlayers 保存当前地图View为图片

    /** * 保存地图为图片工具栏 */function addMapToolSavePicture() { var saveElement = document.createElement('a'); ...

  4. C语言链表的中间结点

    给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4, ...

  5. <软件工程基础>个人项目——数独

    参见GitHub:https://github.com/1773262526/Software-Foundation Personal Software Process Stages         ...

  6. idea 配置 tomcat 教程

    最近在搞一个项目需要用到idea 配置tomcat,翻了翻网上的帖子发现稂莠不齐,最后决定还是自己写个吧!(其实我挺蠢的走了好多的弯路,哎~) 1.首先准备一个需要大家tomcat的工程,然后使用id ...

  7. 0216 aop和打印数据库执行日志

    需求 maven依赖 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artif ...

  8. 复制文件或目录命令 - cp

    1) 命令名称:cp 2) 英文原意:copy 3) 命令所在路径:/bin/cp 4) 执行权限:所有用户 5) 功能描述:复制文件或目录 语法: cp -rp [原文件或目录][目标目录] -r ...

  9. 大数据-Storm

    Storm 流式处理框架 Storm是实时的,分布式,高容错的计算系统.java+cljoure Storm常驻内存,数据在内存中处理不经过磁盘,数据通过网络传输. 底层java+cljoure构成, ...

  10. 第三十二篇 玩转数据结构——AVL树(AVL Tree)

          1.. 平衡二叉树 平衡二叉树要求,对于任意一个节点,左子树和右子树的高度差不能超过1. 平衡二叉树的高度和节点数量之间的关系也是O(logn) 为二叉树标注节点高度并计算平衡因子 AVL ...