JAVA操作資料庫的一個通用類
import java.sql.Connection; 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 java.util.logging.Level; import java.util.logging.Logger; import myapp.conf.ConnectDerbyX; public class AppSql { //獲取連線 private static final Connection conn =ConnectDerbyX.connectDerbyX(); //根據單句sql語句,構建PreparedStatement的物件. private static PreparedStatement getPreparedStatement(String sql) { PreparedStatement pst = null; try { pst = conn.prepareStatement(sql); // System.out.println(getConnect()); } catch (SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } return pst; } //設定sql語句引數 private static void setParam(PreparedStatement pst, Object... param) { try { int length = param.length; for(int i = 0; i < length; i++) { pst.setObject(i + 1, param[i]); } } catch (SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } } //無結果更新 public static int executeUpdate(String sql, Object... param) { int rows = 0; PreparedStatement pst = getPreparedStatement(sql); setParam(pst, param); try { rows = pst.executeUpdate(); } catch(SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } finally { closeDB(new Object[]{conn,pst}); } return rows; } //有結果 public static List<Map<Object, Object>> executeQuery(String sql, Object... param) { List<Map<Object, Object>> lst = new ArrayList<Map<Object, Object>>(); ResultSet rs = null; ResultSetMetaData rsd ; PreparedStatement pst = getPreparedStatement(sql); setParam(pst, param); try { rs = pst.executeQuery(); if(rs != null) { rsd = rs.getMetaData(); while(rs.next()) { int columnCount = rsd.getColumnCount(); Map<Object, Object> map = new HashMap<Object, Object>(); for(int i = 1; i < columnCount; i++) { map.put(rsd.getColumnName(i), rs.getObject(i)); } lst.add(map); } } } catch(SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } finally{ closeDB(new Object[]{conn,rs,pst}); } return lst; } public static void execteBatch(String sql[]) { int count=sql.length; Statement pst=null; try { if(count>0) { pst=conn.createStatement(); for(int i=0;i<count;i++) { pst.addBatch(sql[i]); } pst.executeBatch(); } } catch (SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } finally{ closeDB(new Object[]{conn,pst,"",""}); } } private static void closeDB(Object[] object) { int count=object.length; try { if(count==3) { ((Connection)object[0]).close(); ((ResultSet)object[1]).close(); ((PreparedStatement)object[2]).close(); } else if(count==2) { ((Connection)object[0]).close(); ((PreparedStatement)object[1]).close(); } else if(count==4) { ((Connection)object[0]).close(); ((Statement)object[1]).close(); } } catch (SQLException ex) { Logger.getLogger(AppSql.class.getName()).log(Level.SEVERE, null, ex); } } }
備註:其實算是修改後的,經常使用java操作資料庫,為考慮其通用性多次進行這個類的修改,這個算是程式碼量比較少的,雖然可讀性低些,有空在研究其實用性
相關推薦
JAVA操作資料庫的一個通用類
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; impo
java操作FTP伺服器通用工具類
package cn.com.test.util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStrea
Java通過反射建立JDBC操作資料庫的通用方法
JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意方法和屬性;這種動態獲取資訊以及動態呼叫物件方法的功能稱為java語言的反射機制。 首先我們看個反射的小例子。 1.我們新建一個User的類。 2.通過反射獲取User物
推薦一個java操作ftp的工具類
寫在前面 作為經常使用電腦整理檔案的童鞋,應該都使用過從ftp伺服器上傳下載檔案,那麼今天就瞭解下如何通過java程式操作ftp服務的檔案 首先你要知道ftp的ip,路徑,埠,有操作許可權的賬號和密碼 1 匯入jar包 commons-net-3.6.jar 這個jar包用來設定編碼,經過測試,不加也
JdbcTemplateUtil公共類的使用-------java操作資料庫(2)
1.在xml配置JdbcTemplateUtil所需的資料來源 <!--2. 配置springDSN --> <bean id="springDSN" class="org.spri
Java操作Date的工具類
import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;
Java:構造一個Person類,運用方法過載
public class Person{ String name; //字串 名字 int age; //int 年齡 private String secret="..."; //字串 祕密 int height
MongoDB使用Java操作資料庫案例
一、pom.xml依賴 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>
JAVA操作資料庫一(Spring data jpa)
總的來說,JAVA操作資料庫還是相當方便的。 首先是核心配置檔案daoContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.o
java操作資料庫之模糊查詢
首先,在接口裡新增模糊查詢的方法,程式碼如下: ---------------------------------程式碼開始---------------------------------- package com.dao; import java.util.List; import
java操作資料庫 存在就更新不存在就插入的優化操作
當我們用java,jdbc 或者 spring的jdbctemplate來操作資料時候,總有時候會碰到 存在就插入不存在就更新 這樣的需求,我們一般都是用下面的方法解決 public void save(){ JdbcTemplate jdbc = getJd
Java操作資料庫方式三Hibernate的使用之註解的使用
##概述在hibernate中,通常配置物件關係對映關係有兩種,一種是基於xml的方式,另一種是基於annotation的註解方式。在hibernate4及以後的版本直接使用註解,如果使用hiberna
Java操作資料庫之jdbc【原生方式】
引言:Java對資料庫的操作有很多種技術。例如說jdbc,dbutil +C3p0,hibernate,jdbcTemplate等等【這五個都會總結】,到後面的話使用一些高階的框架去操作資料庫,
Java 連線資料庫的工具類
用jdbc連線mysql資料庫的工具類:做到連線資料庫,只需要修改配置檔案的資料庫名,自己資料庫的使用者名稱和密碼,其他不用修改,測試類已經寫好。需要的jar包:junit-4.7.jar 和jdbc的驅動包:自己在網上可以免費下載一:java程式碼package cn.lu
Java操作字串的工具類
1 import java.io.ByteArrayOutputStream; 2 import java.io.IOException; 3 import java.io.PrintStream; 4 import java.math.BigDecimal; 5 import
Java操作資料庫注意點
1、addBatch批處理: smt.addBatch(sql1); smt.addBatch(sql2); smt.addBatch(sql3); smt.executeBatch(); 注意:使用批處理需要注意查詢、新增、修改不能使用同一個Statement,否則會報
java操作資料庫中的Clob型別
首先是POJO類: import java.sql.Clob;import java.util.Date; /*** * @author coffee**/ public class KybasicInfo implements java.io.Serializable {
Java操作集合的工具類
一、介紹 提供了大量的方法對集合元素進行排序,查詢,修改等操作,還提供了將集合物件這職位不可變、對集合物件實現同步控制的方法 二、排序、查詢、替換 import java.util.ArrayLis
Java操作資料庫方式二DBCP使用詳解
##概述DBCP的全稱是:DataBase connection pool,翻譯是:資料庫連線池。在Java操作資料庫方式一JDBC使用詳解中說到直接使用JDBC非常消耗資源。為了避免頻繁關閉連結資料庫
Java操作資料庫,直接執行sql語句
TDDL也一樣,首先通過appName和group獲取到TGroupDataSource,然後通過TGroupDataSource.getConnection獲取TGroupConnection用這個connection去操作statment就可以了import java.i