Mybatis如何自动生成sql语句
目录
- Mybatis自动生成sql语句
- Mybatis的动态sql语句
- if标签的使用
- where标签的使用
- foreach标签的使用
- sql语句的简化编写
Mybatis自动生成sql语句 创建maven项目,将该配置文件运行即可生成 sql 语句
Mybatis的动态sql语句 Mybatis的动态sql语句主要解决的问题是不同条件sql语句的拼接。
例如:根据用户信息,查询用户列表,当不知道根据的是用户的什么信息时,写出查询的SQL语句是有一定困难的,而动态SQL语句主要解决的就是此类问题。
if标签的使用
在持久层接口定义方法
/*** 根据用户信息,查询用户列表* @param user* @return*/ListfindByUser(User user);
编写持久层接口对应的映射文件
select *from user where 1 = 1and id = #{id} and username like #{username} and birthday = #{birthday} and sex = #{sex} and address = #{address}
编写测试方法
/*** 根据用户信息,查询用户列表*/@Testpublic void testFindByUser(){User user = new User(); user.setUsername("%王%"); Listusers = userDao.findByUser(user); for (User u : users){System.out.println(u); }}
where标签的使用
为了简化上面 where 1=1 的条件拼接,我们可以采用标签来简化开发,因此修改持久层映射文件
select *from userand id = #{id} and username like #{username} and birthday = #{birthday} and sex = #{sex} and address = #{address}
foreach标签的使用
froeach是对一个集合进行遍历,通常在构建in条件语句的时候应用
例如:根据一个用户id集合查询用户。
对id集合进行封装,加入到List集合
文章图片
编写持久层接口方法
/*** 根据id集合查询用户* @param queryUR* @return*/ListfindInIds(QueryUR queryUR);
编写持久层接口映射文件
select *from user#{uid}
编写测试方法
/*** 根据id集合查询用户*/@Testpublic void testFindInIds(){QueryUR queryUR = new QueryUR(); Listids = new ArrayList (); ids.add(41); ids.add(43); ids.add(45); queryUR.setIds(ids); List users = userDao.findInIds(queryUR); for (User user : users){System.out.println(user); }}
sql语句的简化编写
在映射文件中,可以将重复的sql语句通过sql标签提取出来,使用include标签引用即可,已达到sql重用的效果。如下所示:
select *from userwhere id= #{userID};
【Mybatis如何自动生成sql语句】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 微信域名防屏蔽技术,APP推广微信域名怎么避免防红,如何防拦截()
- android USB OTG功能如何打开及实现
- SQL如何增强你的子查询()
- android 如何让通知不被清除或者点击后不消失
- android 滑动锁屏状态下如何禁止下拉状态栏
- MyBatis使用mapper动态代理实现DAO接口
- Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题
- 如何在Android Studio中添加RecyclerView-v7支持包
- 微信域名防封技术,APP推广链接如何在微信域避免被封,如何防拦截()
- 厘米人ai如何打字?