JDBC工具類
/** * 2017年6月26日下午3:37:05 */ package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * * @author huangtao * 2017年6月26日下午3:37:05 * bkm * @parameter * TODO * JDBC連線資料庫 * 連線遠端資料庫,取出資料,放入csv檔案 */ public class JDBCUtil { private static Log log = LogFactory.getLog(JDBCUtil.class); private RespsonData rd = new RespsonData("success");// 通用返回JSON物件 //驅動類完整路徑 private static final String DRIVERPATH = ResourceUtil.getConf("NewDriver"); //連線URL private static final String URL = ResourceUtil.getConf("NewUrl"); //使用者名稱 private static final String USERNAME = ResourceUtil.getConf("NewUsername"); //密碼 private static final String PASSWORD = ResourceUtil.getConf("NewPassword"); static { try { Class.forName(DRIVERPATH); } catch (ClassNotFoundException e) { e.printStackTrace(); log.info("JDBC DataBase Load Driver Error!"); System.out.println("載入驅動錯誤!"); } } /** * 獲取連線 * @author huangtao * * @return * 2016-9-5 */ public static Connection getConnection() { Connection conn = null; try {conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (SQLException e) { e.printStackTrace(); log.info("JDBC DataBase Can Not Connect!"); System.out.println("資料庫連線不上!"); } return conn; } /** * 執行DML語句,insert into、update、delete * @author huangtao * * @param sql * @param params * @return * 2016-9-5 */ public static int executeUpdate(String sql, Object[] params) { Connection conn = getConnection(); PreparedStatement ps = null; int row = 0; try { ps = conn.prepareStatement(sql); if(params != null) { for(int i=0; i<params.length; i++) { ps.setObject(i + 1, params[i]); } } row = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); log.error("executeUpdate error...",e); } finally { close(conn, ps, null); } return row; } /** * 執行DQL語句,返回List資料 * @author huangtao * * @param sql * @param params * @return * 2016-9-5 */ public static List<Object[]> executeQuery(String sql, Object[] params) { List<Object[]> list = new ArrayList<Object[]>(); Connection conn = getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(sql); if(params != null) { for(int i=0; i<params.length; i++) { ps.setObject(i + 1, params[i]); } } //執行sql語句,獲取結果集 rs = ps.executeQuery(); //獲取結果集的列數 int col = rs.getMetaData().getColumnCount(); //遍歷結果集 while(rs.next()) { Object[] obj = new Object[col]; for(int i=0; i<col; i++) { obj[i] = rs.getObject(i + 1); } list.add(obj); } } catch (SQLException e) { e.printStackTrace(); log.error("executeQuery error...",e); } finally { close(conn, ps, rs); } return list; } public static List<Map<String, Object>> executeQueryForMap(String sql, Object[] params) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Connection conn = getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement(sql); if(params != null) { for(int i=0; i<params.length; i++) { ps.setObject(i + 1, params[i]); } } //執行sql語句,獲取結果集 rs = ps.executeQuery(); //獲取結果集屬性資訊 ResultSetMetaData md = rs.getMetaData(); //獲取結果集的列數 int col = md.getColumnCount(); //遍歷結果集 while(rs.next()) { Map<String, Object> dataMap = new HashMap<String, Object>(); for(int i=1; i<=col; i++) { //獲取指定位置的欄位名稱 String key = md.getColumnName(i); //獲取指定位置的欄位值 Object value = rs.getObject(i); dataMap.put(key, value); list.add(dataMap); } } } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, ps, rs); } return list; } /** * 關閉 * @author huangtao * * @param conn * @param sta * @param rs * 2016-9-5 */ private static void close(Connection conn, Statement sta, ResultSet rs) { try { if(rs != null) { rs.close(); } if(sta != null) { sta.close(); } if(conn != null) { conn.close(); } } catch(SQLException e) { e.printStackTrace(); log.error("JDBCUtil1 Release Of Resource Error!",e); System.out.println("釋放資源出錯!"); } } //查詢總數 public static int executeCount(String sql, Object[] params) { Connection conn = getConnection(); PreparedStatement ps = null; ResultSet rs = null; int count = 0; try {ps = conn.prepareStatement(sql); if(params != null) { for(int i=0; i<params.length; i++) { ps.setObject(i+1, params[i]);//欄位的索引位置從1開始,所以要加1 } } //執行sql語句,獲取結果集 rs = ps.executeQuery(); //遍歷結果集 while(rs.next()) { count = Integer.parseInt(rs.getObject(1).toString()); }} catch (SQLException e) { e.printStackTrace(); log.error("executeCount error...",e); } finally { close(conn, ps, rs); } return count; } }
相關推薦
jdbc工具類封裝
ram ive while lock ins connect cat stack sys 封裝 package util; import java.sql.Connection; import java.sql.DriverManager; import
JDBC工具類相關
lex ati tac dstat ram stmt 提取 ini .get 第一種(單純提取註冊驅動和獲取連接): 把註冊驅動,獲取連接一起寫入工具類靜態方法裏,並釋放資源 1 import java.sql.Connection; 2 import java.sq
抽取JDBC工具類並增刪改查
for 文件 import -c auto -a san pac ext 抽取工具類: package demo; /* * 工具類 */ import java.sql.Connection; import java.sql.DriverManager; imp
JDBC【事務、元數據、改造JDBC工具類】
true 出了 簡單 static comm 使用 當前 eat 得到 1.事務 一個SESSION所進行的所有更新操作要麽一起成功,要麽一起失敗 舉個例子:A向B轉賬,轉賬這個流程中如果出現問題,事務可以讓數據恢復成原來一樣【A賬戶的錢沒變,B賬戶的錢也沒變】。 事例
jdbc 工具類 封裝數據庫連接
on() mage stream res jdb com statement stack pos 首先,創建一個文件db.properties,用於保存數據庫連接信息。 編寫代碼連接數據庫 package com.jdbc; import java.io.IO
把註冊驅動放到JDBC工具類
改動的地方: JDBCTest: JDBCUtil: JDBCTest: package com.test.example; import java.sql.Connection; import java.sql.DriverManager; import java.
JDBC工具類 使用Durid連線池
public class JDBCUtils { private static DataSource ds ; static { try {
Hive----JDBC工具類的建立使用(包括HIVEsql工具類)---IDEA開發
Hive-----JDBC---util package com.www.hive.util;import java.sql.*;import java.util.Date;import java.util.*;import java.util.Lis
jdbc工具類BDutil.java
package util; import java.sql.*; public final class DButil { private static final String driver = "com.mysql.jdbc.Driver"; private sta
JDBC工具類連線資料庫測試
測試程式碼 import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.jdbcutils.JDBCUtils; public class J
一個大牛寫的JDBC工具類
事情過去好久了...大概三年前 記著那個時候,此大牛(IBM某架構),在UE下一氣呵成,沒有任何多餘程式碼,甚至不用註釋都可以看得明白此段程式碼用途,現在仔細看了,雖然很基本,但是仍舊覺著此段程式碼很爽!貼出來,讓大家有時間的話,都大致看一下... package com.
JDBC工具類DataSourceUtils,dao介面程式碼示例;
DataSourceUtils工具類連線池用的是Druid: import com.igeek.common.utils.DataSourceUtils; import java.sql.Connection; import java.sql.ResultSet; imp
JDBC工具類及增刪改查
資料庫: CREATE DATABASE mydb; #使用資料庫 USE mydb; ###建立分類表 CREATE TABLE category( cid INT PRIMARY KEY AUTO_INCREMENT , cname VA
JDBC 工具類封裝jdbcUtils
public class JdbcUtil { private static Connection connection = null; private static PreparedStatement ps = null; private static ResultSet rs =
MySQL資料庫學習筆記(十一)----DAO設計模式實現資料庫的增刪改查(進一步封裝JDBC工具類)
系列文章並非本人原創。 在這裡我想討論的一個問題是:在PersonDaoImpl這個實現類中,我們可以看到 public void add(Person p) throws SQLException { 26 Connection conn
簡單的JDBC工具類
package com.itheima.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement
JDBC工具類
/** * 2017年6月26日下午3:37:05 */ package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat
JDBC工具類(JDBC工具類,封裝方法(公共的、靜態的)進行與資料庫的連線及執行sql命令,在需要使用的類中直接呼叫。)
JDBC工具類,封裝方法(公共的、靜態的)進行與資料庫的連線及執行sql命令,在需要使用的類中直接呼叫。 package com.offcn.util; import java.io.IOException; import java.io.InputStrea
複習:JDBC工具類並實現增刪改查
JDBC工具類 package bull01.JDBCbasis; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOExceptio
連線資料庫Jdbc工具類
由於經常會連線資料庫,因此編寫了一個工具類,用到時只需要匯入即可使用。 package com.guigu.util; import java.sql.Connection; import java