【JOOQ】 数据查询修改demo
2017-11-29 17:12
686 查看
JOOQ
初步的数据库连接,在这里我用了bonecp连接池来管理
[java] view
plain copy
import java.sql.Connection;
import java.sql.SQLException;
import org.jooq.DSLContext;
import org.jooq.impl.DSL;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
/**
*
* @author zhoudong
* WinterChou连接池管理数据库连接
*/
public class BoneCpPool {
private static BoneCP boneCp = null;
private static BoneCPConfig boneCPConfig = null;
// 静态代码块加载配置文件
static {
// 加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");// 注册数据库
boneCPConfig = new BoneCPConfig();// bonecp数据库连接池配置
String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/wish";// jdbc:mysql://10.10.0.215:3306/che001
boneCPConfig.setJdbcUrl(jdbcUrl);
boneCPConfig.setUser("root");
boneCPConfig.setPassword("tiger");
// 数据库连接池的最小连接数
boneCPConfig.setMinConnectionsPerPartition(5);
// 数据库连接池的最大连接数
boneCPConfig.setMaxConnectionsPerPartition(10);
boneCPConfig.setPartitionCount(1);
// System.out.println("boneCPConfig"+boneCPConfig);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取连接池
public static BoneCP getBoneCP() {
try {
boneCp = new BoneCP(boneCPConfig);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return boneCp;
}
// 获取连接
public static Connection getConnection(BoneCP boneCpP) {
if (boneCpP != null) {
try {
return boneCpP.getConnection();
} catch (SQLException e) {
return null;
}
} else {
return null;
}
}
// 关闭连接池
public static void closeBoneCP(BoneCP bc) {
bc.close();
}
// 关闭连接
public static void closeConnection(Connection con) throws SQLException {
con.close();
}
//
public static DSLContext getContext(Connection conDsl) {
return DSL.using(conDsl);
}
}
</span>
简单的初步demo
[java] view
plain copy
<span style="font-size:18px;">import java.sql.Connection;
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.dfb.jooq.datapool.BoneCpPool;
import com.jolbox.bonecp.BoneCP;
/**
*
* @author zhoudong
* 简单的增删改查
*/
public class JooqDao {
private DSLContext dslContext= null;
//获取DSLContext对象
private DSLContext getdslContext()
{
BoneCP boneCP = BoneCpPool.getBoneCP();
Connection connection = BoneCpPool.getConnection(boneCP);
dslContext = DSL.using(connection);
return dslContext;
}
//简单实体查询
public void select(String add)
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_user");
SelectQuery<Record> selectQuery = getdslContext.selectQuery(table);//获取查询对象
Condition eq = DSL.field("username").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("username"));
}
}
//实体更新
public void update(String name)
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_user");
UpdateQuery<Record> updateQuery = getdslContext.updateQuery(table);//获取更新对象
updateQuery.addValue(DSL.field("email"), "new-email");//更新email字段的值为new-email
Condition eq = DSL.field("username").eq(name);//更新username为name的email字段
updateQuery.addConditions(eq);
int execute = updateQuery.execute();
System.out.println(execute);
select("shangfox1");
}
//原生态的sql查询
public void getVal()
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_wish");//表名
Result<Record> fetch = getdslContext.select().from(table).where("statu = 0").and("id > 4340").orderBy(DSL.field("time").asc()).fetch();
for (Object aResult : fetch) {
Record record = (Record) aResult;
System.out.println(record);
}
/*Map<String, Object> fetchAnyMap = orderBy.fetchAnyMap();
Set<String> keySet = fetchAnyMap.keySet();
for(String s:keySet)
{
System.out.println("key--"+s+"--val:"+fetchAnyMap.get(s));
}*/
}
//验证DSL.exists方法
public void exits()
{
DSLContext getdslContext = getdslContext();
Condition condition = DSL.exists(DSL.select(DSL.field("username1")));
Table<Record> table = DSL.table("shangfox_user");
SelectQuery<Record> selectQuery = getdslContext.selectQuery(table);
selectQuery.addConditions(condition);
Result<Record> fetch = selectQuery.fetch();
for (Object aResult : fetch) {
Record record = (Record) aResult;
System.out.println(record);
System.out.println(record.getValue("username"));
}
}
public static void main(String[] args) {
JooqDao jooqDao = new JooqDao();
// jooqDao.select("shangfox");
// jooqDao.update("shangfox1");
// jooqDao.exits();
jooqDao.getVal();
}
}
demo的jar包下载地址jooq和bonecp的jar
初步的数据库连接,在这里我用了bonecp连接池来管理
[java] view
plain copy
import java.sql.Connection;
import java.sql.SQLException;
import org.jooq.DSLContext;
import org.jooq.impl.DSL;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
/**
*
* @author zhoudong
* WinterChou连接池管理数据库连接
*/
public class BoneCpPool {
private static BoneCP boneCp = null;
private static BoneCPConfig boneCPConfig = null;
// 静态代码块加载配置文件
static {
// 加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");// 注册数据库
boneCPConfig = new BoneCPConfig();// bonecp数据库连接池配置
String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/wish";// jdbc:mysql://10.10.0.215:3306/che001
boneCPConfig.setJdbcUrl(jdbcUrl);
boneCPConfig.setUser("root");
boneCPConfig.setPassword("tiger");
// 数据库连接池的最小连接数
boneCPConfig.setMinConnectionsPerPartition(5);
// 数据库连接池的最大连接数
boneCPConfig.setMaxConnectionsPerPartition(10);
boneCPConfig.setPartitionCount(1);
// System.out.println("boneCPConfig"+boneCPConfig);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取连接池
public static BoneCP getBoneCP() {
try {
boneCp = new BoneCP(boneCPConfig);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return boneCp;
}
// 获取连接
public static Connection getConnection(BoneCP boneCpP) {
if (boneCpP != null) {
try {
return boneCpP.getConnection();
} catch (SQLException e) {
return null;
}
} else {
return null;
}
}
// 关闭连接池
public static void closeBoneCP(BoneCP bc) {
bc.close();
}
// 关闭连接
public static void closeConnection(Connection con) throws SQLException {
con.close();
}
//
public static DSLContext getContext(Connection conDsl) {
return DSL.using(conDsl);
}
}
</span>
简单的初步demo
[java] view
plain copy
<span style="font-size:18px;">import java.sql.Connection;
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.dfb.jooq.datapool.BoneCpPool;
import com.jolbox.bonecp.BoneCP;
/**
*
* @author zhoudong
* 简单的增删改查
*/
public class JooqDao {
private DSLContext dslContext= null;
//获取DSLContext对象
private DSLContext getdslContext()
{
BoneCP boneCP = BoneCpPool.getBoneCP();
Connection connection = BoneCpPool.getConnection(boneCP);
dslContext = DSL.using(connection);
return dslContext;
}
//简单实体查询
public void select(String add)
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_user");
SelectQuery<Record> selectQuery = getdslContext.selectQuery(table);//获取查询对象
Condition eq = DSL.field("username").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("username"));
}
}
//实体更新
public void update(String name)
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_user");
UpdateQuery<Record> updateQuery = getdslContext.updateQuery(table);//获取更新对象
updateQuery.addValue(DSL.field("email"), "new-email");//更新email字段的值为new-email
Condition eq = DSL.field("username").eq(name);//更新username为name的email字段
updateQuery.addConditions(eq);
int execute = updateQuery.execute();
System.out.println(execute);
select("shangfox1");
}
//原生态的sql查询
public void getVal()
{
DSLContext getdslContext = getdslContext();
Table<Record> table = DSL.table("shangfox_wish");//表名
Result<Record> fetch = getdslContext.select().from(table).where("statu = 0").and("id > 4340").orderBy(DSL.field("time").asc()).fetch();
for (Object aResult : fetch) {
Record record = (Record) aResult;
System.out.println(record);
}
/*Map<String, Object> fetchAnyMap = orderBy.fetchAnyMap();
Set<String> keySet = fetchAnyMap.keySet();
for(String s:keySet)
{
System.out.println("key--"+s+"--val:"+fetchAnyMap.get(s));
}*/
}
//验证DSL.exists方法
public void exits()
{
DSLContext getdslContext = getdslContext();
Condition condition = DSL.exists(DSL.select(DSL.field("username1")));
Table<Record> table = DSL.table("shangfox_user");
SelectQuery<Record> selectQuery = getdslContext.selectQuery(table);
selectQuery.addConditions(condition);
Result<Record> fetch = selectQuery.fetch();
for (Object aResult : fetch) {
Record record = (Record) aResult;
System.out.println(record);
System.out.println(record.getValue("username"));
}
}
public static void main(String[] args) {
JooqDao jooqDao = new JooqDao();
// jooqDao.select("shangfox");
// jooqDao.update("shangfox1");
// jooqDao.exits();
jooqDao.getVal();
}
}
demo的jar包下载地址jooq和bonecp的jar
相关文章推荐
- 用户名查询、手机号查询、选择城市、选择状态、选择月份、ID排序、添加数据、批量发货、批量删除、敏感字、修改数据)
- JDBC修改数据(部分代码参考查询部分)
- php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法
- spring+hibernate--直接修改数据库,再通过hibernate查询数据不变
- 用户信息表(查询数据 、 修改密码 、 添加数据)
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
- angularjs-查询.删除,添加数据,修改密码
- 稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询
- 庭审管理中动态显示今天起7日内的数据,动态查询,并根据已有数据判断新增和修改时的时间冲突问题(2)
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- 将查询出来的表数据修改一个或几个字段后,再插入到表中(oracle)
- SQL Server 2005中的分区表(二):如何添加、查询、修改分区表中的数据
- 使用C#对MongoDB中的数据进行查询,修改等操作
- 同一张表内、利用变化的上一行数据动态地修改下一行数据(示例Demo)
- JAVA+JDBC对数据库的数据进行增加、修改、删除、查询等操作
- Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)
- 为什么在sql2005管理器里无法修改查询的数据
- Silverlight 3 关于数据添加,删除,修改,条件查询的一点代码
- hive修改表名后查询不出数据
- 稳扎稳打Silverlight(58) - 4.0通信之WCF RIA Services: 通过 Domain Service, 以 MVVM 模式实现数据的添加、删除、修改和查询