一、使用JOOQ,根据用户名查询记录.
以下是从网上随机找的一个例子.
1。public class DruidConnection {
。。。
2。public class DruidUtil {
。。。
3。
import java.util.Map;
import java.util.Set;
import org.jooq.Condition;
import org.jooq.DSLContext;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.SelectQuery;
import org.jooq.Table;
import org.jooq.UpdateQuery;
import org.jooq.impl.DSL;
import com.fendo.gui.util.DruidUtil;
/**
* @title: JooqDao.java
* @package com.fendo.gui.jooq
* @description: Jooq简单的增删改查
* @author: fendo
* @date: 2018年2月27日 上午9:27:02
* @version: V1.0
*/
public class JooqDao {
private DSLContext dslContext= null;
/**
*
*@title getdslContext
*@description: 获取DSLContext对象
*@author: fendo
*@date: 2018年2月27日 上午9:30:55
*@return
*@throws
*/
private DSLContext getdslContext()
{
//获取连接
dslContext = DSL.using(DruidUtil.getConnection());
return dslContext;
}
/**
*
*@title select
*@description: 简单实体查询 - 根据用户名
*@author: fendo
*@date: 2018年2月27日 上午10:01:35
*@param add
*@throws
*/
public void select(String add)
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("user");
SelectQuery<Record> selectQuery = getdslContext.selectQuery(table);//获取查询对象
Condition eq = DSL.field("name").eq(add);//查询条件
selectQuery.addConditions(eq);//添加查询条件
Result<Record> fetch = selectQuery.fetch();
for (Object aResult : fetch) {
Record record = (Record) aResult;
System.out.println(record);
System.out.println(record.getValue("name"));
}
}
原文链接:https://blog.youkuaiyun.com/u011781521/article/details/79730016
统计了下,该例子有接近500行。DruidConnection,DruidUtil获取连接,归还资源, 这些还需要自己操心。
二、以下是另一个的例子(ORM Bee)
import java.util.List;
import org.teasoft.bee.osql.Op;
import org.teasoft.bee.osql.PreparedSql;
import org.teasoft.bee.osql.chain.Select;
import org.teasoft.exam.comm.Printer;
import org.teasoft.honey.osql.chain.SelectImpl;
import org.teasoft.honey.osql.core.BeeFactory;
/**
* @author Kingstar
* @since 1.11
*/
public class QueryCompare {
private static PreparedSql preparedSql = BeeFactory.getHoneyFactory().getPreparedSql();
public static void main(String[] args) {
Select t = new SelectImpl();
t.select() //查所有列
// t.select("name") //也可以查具体的列
.from("orders")
.where()
.op("name", Op.eq, "bee")
.isNotNull("createtime")
;
List<String[]> list1= preparedSql.select(t.toSQL());
Printer.print(list1);
}
}
可以看出,该例子更加简单。
不需要自己管理数据库连接,只需要在bee.properties配置了url,数据库用户名和密码,其它就交由ORM Bee框架处理。 表达式,也是 类似sql的field_name='value'这种风格。
另外,Bee实现了自动解析复杂查询。只需要将前端查询的条件传到后端,剩下的由Bee框架来处理。ORM Bee复杂查询后端实现自动化处理,后端只需要要类似以下两条语句。
-
Condition condition=SearchProcessor.parseSearch(search);
-
List<Users> list17 = suidRich.select(new Users(), condition);
详细教程,参考:
(二十三)ORM Bee复杂查询后端实现自动化处理
-----------------------------------------------------------------
为适应互联网时代软件需求量大,需求变更频繁,性能要求高等要求,ORM Bee应运而生!
Bee,互联网新时代的Java ORM框架,更快、更简单、更自动,开发速度快,运行快,更智能!
Bee,一个简单,易用,功能强大(编码少、开发速度快,运行快)的 JAVA ORM 框架。