这期内容当中小编将会给大家带来有关Mybatis中如何实现动态SQL,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

庆安网站建设公司成都创新互联,庆安网站设计制作,有大型网站制作公司丰富经验。已为庆安1000多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的庆安做网站的公司定做!
二、动态SQL
1、 IF 标签
在Product.xml中
在TestIF.java中
System.out.println("查询所有的");
List ps = session.selectList("listProduct");
for (Product p : ps) {
System.out.println(p);
}
System.out.println("模糊查询");
Map params = new HashMap<>();
params.put("name","a");
List ps2 = session.selectList("listProductByName",params);
for (Product p : ps2) {
System.out.println(p);
} 2、WHERE SET TRIM 标签
(1)WHERE标签
如果要进行多条件判断,可能会出现select * from product_ and price > 10 的矛盾
这个问题可以通过
如果任何条件都不成立,那么就在sql语句里就不会出现where关键字
如果有任何条件成立,会自动去掉多出来的 and 或者 or。
(2)SET标签
与where标签类似的,在update语句里也会碰到多个字段相关的问题。 在这种情况下,就可以使用set标签
name=#{name}, price=#{price}
(3)TRIM标签,用来定制想要的功能
比如:替换where标签
...
替换set标签
...
3、CHOOSE WHEN OTHERWISE 标签
(1)Mybatis里面没有else标签,但是可以使用when otherwise标签来达到这样的效果。
在Product.xml中
其作用是: 提供了任何条件,就进行条件查询,否则就使用id>1这个条件。
4、FOREACH 标签,通常用于in 这样的语法里.
如例,如图查询出id等于1,3,5的数据出来。
在Product.xml中
在TestForeach.java中
package com.how2java;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.how2java.pojo.Product;
public class TestMybatis {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
List ids = new ArrayList();
ids.add(1);
ids.add(3);
ids.add(5);
List ps = session.selectList("listProduct",ids);
for (Product p : ps) {
System.out.println(p);
}
session.commit();
session.close();
}
} 5、bind标签
bind标签就像是再做一次字符串拼接,方便后续使用
如本例,在模糊查询的基础上,把模糊查询改为bind标签。
在Product.xml中
在TestMybatis.java中
package com.how2java;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.how2java.pojo.Product;
public class TestMybatis {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
Map params =new HashMap();
params.put("name", "product");
List ps = session.selectList("listProduct",params);
for (Product p : ps) {
System.out.println(p);
}
session.commit();
session.close();
}
} 上述就是小编为大家分享的Mybatis中如何实现动态SQL了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
文章标题:Mybatis中如何实现动态SQL
文章URL:http://www.cqwzjz.cn/article/ighjhj.html


咨询
建站咨询
