JDBCUtils工具包
- 前言
- 實體
前言
?? 現在基本上很少再會讓我們自己去寫一些JDBC進行資料的寫入查詢了,但總有特別的時候你會發現,自己寫一個JDBCUtils工具包真香,想怎么用怎么用,以下實體代碼來源于師兄前輩的分享,以及博主后期使用后的總結,又 增添了一些,僅供參考,如與網上同行前輩的代碼有相似之處,請聯系博主備注出處,感謝前行者們對于編程事業的分享和付出!每一個可愛的人都值得尊敬!實體
package cc;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JDBCUtils {
//資料庫更新,
/* xumz
* conn 資料庫連接
* sql
* obj 任意個引數
* */
public static int update(Connection conn,String sql,Object...obj) {
PreparedStatement ps = null;
int res;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
res=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
res=-1;
} finally {
closeAll(conn, null, ps, null);
}
return res;
}
//傳入引數變為List陣列,這種情況有時候比上面的那個uodate更加好用,因為引數變成動態的了,在程式執行前誰都不知道到底有多少個引數
public static int updateList(Connection conn,String sql,List datalist) {
PreparedStatement ps = null;
int res;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < datalist.size(); i++) {
ps.setObject(i+1, datalist.get(i));
}
res=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
res=-1;
} finally {
closeAll(conn, null, ps, null);
}
return res;
}
/**
* 簡單查詢陳述句
* 回傳一個字串
* @param conn
* @param sql
* @param obj
* @return
*/
public static String queryForString(Connection conn,String sql,Object...obj){
PreparedStatement ps = null;
ResultSet rs = null;
String res =null;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
if(rs.next()){
res= rs.getString(rsmd.getColumnLabel(1));
}
} catch (Exception e) {
e.printStackTrace();
res=null;
} finally {
closeAll(conn, null, ps, rs);
}
return res;
}
/*
* 簡單查詢陳述句
* 回傳int值
* */
public static Integer queryForInt(Connection conn,String sql,Object...obj){
PreparedStatement ps = null;
ResultSet rs = null;
Integer res =-1;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
if(rs.next()){
res= rs.getInt(rsmd.getColumnLabel(1));
}
} catch (Exception e) {
e.printStackTrace();
res=-1;
} finally {
closeAll(conn, null, ps, rs);
}
return res;
}
/*
* */
public static Integer queryForIntList(Connection conn,String sql,List datalist){
PreparedStatement ps = null;
ResultSet rs = null;
Integer res =-1;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < datalist.size(); i++) {
ps.setObject(i+1, datalist.get(i));
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
if(rs.next()){
res= rs.getInt(rsmd.getColumnLabel(1));
}
} catch (Exception e) {
e.printStackTrace();
res=-1;
} finally {
closeAll(conn, null, ps, rs);
}
return res;
}
public static List<Map<String,Object>> queryForList(Connection conn,String sql,Object...obj){
PreparedStatement ps = null;
ResultSet rs = null;
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String,Object> map = null;
while(rs.next()){
map = new HashMap<String, Object>();
for (int i = 0; i < columnCount; i++) {
String colunmName = rsmd.getColumnLabel(i+1);
Object columnValue = rs.getObject(colunmName);
map.put(colunmName, columnValue);
}
list.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll(conn, null, ps, rs);
}
return list;
}
//多載
public static List<Map<String,Object>> queryForList_list(Connection conn, String sql, List datalist){
PreparedStatement ps = null;
ResultSet rs = null;
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < datalist.size(); i++) {
ps.setObject(i+1, datalist.get(i));
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String,Object> map = null;
while(rs.next()){
map = new HashMap<String, Object>();
for (int i = 0; i < columnCount; i++) {
String colunmName = rsmd.getColumnLabel(i+1);
Object columnValue = rs.getObject(colunmName);
map.put(colunmName, columnValue);
}
list.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll(conn, null, ps, rs);
}
return list;
}
/*當形參為Object[]陣列時,呼叫該方法必須為一個陣列
當形參為Object...objects時,呼叫就相當靈活了,可以不帶引數,可以帶一個引數或者多個引數,也可以帶陣列作為引數*/
public static List<Map<String,Object>> queryForListForKeyLower(Connection conn,String sql,Object...obj){
PreparedStatement ps = null;
ResultSet rs = null;
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String,Object> map = null;
while(rs.next()){
map = new HashMap<String, Object>();
for (int i = 0; i < columnCount; i++) {
String colunmName = rsmd.getColumnLabel(i+1);
Object columnValue = rs.getObject(colunmName);
map.put(colunmName.toLowerCase(), columnValue);
}
list.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll(conn, null, ps, rs);
}
return list;
}
//資料庫連接方法
public static Connection openConnection(){
Connection con = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(
"url",
"username",
"password"
);
}catch(SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}
return con;
}
//資料庫關閉方法
public static void closeAll(Connection con,Statement st,PreparedStatement ps,ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/* 呼叫方法如:
Connection conn = JDBCUtils.openConnection();
String sql_read = "select * from testa ";
List<Map<String, Object>> list = JDBCUtils.queryForList(conn, sql_read);
*/
}
創作不易,如果這篇文章能夠幫助到你,希望能關注或收藏一下博主,如果文章內容有問題也可留言討論,我們一起學習,一起進步!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/279322.html
標籤:其他
下一篇:oracle 監聽打不開
