java使用querydsl(代替sql)查询数据库
来源:互联网 发布:手机淘宝安卓历史版本 编辑:程序博客网 时间:2024/05/29 18:57
简单介绍Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。
总之使查询方面的很,而且容易理解.相当给力.
具体的使用轻参考http://www.querydsl.com/static/q ... nce/html/ch02.html.
我只说我使用到的情况,简单容学.
//数据库连接池
ComboPooledDataSource cpds = (ComboPooledDataSource)context.getBean("dataSource");
querydsl中的类.下面几句主要生成Querydsl查询用到的类,与数据库中的表一直, 这些创建必须使用前.
MetaDataExporter exporter = new MetaDataExporter();
exporter.setPackageName("querymodel");
exporter.setTargetFolder(new File("src/com/model"));
exporter.export(cpds.getConnection().getMetaData());
//查询
QUser customer=QUser.user;
SQLTemplates templates = new DerbyTemplates();
SQLQuery query = new SQLQueryImpl(con, templates);
List<String> lastNames = query.from(customer) .where(customer.id.eq(1)).list(customer.username);
//更新
QUser2 customer=QUser2.user2;
SQLTemplates sqlTemplates = new MySQLTemplates();
SQLUpdateClause query = null;
query = new SQLUpdateClause(con, sqlTemplates, customer);
long i=query.where(customer.id.eq(id)).set(customer.score,score).execute();
其中QUser2 ,QUser2是自己被( exporter.export(cpds.getConnection().getMetaData());)创建的,与数据库表一致.
大概就这些了,简单的查询未必可以看到他的好处,复杂的SQl的时候,方知道使用是多么的简单.
最后 把jar文件送上
querydsl-core-2.2.3.jar
querydsl-jpa-2.2.0-beta4-apt-hibernate-one-jar.jar
querydsl-sql-2.2.3.jar
sql:
SELECT friends.id_friend, player.username, score.area, max(score.level), max(score.area)
FROM player
LEFT JOIN friends ON player.id = friends.id_friend
LEFT JOIN score ON player.id = score.id
WHERE friends.id_player =1
GROUP BY score.id
querydsl:
query.from(player).leftJoin(friends).on(player.id.eq(friends.idFriend)).leftJoin(score).on(player.id.eq(score.id)).where(friends.idPlayer.eq(id)).list(player.id,player.username,score.area.max(),score.level.max())
总之使查询方面的很,而且容易理解.相当给力.
具体的使用轻参考http://www.querydsl.com/static/q ... nce/html/ch02.html.
我只说我使用到的情况,简单容学.
//数据库连接池
ComboPooledDataSource cpds = (ComboPooledDataSource)context.getBean("dataSource");
querydsl中的类.下面几句主要生成Querydsl查询用到的类,与数据库中的表一直, 这些创建必须使用前.
MetaDataExporter exporter = new MetaDataExporter();
exporter.setPackageName("querymodel");
exporter.setTargetFolder(new File("src/com/model"));
exporter.export(cpds.getConnection().getMetaData());
//查询
QUser customer=QUser.user;
SQLTemplates templates = new DerbyTemplates();
SQLQuery query = new SQLQueryImpl(con, templates);
List<String> lastNames = query.from(customer) .where(customer.id.eq(1)).list(customer.username);
//更新
QUser2 customer=QUser2.user2;
SQLTemplates sqlTemplates = new MySQLTemplates();
SQLUpdateClause query = null;
query = new SQLUpdateClause(con, sqlTemplates, customer);
long i=query.where(customer.id.eq(id)).set(customer.score,score).execute();
其中QUser2 ,QUser2是自己被( exporter.export(cpds.getConnection().getMetaData());)创建的,与数据库表一致.
大概就这些了,简单的查询未必可以看到他的好处,复杂的SQl的时候,方知道使用是多么的简单.
最后 把jar文件送上
querydsl-core-2.2.3.jar
querydsl-jpa-2.2.0-beta4-apt-hibernate-one-jar.jar
querydsl-sql-2.2.3.jar
sql:
SELECT friends.id_friend, player.username, score.area, max(score.level), max(score.area)
FROM player
LEFT JOIN friends ON player.id = friends.id_friend
LEFT JOIN score ON player.id = score.id
WHERE friends.id_player =1
GROUP BY score.id
querydsl:
query.from(player).leftJoin(friends).on(player.id.eq(friends.idFriend)).leftJoin(score).on(player.id.eq(score.id)).where(friends.idPlayer.eq(id)).list(player.id,player.username,score.area.max(),score.level.max())
0 0
- java使用querydsl(代替sql)查询数据库
- Querydsl使用
- springboot学习笔记(四)使用querydsl完成条件查询
- QueryDSL JPA 查询示例
- 使用querydsl-maven-plugin生成querydsl
- 数据库SQL文使用命令参数代替拼接SQL语句
- springData使用QueryDsl
- QueryDsl查询mongodb数据1
- QueryDsl查询mongodb数据2
- 数据库SQL优化——使用EXIST代替IN
- [.Net MVC] 使用SQL Server数据库代替LocalDb
- SQL语句 使用...代替
- Querydsl
- Spring Boot 中使用QueryDSL
- QueryDSL 简单的查询语句应用
- 通用SQL数据库查询语句使用简介
- SQL Server2005数据库查询中使用CTE
- 使用SQL查询分析器操作Access数据库
- 把一个程序移到另外一台电脑解决方案
- Java String 与 StringBuffer 用法区别
- 26个提升java性能需要注意的地方
- RAC维护手记09-修改ASM SYS用户密码
- 大整数乘法
- java使用querydsl(代替sql)查询数据库
- nginx源码学习----内存池
- Ubuntu上彻底删除MySQL
- java序列化总结
- QML BOOK 第三章 Qt Creator IDE
- JS模块化编程之require.js的用法
- RAC维护手记10-ASM维护注意事项
- Ruby on Rails,从这边开始
- CSRF