您的位置:首页 > 产品设计 > UI/UE

java使用querydsl(代替sql)查询数据库

2014-05-23 14:23 417 查看
简单介绍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 (388.09
KB, 下载次数: 2)


querydsl-jpa-2.2.0-beta4-apt-hibernate-one-jar.jar (4.91
MB, 下载次数: 2)


querydsl-sql-2.2.3.jar (180.75
KB, 下载次数: 0)

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())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐