java mysql 操作类_Java 数据库简单操作类
1 packagecom.latiny.db;2
3 import java.io.*;4 import java.sql.*;5 importjava.util.ArrayList;6 importjava.util.Properties;7
8 /*
9 * 數(shù)據(jù)庫操作類10 */
11
12 public classDBUtil {13
14 //定義需要的變量
15 private static String driver =null;16 private static String url =null;17 private static String user=null;18 private static String password=null;19
20 private staticConnection conn;21 //使用PreparedStatment可以防止sql注入
22 private staticPreparedStatement ps;23 private staticResultSet rs;24 private staticCallableStatement cs;25
26 //讀配置文件
27 private static Properties pp=null;28 private static InputStream fis=null;29
30
31 //加載驅(qū)動,只需要執(zhí)行一次
32 static
33 {34 try
35 {36 pp = newProperties();37
38 //當(dāng)我們使用java web的時候,讀取文件要使用類加載器
39 fis = DBUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");40
41 pp.load(fis);42 driver = pp.getProperty("DRIVER");43 url = pp.getProperty("URL");44 user = pp.getProperty("USER");45 password = pp.getProperty("PASSWORD");46
47 //1 加載驅(qū)動
48 Class.forName(driver);49
50 }51 catch(Exception e)52 {53 e.printStackTrace();54 }55 finally
56 {57 try
58 {59 fis.close();60 } catch(IOException e) {61 //TODO Auto-generated catch block
62 e.printStackTrace();63 }64 fis = null;65 }66 }67
68 /*
69 * 獲取Connection連接70 */
71 public staticConnection getConn()72 {73 try
74 {75 //2 獲取數(shù)據(jù)庫連接
76 conn =DriverManager.getConnection(url, user, password);77 }78 catch(SQLException e)79 {80 //TODO Auto-generated catch block
81 e.printStackTrace();82 }83
84 returnconn;85 }86
87 /*
88 * 直接返回rs結(jié)果,此方法不能關(guān)閉rs,因為后面調(diào)用它的類還會用到,如果關(guān)閉則不能正常使用89 */
90 public staticResultSet queryResult(String sql, String[] parameters)91 {92 try
93 {94 conn =getConn();95 //3 創(chuàng)建Statement對象
96 ps =conn.prepareStatement(sql);97 //4 給問號賦值,即給sql語句的條件參數(shù)賦值如果需要的話
98 if(parameters!=null)99 {100 for(int i=1; i<=parameters.length; i++)101 {102 ps.setString(i, parameters[i-1]);103 }104 }105
106 //5 執(zhí)行sql獲取返回結(jié)果
107 rs =ps.executeQuery();108 }109 catch(SQLException e)110 {111 //TODO Auto-generated catch block
112 e.printStackTrace();113 }114
115 returnrs;116 }117
118 /*
119 * 將rs結(jié)果封裝成ArrayList,然后可以關(guān)閉rs,節(jié)省數(shù)據(jù)庫訪問資源120 */
121 public staticArrayList queryResult2(String sql, String[] parameters)122 {123 ArrayList al = newArrayList();124
125 try
126 {127 //2 獲取數(shù)據(jù)庫連接
128 conn =getConn();129 //3 創(chuàng)建Statement對象
130 ps =conn.prepareStatement(sql);
132 //4 給問號賦值,即給sql語句的條件參數(shù)賦值如果需要的話
133 if(parameters!=null)134 {135 for(int i=1; i<=parameters.length; i++)136 {137 ps.setString(i, parameters[i-1]);138 }139 }140
141 //5 執(zhí)行sql語句獲取返回結(jié)果
142 rs =ps.executeQuery();143
144 //獲取rs的結(jié)構(gòu)
145 ResultSetMetaData rsmd =rs.getMetaData();146 //獲取查詢語句的列數(shù)
147 int column =rsmd.getColumnCount();148
149 while(rs.next())150 {151 //對象數(shù)組,存儲一行數(shù)據(jù)
152 Object[] objs = newObject[column];153 for(int i=0; i
160 }161 catch(SQLException e)162 {163 //TODO Auto-generated catch block
164 e.printStackTrace();165 }166 finally
167 {168 //關(guān)閉資源
169 close(rs, ps, conn);170 }171
172 returnal;173 }174
175 //調(diào)用存儲過程,帶輸入輸出參數(shù)的
176 public staticCallableStatement callProcedure(String sql, String[] inputPara, Integer[] outputPara)177 {178
179 try
180 {181 conn =getConn();182 cs =conn.prepareCall(sql);183 for(int i=0; inputPara!=null && i
188 //給output參數(shù)賦值
189 for(int j=0; outputPara!=null && j
194 cs.execute();195
196 } catch(SQLException e) {197 //TODO Auto-generated catch block
198 e.printStackTrace();199 }200 finally
201 {202 close(rs, ps, conn);203 }204
205 returncs;206
207 }208
209 //update, insert, delete
210 public staticInteger updateData(String sql, String[] parameters)211 {212 int result = 0;213 try
214 {215 conn =getConn();216 ps =conn.prepareStatement(sql);217 if(parameters!=null)218 {219 for(int i=0; i
225 //執(zhí)行executeUpdate并且返回受影響的行數(shù)
226 result =ps.executeUpdate();227
228 }229 catch(Exception e)230 {231 e.printStackTrace();232 }233 finally
234 {235 close(rs, ps, conn);236 }237
238 returnresult;239 }240
241 //關(guān)閉對應(yīng)的數(shù)據(jù)庫連接資源
242 public static voidclose(ResultSet rs1, PreparedStatement ps1, Connection conn1)243 {244
245 try
246 {247 if(rs1!=null)248 {249 rs1.close();250 }251 if(ps1!=null)252 {253 ps1.close();254 }255 if(conn1!=null)256 {257 conn1.close();258 }259
260 } catch(SQLException e) {261 //TODO Auto-generated catch block
262 e.printStackTrace();263 }264
265 }266 }
總結(jié)
以上是生活随笔為你收集整理的java mysql 操作类_Java 数据库简单操作类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql对库授权alter_mysql
- 下一篇: 李贺为什么被称作诗鬼(唐代诗人李贺为什么