初步的数据库连接,在这里我用了bonecp连接池来管理
1 package com.jooq.Test; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 7 import org.jooq.DSLContext; 8 import org.jooq.impl.DSL; 9 10 import com.jolbox.bonecp.BoneCP; 11 import com.jolbox.bonecp.BoneCPConfig; 12 13 public class BoneCpPool { 14 15 private static BoneCP boneCP = null; 16 private static BoneCPConfig boneCPConfig = null; 17 18 static{ 19 try{ 20 Class.forName("org.postgresql.Driver"); 21 boneCPConfig = new BoneCPConfig(); 22 String jdbcUrl = "jdbc:postgresql://127.0.0.1:5432/spd"; 23 boneCPConfig.setJdbcUrl(jdbcUrl); 24 boneCPConfig.setUsername("spd"); 25 boneCPConfig.setPassword("123456"); 26 boneCPConfig.setMinConnectionsPerPartition(5); 27 boneCPConfig.setMaxConnectionsPerPartition(10); 28 boneCPConfig.setPartitionCount(1); 29 }catch(Exception e){ 30 e.printStackTrace(); 31 } 32 } 33 // 获取连接池 34 public static BoneCP getBoneCp(){ 35 try{ 36 boneCP = new BoneCP(boneCPConfig); 37 }catch(Exception e){ 38 e.printStackTrace(); 39 } 40 return boneCP; 41 } 42 43 // 获取连接 44 public static Connection getConnection(BoneCP boneCP){ 45 if(boneCP!=null){ 46 try{ 47 return boneCP.getConnection(); 48 }catch(Exception e){ 49 return null; 50 } 51 }else{ 52 return null; 53 } 54 } 55 56 // 关闭连接池 57 public static void closeBoneCP(BoneCP boneCP){ 58 boneCP.close(); 59 } 60 61 // 关闭连接 62 public static void closeConnection(Connection con) throws SQLException { 63 con.close(); 64 } 65 //获取数据库连接 66 public static DSLContext getContext(Connection conDsl) { 67 return DSL.using(conDsl); 68 } 69 }
2.
1 package com.jooq.Test; 2 3 import java.sql.Connection; 4 5 import org.jooq.Condition; 6 import org.jooq.DSLContext; 7 import org.jooq.Record; 8 import org.jooq.Result; 9 import org.jooq.SelectQuery; 10 import org.jooq.Table; 11 import org.jooq.UpdateQuery; 12 import org.jooq.impl.DSL; 13 14 import com.jolbox.bonecp.BoneCP; 15 16 public class JooqDao { 17 18 private DSLContext dslContext = null; 19 20 // 获取DSLContext对象 21 private DSLContext getdslContext() { 22 BoneCP boneCP = BoneCpPool.getBoneCp(); 23 Connection conn = BoneCpPool.getConnection(boneCP); 24 dslContext = DSL.using(conn); 25 return dslContext; 26 } 27 28 // 简单实体查询 29 public void select(String add) { 30 DSLContext dslContext = getdslContext(); 31 Table<Record> table = DSL.table("sys_role"); 32 // 获取查询对象 33 SelectQuery<Record> selectQuery = dslContext.selectQuery(table); 34 // 查询条件 35 Condition eq = DSL.field("r_name").eq(add); 36 // 添加查询条件 37 selectQuery.addConditions(eq); 38 Result<Record> fetch = selectQuery.fetch(); 39 for (Object aResult : fetch) { 40 Record record = (Record) aResult; 41 System.out.println(record); 42 System.out.println(record.getValue("r_name")); 43 } 44 } 45 46 // 实体更新 47 public void update(String name) { 48 DSLContext dslContext = getdslContext(); 49 Table<Record> table = DSL.table("sys_role"); 50 // 获取更新对象 51 UpdateQuery<Record> updateQuery = dslContext.updateQuery(table); 52 // 更新r_name字段的值为财务结算管理1 53 updateQuery.addValue(DSL.field("r_name"), "财务结算管理"); 54 // 根据查询条件 55 Condition condition = DSL.field("r_name").eq(name); 56 updateQuery.addConditions(condition); 57 int excute = updateQuery.execute(); 58 System.out.println(excute); 59 select("财务结算管理"); 60 } 61 62 // 原生态的sql查询 63 public void getVal() { 64 DSLContext dslContext = getdslContext(); 65 Table<Record> table = DSL.table("sys_role"); 66 Result<Record> fetch = dslContext.select().from(table) 67 .where("domain_id=0").and("r_status='1'") 68 .orderBy(DSL.field("b_createtime").asc()).fetch(); 69 70 for(Object aResult:fetch){ 71 Record record = (Record) aResult; 72 System.out.println(record); 73 } 74 75 /*Map<String, Object> fetchAnyMap = orderBy.fetchAnyMap(); 76 Set<String> keySet = fetchAnyMap.keySet(); 77 for(String s:keySet) 78 { 79 System.out.println("key--"+s+"--val:"+fetchAnyMap.get(s)); 80 }*/ 81 } 82 83 //验证DSL.exists方法 84 public void exits(){ 85 DSLContext getdslContext = getdslContext(); 86 Condition condition = DSL.exists(DSL.select(DSL.field("r_name"))); 87 Table<Record> table = DSL.table("sys_role"); 88 SelectQuery<Record> selectQuery = getdslContext.selectQuery(table); 89 selectQuery.addConditions(condition); 90 Result<Record> fetch = selectQuery.fetch(); 91 for (Object aResult : fetch) { 92 Record record = (Record) aResult; 93 System.out.println(record); 94 System.out.println(record.getValue("r_name")); 95 } 96 } 97 98 public static void main(String[] args) { 99 100 JooqDao dao = new JooqDao(); 101 dao.exits(); 102 } 103 }