java数据库连接工具类

1 package com.cnse.utils.dbutils; 2 3import java.lang.reflect.Field; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.PreparedStatement; 7import java.sql.ResultSet; 8import java.sql.ResultSetMetaData; 9import java.sql.SQLException; 10import java.sql.Statement; 11import java.util.ArrayList; 12import java.util.HashMap; 13import java.util.List; 14import java.util.Map; 15import java.util.Properties; 16 17public class DbUtils { 18 /** 19  * single Model  20  */ 21  //私有的静态实例 22  private static DbUtils instance = null; 23  //私有的构造器 24  private DbUtils() { 25  } 26  //公共的静态方法 27  public static DbUtils getInstance() { 28   if(instance==null){ 29    instance=new DbUtils(); 30   } 31   return instance; 32  } 33 34/** 35 * jdbc obj interface  36 */ 37 private static Connection conn=null; 38 private static PreparedStatement pstmt=null; 39 private static ResultSet rs=null; 40/** 41 *  jdbc pro 42 */ 43 private static String JDBC_DRIVER="oracle.jdbc.driver.OracleDriver"; 44 private static String JDBC_URL="jdbc:oracle:thin:@localhost:1521:orcl"; 45 private static String JDBC_NAME="aaa"; 46 private static String JDBC_PWD="123";   47 /** 48 private static String JDBC_DRIVER="com.mysql.jdbc.Driver"; 49 private static String JDBC_URL="jdbc:mysql://localhost:3306/zy"; 50 private static String JDBC_NAME="aaa"; 51 private static String JDBC_PWD="123"; 52 **/ 53 54/** 55 * get dbconn  56 * @return 57 */ 58 public static Connection getConn(){ 59  try { 60   Class.forName(JDBC_DRIVER); 61   conn=DriverManager.getConnection(JDBC_URL,JDBC_NAME,JDBC_PWD); 62  } catch (Exception e) { 63   e.printStackTrace(); 64  } 65  System.out.println("数据库打开成功..."); 66  return conn; 67 } 68/** 69 * close dbconn  70 * @param conn 71 * @param pstmt 72 */ 73 public void closeConn(Connection conn,PreparedStatement pstmt,ResultSet rs){ 74  try { 75   if(rs!=null){ 76    rs.close(); 77   } 78   if(pstmt!=null){ 79    pstmt.close(); 80   } 81   if(conn!=null){ 82    conn.close(); 83   } 84  } catch (Exception e) { 85   e.printStackTrace(); 86  } 87  System.out.println("数据库关闭成功....."); 88 } 89 90/** 91 * common get list<map>   92 */ 93 public static  List<Map<String,Object>>getListMap(String sql) throws Exception{ 94  List<Map<String,Object>>list=new ArrayList<Map<String,Object>>(); 95//open db connection 96  DbUtils.getInstance().getConn(); 97  int index=1; 98  pstmt=conn.prepareStatement(sql); 99   100  rs=pstmt.executeQuery(); 101  ResultSetMetaData metaData=rs.getMetaData(); 102  int colLenth=metaData.getColumnCount();//获得长度 103  while(rs.next()){ 104   Map<String,Object>map=new HashMap<String, Object>(); 105   for (int i = 0; i < colLenth; i++) { 106    //获取当前列的名称 列只从1开始 107    String colName=metaData.getColumnName(i+1).toLowerCase(); 108 // System.out.println("colName_____:"+colName);   109    Object colValue=rs.getObject(colName); 110    if(colValue==null){ 111     colValue="";//数据库的列值可能为空 112    } 113    map.put(colName,colValue); 114   } 115   list.add(map); 116  } 117 // System.out.println("dbutils list____:"+list); 118//close db connection 119  DbUtils.getInstance().closeConn(conn, pstmt, rs); 120  return list; 121 } 122 123/** 124 * common update method  125 */ 126 //公共的增删改的方法 127 public static boolean updatePstmt(String sql){ 128//open db link   129  DbUtils.getInstance().getConn(); 130  boolean flag=false; 131  //pstmt 132  try { 133   pstmt=conn.prepareStatement(sql); 134   int index=1; 135   int result=-1; 136   result=pstmt.executeUpdate(); 137   flag=result>0?true:false; 138  } catch (SQLException e) { 139   // TODO Auto-generated catch block 140   e.printStackTrace(); 141  } 142//close db link   143  DbUtils.getInstance().closeConn(conn, pstmt, rs); 144  return flag; 145 } 146/** 147 * main test  148 */ 149 public static void main(String[] args) { 150  try { 151   String sql="select * from emp";//emp表可以copy..scott.emp的表 152   List list=getListMap(sql); 153   System.out.println("____读取数据成功____:"+list); 154   //String sql="update emp set sal=0 "; 155   //if(updatePstmt(sql)==true){ 156   // System.out.println("修改数据成功!!");  157   //} 158  } catch (Exception e) { 159   // TODO: handle exception 160  } 161 } 162/** 163 * end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  end  d   164 */ 165}

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )