抽取sql片段

<!--抽取重复的sql片段--><sql id="user_field">select id,username,password,gender,regist_timefrom t_user</sql><!--根据id查询--><select id="queryUserById" resultType="User"><include refid="user_field"></include>where id=#{arg}</select>

接下来操作的表

使用map传参,定义接口

/*使用map传参查询*/User queryUserByMap(Map map);

mapper文件,定义sql语句

<!--使用map传参--><select id="queryUserByMap" resultType="User">select *from t_userwhere id=#{id} and username=#{username}</select>

测试

 Map map = new HashMap();map.put("id",1);map.put("username","铁山靠");System.out.println(map);User user = mapper.queryUserByMap(map);System.out.println(user);sqlSession.close();

结果

使用user对象传参,定义接口

/*使用User对象传参*/
User queryByUser(User user);

mapper文件,定义sql语句

<!--使用User对象传参-->
<select id="queryByUser" resultType="User">select *from t_userwhere id=#{id} and password=#{password}
</select>

测试

user.setId(1);
user.setPassword("123");
User user1 = mapper.queryByUser(user);
System.out.println(user1);
sqlSession.close();

结果

使用模糊查询,返回list集合,查询时使用concat拼接sql语句,定义接口

/*模糊查询,返回list集合,查询时使用concat拼接sql语句*/
List<User> queryUserReturnList(String string);

mapper文件,定义sql语句

<!--模糊查询,返回list集合,查询时使用concat拼接sql语句-->
<select id="queryUserReturnList" resultType="User">select *from t_userwhere gender LIKE concat('%',#{gender},'%');
</select>

测试

/*模糊查询,返回list集合,查询时使用concat拼接sql语句*/
/*queryUserReturnList*/
System.out.println("queryUserReturnList-------------------------");
List<User> users = mapper.queryUserReturnList("3");
for(User user2:users){System.out.println(user2);
}
sqlSession.close();

结果

使用插入数据,并且主键回填,定义接口

/*插入数据,并且主键回填*/
int insertData(User user);

mapper文件,定义sql语句

<!--插入数据,并且主键回填-->
<!--    /*主键回填,将新增的id,存入到java对象和逐渐对应的属性中去*/-->
<!--        <selectKey order="AFTER" resultType="int" keyProperty="id">-->
<!--            select last_insert_id()-->
<!--        </selectKey>-->
<insert id="insertData" parameterType="User" useGeneratedKeys="true" keyProperty="id">insert into t_user (username,password,gender,regist_time)values (#{username},#{password},#{gender},#{regist_time})
</insert>

测试

User user = new User();
user.setUsername("导师田斌");
user.setPassword("933");
user.setGender(30);
user.setDatetime("2021/08/26");
System.out.println(user);
int rows = mapper.insertData(user);
System.out.println(rows == 1 ? "插入成功" : "插入失败");
System.out.println(user);
sqlSession.commit();
sqlSession.close();

结果

mybatis各种小知识点一相关推荐

  1. mysql,mybatis常用小知识点

    1:模糊查询sql注入 1 <if test="changeObj != null" > 2 AND change_obj like '%${changeObj}%' ...

  2. JavaScript 小知识点

    原型链相关 最详尽的 JS 原型与原型链终极详解 isNaN() 和 Number.isNaN() 的区别 isNaN() 是 ES1 规范: 是全局方法: 如果参数不是一个 Number 类型,会先 ...

  3. Python小知识点(3)--装饰器

    Python小知识点(3)--装饰器 (1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func):def done(*ar ...

  4. php-函数小知识点

    <?php //语句 //分支语句 /*$a=5; if($a==5) { echo "相等";} else { echo "budeng";}*/ // ...

  5. 0607am抽象类接口析构方法tostring小知识点

    /* class ren { public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里 ...

  6. Python小知识点(5)--面向对象部分

    Python小知识点(5)--面向对象部分 面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.------ ...

  7. JS,JQ,PHP的小知识点整理

    在日常开发中所使用的JS,JQ,PHP的小知识点整理 持续更新-- 1.js和jq获取当前的时间戳 方法一: <script>var timestamp = Date.parse(new ...

  8. C语言小知识点练习总结

    最近在准备C语言的上级考试,之前对C接触不多,在练习过程中把一些小知识点记录下来. 1.字符串的截取 利用strncpy函数,传入三个参数,分别为目标字符串,起始位置,长度. 例如将日期字符串转化为数 ...

  9. 通信工程专业的一些小知识点

    原文链接:(更多文章移步链接) 通信工程专业的一些小知识点 - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/49285829 一. 无线信道的多径效应导致的频率选择 ...

最新文章

  1. open*** 启动报错
  2. Typescript中使用Axios
  3. 如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘
  4. mysql在linux下配置_mysql数据库在Linux下安装与配置
  5. 单位根反演[loj6485]LJJ 学二项式定理
  6. 48 MM配置-库存管理和实际库存-工厂参数
  7. 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)
  8. 分类图片展示php源码,HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)...
  9. Jenkins 安装FAQ
  10. 进程VS线程---操作类型
  11. 【习惯】是学习最好的坚持方式
  12. adb 连接时候不弹出授权对话框
  13. 百度之星1000——A+B问题
  14. 软件工程----开发大致流程
  15. 正则表达式在工作中的应用
  16. oracle deadlock with TM lock in SX/SSX mode
  17. 中国脑与语言认知领域研究学者
  18. java对接ntlm_通过NTLM获取信息.
  19. 为何现在的90后员工的离职率越来越高了?
  20. M1 macOS 无法录制系统声音?SoundFlower后继有BlackHole【macOS系统声音内录】

热门文章

  1. Android四大组件之Activity详解
  2. Android APP加固混淆案例分享(解决风险提示问题)
  3. 前端-Ajax和JSON解析数据
  4. trunc函数 mysql_oracle trunc函数使用详解
  5. - code vs 3038 3n+1问题(递归)
  6. 瑞星杀毒软件内存占用真相曝光
  7. 计算机声音音乐小星星,生活的声音,敲出一首小星星
  8. airpods连接win10音量异常的解决方法
  9. 华展云1.0.2版本更新通告
  10. vue 监听页面刷新或关闭