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
- 下一篇: Java多线程编程实战指南+设计模式篇p