Java JDBC数据库 之 DBUtil 封装类
生活随笔
收集整理的這篇文章主要介紹了
Java JDBC数据库 之 DBUtil 封装类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://www.verejava.com/?id=16998460142640
下載 Oracle 或者 Mysql Jar 驅動 mysql-connector-java-3.0.10-stable-bin.jar ojdbc14.jar package com.db;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;public class DBUtil {private Connection conn;//數據庫的鏈接對象public DBUtil(){//加載驅動try{Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e){e.printStackTrace();}}//打開數據的鏈接public Connection openConnection(){try{conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "myspace", "myspace123");} catch (SQLException e){e.printStackTrace();}return conn;}//執行 INSERT DELETE UPDATE 的方法public boolean executeUpdate(String sql){//打開數據庫openConnection();//創建執行 sql 的對象try{Statement stmt=conn.createStatement();//執行sql 語句if(stmt.executeUpdate(sql)>0){return true;}} catch (SQLException e){e.printStackTrace();}finally{DBClose();}return false;}//執行 sql 的 查找 SELECT 的方法public ResultSet executeQuery(String sql){//打開數據庫鏈接openConnection();//創建執行sql 的對象Statement stmt=null;ResultSet rs=null;try{stmt = conn.createStatement();rs=stmt.executeQuery(sql);} catch (SQLException e){e.printStackTrace();}return rs;}//綁定的sql INSERT DELETE UPDATE 方法public boolean executeUpdate(String sql,Object[] params){//打開數據庫openConnection();//創建綁定對象try{PreparedStatement pstmt=conn.prepareStatement(sql);//填充 ? 的值for(int i=0;params!=null&&i<params.length;i++){if(params[i] instanceof Integer){pstmt.setInt(i+1, Integer.parseInt(params[i].toString()));continue;}if(params[i] instanceof Float){pstmt.setFloat(i+1, Float.parseFloat(params[i].toString()));continue;}if(params[i] instanceof Double){pstmt.setDouble(i+1, Double.parseDouble(params[i].toString()));continue;}if(params[i] instanceof String){pstmt.setString(i+1, params[i].toString());}//java.sql.Date, java.util.Dateif(params[i] instanceof java.util.Date){//將 java.util.Date 轉成 java.sql.Datejava.util.Date javaDate=(java.util.Date)params[i];java.sql.Date sqlDate=new java.sql.Date(javaDate.getTime());pstmt.setDate(i+1, sqlDate);continue;}if(params[i] instanceof java.util.Timestamp){//將 java.util.Date 轉成 java.sql.Datejava.util.Date javaDate=(java.util.Date)params[i];java.sql.Timestamp timestamp=new java.sql.Timestamp(javaDate.getTime());pstmt.setTimestamp(i+1, timestamp);continue;}}//執行 綁定的 sql 語句if(pstmt.executeUpdate()>0){return true;}} catch (SQLException e){e.printStackTrace();}finally{DBClose();}return false;}//綁定的sql 查找 SELECT 方法public ResultSet executeQuery(String sql,Object[] params){//打開數據庫openConnection();//創建綁定對象try{PreparedStatement pstmt=conn.prepareStatement(sql);//填充 ? 的值for(int i=0;params!=null&&i<params.length;i++){if(params[i] instanceof Integer){pstmt.setInt(i+1, Integer.parseInt(params[i].toString()));continue;}if(params[i] instanceof Float){pstmt.setFloat(i+1, Float.parseFloat(params[i].toString()));continue;}if(params[i] instanceof Double){pstmt.setDouble(i+1, Double.parseDouble(params[i].toString()));continue;}if(params[i] instanceof String){pstmt.setString(i+1, params[i].toString());}//java.sql.Date, java.util.Dateif(params[i] instanceof java.util.Date){//將 java.util.Date 轉成 java.sql.Datejava.util.Date javaDate=(java.util.Date)params[i];java.sql.Date sqlDate=new java.sql.Date(javaDate.getTime());pstmt.setDate(i+1, sqlDate);continue;}if(params[i] instanceof java.util.Timestamp){//將 java.util.Date 轉成 java.sql.Datejava.util.Date javaDate=(java.util.Date)params[i];java.sql.Timestamp timestamp=new java.sql.Timestamp(javaDate.getTime());pstmt.setTimestamp(i+1, timestamp);continue;}}//執行 綁定的 sql 語句return pstmt.executeQuery();} catch (SQLException e){e.printStackTrace();}return null;}//關閉數據庫鏈接public void DBClose(){if(conn!=null){try{conn.close();} catch (SQLException e){e.printStackTrace();}}} }package com.db.test;import com.db.DBUtil;public class TestAdd {public static void main(String[] args){DBUtil db=new DBUtil();String sql="INSERT INTO dept(id,name)VALUES(3,'IT')";if(db.executeUpdate(sql)){System.out.println("執行成功");}else{System.out.println("執行失敗");}} }package com.db.test;import com.db.DBUtil;public class TestDelete {public static void main(String[] args){DBUtil db=new DBUtil();String sql="DELETE FROM dept WHERE id=3";if(db.executeUpdate(sql)){System.out.println("執行成功");}else{System.out.println("執行失敗");}} }package com.db.test;import com.db.DBUtil;public class TestUpdate {public static void main(String[] args){DBUtil db=new DBUtil();String sql="UPDATE dept SET name='指尖不' WHERE id=3";if(db.executeUpdate(sql)){System.out.println("執行成功");}else{System.out.println("執行失敗");}} }package com.db.test;import java.sql.ResultSet; import java.sql.SQLException;import com.db.DBUtil;public class TestFind {public static void main(String[] args){DBUtil db=new DBUtil();String sql="SELECT * FROM dept";ResultSet rs=db.executeQuery(sql);try{while(rs.next()){int id=rs.getInt("id");String name=rs.getString("name");System.out.println(id+","+name);}} catch (SQLException e){e.printStackTrace();}finally{db.DBClose();}} }http://www.verejava.com/?id=16998460142640
轉載于:https://www.cnblogs.com/verejava/p/9236915.html
總結
以上是生活随笔為你收集整理的Java JDBC数据库 之 DBUtil 封装类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unittest框架(三)unittes
- 下一篇: Django层级模型定义及序列化嵌套的方