Mybatis中的Criteria条件查询方式

网友投稿 426 2022-12-26

Mybatis中的Criteria条件查询方式

Mybatis Criteria条件查询

Criterion

Criterion是最基本,最底层的Where条件,用于字段级的筛选。

Criteria

Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系。

其它

Example类的distinct字段用于指定DISTINCT查询。

orderByClause字段用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。

代码示例

import java.io.IOException;

import java.io.Reader;

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 org.apache.log4j.pattern.ClassNamePatternConverter;

import org.springframeworkAPOawEEiNp.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.ssm.mapper.ItemsMapper;

import cn.itcast.ssm.po.ItemsExample;

public class Student {

public static void main(String[] args) throws IOException {

/*方式一 */

ItemsExample itemsExample1 = new ItemsExample();

itemsExample1.or().andIdEqualTo(5).andNameIsNotNull();

itemsExample1.or().andPicEqualTo("xxx").andPicIsNull();

List fieldValues = new ArrayList();

fieldValues.add(8);

fieldValues.add(11);

fieldValues.add(14);

fieldValues.add(22);

itemsExample1.or().andIdIn(fieldValues);

itemsExample1.or().andIdBetween(5, 9);

/* 方式二 criteria1与criteria2是or的关系 */

ItemsExample itemsExample2 = new ItemsExample();

ItemsExample.Criteria criteria1 = itemsExample2.createCriteria();

criteria1.andIdIsNull();

criteria1.andPriceEqualTo((float) 3);

ItemsExample.Criteria criteria2 = itemsExample2.createCriteria();

criteria2.andNameIsNull();

criteria2.andIdGreaterThanOrEqualTo(5);

itemsExample2.or(criteria2);

APOawEEiNp//方式一和方式二是等价的

// spring获取mapper代理对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

ItemsMapper itemsMapper = (ItemsMapper) applicationContext.getBean("itemsMapper");

itemsMapper.countByExample(itemsExample2);

// 获取SqlSessionFactory

String resource = "SqlMapConfig.xml";

Reader reader = Resources.getResourceAsReader(resource);

SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);

// 获取SqlSession

SqlSession sqlSession = sqlMapper.openSession();

}

}

Mybatis的Criteria用法总结

用一对多内敛查询的时候,有的老铁提出left join in 但是我和同事商讨结果是用代码写处各种list然后stream存到数据库中,这样一来把计算压力从数据库存入服务器,当并发量高了,这样做的好处就体现在性能方面了。

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

上一篇:SpringBoot随机端口启动的实现
下一篇:怎么接入网站api接口(如何接入api)
相关文章

 发表评论

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