Mybatis如何自动生成sql语句

网友投稿 1339 2022-11-15

Mybatis如何自动生成sql语句

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 findByUser(User user);

编写持久层接口对应的映射文件

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 users = userDao.findByUser(user);

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 findInIds(QueryUR queryUR);

编写持久层接口映射文件

select *from user

#{uid}

编写测试方法

/**

* 根据id集合查询用户

*/

@Test

public void testFindInIds()

{

QueryUR queryUR = new QueryUR();

List ids = 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 user

where id= #{userID};

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网友们碰到过的最难调试的 Bug
下一篇:Mybatis重置Criteria的正确姿势分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~