mybatis各种小知识点一
抽取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各种小知识点一相关推荐
- mysql,mybatis常用小知识点
1:模糊查询sql注入 1 <if test="changeObj != null" > 2 AND change_obj like '%${changeObj}%' ...
- JavaScript 小知识点
原型链相关 最详尽的 JS 原型与原型链终极详解 isNaN() 和 Number.isNaN() 的区别 isNaN() 是 ES1 规范: 是全局方法: 如果参数不是一个 Number 类型,会先 ...
- Python小知识点(3)--装饰器
Python小知识点(3)--装饰器 (1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func):def done(*ar ...
- php-函数小知识点
<?php //语句 //分支语句 /*$a=5; if($a==5) { echo "相等";} else { echo "budeng";}*/ // ...
- 0607am抽象类接口析构方法tostring小知识点
/* class ren { public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里 ...
- Python小知识点(5)--面向对象部分
Python小知识点(5)--面向对象部分 面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.------ ...
- JS,JQ,PHP的小知识点整理
在日常开发中所使用的JS,JQ,PHP的小知识点整理 持续更新-- 1.js和jq获取当前的时间戳 方法一: <script>var timestamp = Date.parse(new ...
- C语言小知识点练习总结
最近在准备C语言的上级考试,之前对C接触不多,在练习过程中把一些小知识点记录下来. 1.字符串的截取 利用strncpy函数,传入三个参数,分别为目标字符串,起始位置,长度. 例如将日期字符串转化为数 ...
- 通信工程专业的一些小知识点
原文链接:(更多文章移步链接) 通信工程专业的一些小知识点 - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/49285829 一. 无线信道的多径效应导致的频率选择 ...
最新文章
- open*** 启动报错
- Typescript中使用Axios
- 如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘
- mysql在linux下配置_mysql数据库在Linux下安装与配置
- 单位根反演[loj6485]LJJ 学二项式定理
- 48 MM配置-库存管理和实际库存-工厂参数
- 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)
- 分类图片展示php源码,HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)...
- Jenkins 安装FAQ
- 进程VS线程---操作类型
- 【习惯】是学习最好的坚持方式
- adb 连接时候不弹出授权对话框
- 百度之星1000——A+B问题
- 软件工程----开发大致流程
- 正则表达式在工作中的应用
- oracle deadlock with TM lock in SX/SSX mode
- 中国脑与语言认知领域研究学者
- java对接ntlm_通过NTLM获取信息.
- 为何现在的90后员工的离职率越来越高了?
- M1 macOS 无法录制系统声音?SoundFlower后继有BlackHole【macOS系统声音内录】