1package com.cnse.utils.dbutils;23import 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;1617publicclassDbUtils{18/**
19 * single Model
20 */21//私有的静态实例22privatestatic DbUtils instance =null;23//私有的构造器24privateDbUtils(){25}26//公共的静态方法27publicstatic DbUtils getInstance(){28if(instance==null){29 instance=newDbUtils();30}31return instance;32}3334/**
35 * jdbc obj interface
36 */37privatestatic Connection conn=null;38privatestatic PreparedStatement pstmt=null;39privatestatic ResultSet rs=null;40/**
41 * jdbc pro
42 */43privatestaticStringJDBC_DRIVER="oracle.jdbc.driver.OracleDriver";44privatestaticStringJDBC_URL="jdbc:oracle:thin:@localhost:1521:orcl";45privatestaticStringJDBC_NAME="aaa";46privatestaticStringJDBC_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 **/5354/**
55 * get dbconn
56 * @return
57 */58publicstatic Connection getConn(){59try{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("数据库打开成功...");66return conn;67}68/**
69 * close dbconn
70 * @param conn71 * @param pstmt72 */73publicvoidcloseConn(Connection conn,PreparedStatement pstmt,ResultSet rs){74try{75if(rs!=null){76 rs.close();77}78if(pstmt!=null){79 pstmt.close();80}81if(conn!=null){82 conn.close();83}84}catch(Exception e){85 e.printStackTrace();86}87 System.out.println("数据库关闭成功.....");88}8990/**
91 * common get list<map>
92 */93publicstatic List<Map<String,Object>>getListMap(String sql) throws Exception{94 List<Map<String,Object>>list=newArrayList<Map<String,Object>>();95//open db connection96 DbUtils.getInstance().getConn();97 int index=1;98 pstmt=conn.prepareStatement(sql);99100 rs=pstmt.executeQuery();101 ResultSetMetaData metaData=rs.getMetaData();102 int colLenth=metaData.getColumnCount();//获得长度103while(rs.next()){104Map<String,Object>map=newHashMap<String,Object>();105for(int i =0; i < colLenth; i++){106//获取当前列的名称 列只从1开始107String colName=metaData.getColumnName(i+1).toLowerCase();108// System.out.println("colName_____:"+colName); 109Object colValue=rs.getObject(colName);110if(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 connection119 DbUtils.getInstance().closeConn(conn, pstmt, rs);120return list;121}122123/**
124 * common update method
125 */126//公共的增删改的方法127publicstatic boolean updatePstmt(String sql){128//open db link 129 DbUtils.getInstance().getConn();130 boolean flag=false;131//pstmt132try{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 block140 e.printStackTrace();141}142//close db link 143 DbUtils.getInstance().closeConn(conn, pstmt, rs);144return flag;145}146/**
147 * main test
148 */149publicstaticvoidmain(String[] args){150try{151String 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 exception160}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}