app开发者平台在数字化时代的重要性与发展趋势解析
1339
2022-11-15
Mybatis如何自动生成sql语句
目录Mybatis自动生成sql语句Mybatis的动态sql语句if标签的使用where标签的使用foreach标签的使用sql语句的简化编写
Mybatis自动生成sql语句
创建maven项目,将该配置文件运行即可生成 sql 语句
driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/user" userId="root" password="root"> targetPackage="en.et.dao" targetProject="src/main/java">
driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/user" userId="root" password="root">
driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/user"
userId="root"
password="root">
targetPackage="en.et.dao" targetProject="src/main/java">
targetPackage="en.et.dao" targetProject="src/main/java">
Mybatis的动态sql语句
Mybatis的动态sql语句主要解决的问题是不同条件sql语句的拼接。
例如:根据用户信息,查询用户列表,当不知道根据的是用户的什么信息时,写出查询的SQL语句是有一定困难的,而动态SQL语句主要解决的就是此类问题。
if标签的使用
在持久层接口定义方法
/**
* 根据用户信息,查询用户列表
* @param user
* @return
*/
List
编写持久层接口对应的映射文件
select *from user where 1 = 1
and id = #{id}
and username like #{username}
and birthday = #{birthday}
and sex = #{sex}
and address = #{address}
编写测试方法
/**
* 根据用户信息,查询用户列表
*/
@Test
public void testFindByUser()
{
User user = new User();
user.setUsername("%王%");
List
for (User u : users)
{
System.out.println(u);
}
}
where标签的使用
为了简化上面 where 1=1 的条件拼接,我们可以采用标签来简化开发,因此修改持久层映射文件
select *from user
and id = #{id}
and username like #{username}
and birthday = #{birthday}
and sex = #{sex}
and address = #{address}
foreach标签的使用
froeach是对一个集合进行遍历,通常在构建in条件语句的时候应用
例如:根据一个用户id集合查询用户。
对id集合进行封装,加入到List集合
编写持久层接口方法
/**
* 根据id集合查询用户
* @param queryURitOJaLoqbj
* @return
*/
List
编写持久层接口映射文件
select *from user
#{uid}
编写测试方法
/**
* 根据id集合查询用户
*/
@Test
public void testFindInIds()
{
QueryUR queryUR = new QueryUR();
List
ids.add(41);
ids.add(43);
ids.add(45);
queryUR.setIds(ids);
List
for (User user : users)
{
System.out.println(user);
}
}
sql语句的简化编写
在映射文件中,可以将重复的sql语句通过sql标签提取出来,使用include标签引用即可,已达到sql重用的效果。如下所示:
select *from user
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~