java 查询功能实现的八种方式
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
只是記錄一下
1. HQL
2. Mybatis : mapper.xml 中寫 sql 。
3. Mybatis : 注解 @Select
@Select("select * from xxx_order where order_no = #{orderNo}") @ResultMap("BaseResultMap") XxxOrder selectByOrderNo(@Param("orderNo") String orderNo);4.?Mybatis : 注解 @SelectProvider
@SelectProvider(type = XxxOrderProvider.class, method = "listOrderPdDataSql") List<OrderPdExportVo> listOrderPdData(XxxOrderQuery query);# sql寫在 Provider 類中。詳細(xì)用法見文章:mybatis3 中 @Provider 的使用方式?
5. Mybatis : Example (此方法亦有用方法4實(shí)現(xiàn).)
Example example = new Example(XxxRule.class); Criteria criteria = example.createCriteria(); criteria.andEqualTo("status", 1);詳細(xì)用法見文章:MyBatis : Mapper 接口以及 Example 使用實(shí)例、詳解?
關(guān)于 Example 分頁有三種方式,見文章 :mybatis 中 Example 的使用 :條件查詢、排序、分頁(三種分頁方式 : RowBounds、PageHelpler 、limit )
?6. Java Persistence API = JPA 、JPQL? ? ??
相關(guān)文章:JPA criteria 查詢:類型安全與面向?qū)ο?/p> @PersistenceContext private EntityManager em; ...String querySql = "SELECT xxx_id FROM xxxsibilityWHERE dxxpxxxnt_id = '" + dxxpxxxntId + "' AND code != '10010'"; List<Object> xxxIdList = em.createNativeQuery(querySql).getResultList();
7.?spring-data-jpa : JpaRepository<實(shí)體類, 主鍵類型>?
spring-data-jpa 相關(guān)文章:
spring data jpa 的 in 查詢 Specification 實(shí)現(xiàn)
spring-data-jpa 介紹 復(fù)雜查詢,包括多表關(guān)聯(lián),分頁,排序?
使用 Spring Data JPA 簡(jiǎn)化 JPA 開發(fā)
spring-data-JPA使用JpaRepository注解自定義SQL查詢數(shù)據(jù)庫多表查詢
spring-data-jpa 使用
例:
@Repository public interface WorkxxxRepository extends JpaRepository<Workxxx, Integer>, JpaSpecificationExecutor<Workxxx> { // 查詢方法 }?? ? @Autowired private WorkxxxRepository workxxxRepository; 用法1: public Object deleteDraft(User user) {return workxxxRepository.deleteDrafts(user.getId()); } 用法2: Page<Workxxx> page = workxxxRepository.findAll(new Specification<Workxxx>() {@Overridepublic Predicate toPredicate(Root<Workxxx> root, CriteriaQuery<?> query, CriteriaBuilder cb) {List<Predicate> list = Lists.newArrayList();//構(gòu)造條件list.add(cb.equal(root.get("delFlag"), "0")); if (StringUtils.isNotEmpty(xxxName)) {list.add(cb.like(root.get("xxxName"), "%" + xxxName + "%"));}// 參數(shù) search 可代表姓名、名稱、任務(wù)、類型中的任意一種if (StringUtils.isNotEmpty(search)) {Predicate p = cb.or(cb.like(root.get("xxxName"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxName"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxProject"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxType"), "%" + search + "%"));list.add(p);} Predicate[] p = new Predicate[list.size()];return cb.and(list.toArray(p));} }, new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), pageable.getSort()));8.??JDBC直連數(shù)據(jù)庫,Statement、PrepareStatement查詢。? ? ? ??
?? ??? ? ?
?? ??? ? ??
總結(jié)
以上是生活随笔為你收集整理的java 查询功能实现的八种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中的Socket编程-TCP客户端
- 下一篇: Docker logs 查看实时日志(日