JOOQ初学-简单的增删改查demo


初步的数据库连接,在这里我用了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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM