网站策划方案案例,上海有什么公司,品牌全案营销策划,中国纪检监察jdbc万能dao一#xff0c;为何封装万能dao二#xff0c;代码实现一#xff0c;为何封装万能dao
不用框架#xff0c;纯jdbc连接数据库#xff0c;会用到dao包#xff0c;如果每个表都要写增删改查#xff0c;一个dao至少四个方法#xff0c;dao会有大量代码重复#…
jdbc万能dao一为何封装万能dao二代码实现一为何封装万能dao
不用框架纯jdbc连接数据库会用到dao包如果每个表都要写增删改查一个dao至少四个方法dao会有大量代码重复所以封装dao包解决sql参数的问题。提高代码复用率更好用只要sql和参数数组
二代码实现
要求有连接Oracle的jar包
package dao;import java.sql.*;/*** * author echo lovely**/
public class ToolDao {static {try {Class.forName(oracle.jdbc.OracleDriver);} catch (ClassNotFoundException e) {e.printStackTrace();}}static Connection conn null;static PreparedStatement ps null;static ResultSet rs null;public static Connection getConn() throws SQLException {String url jdbc:oracle:thin:127.0.0.1:1521:orcl;conn DriverManager.getConnection(url, scott, scott);return conn;}public static void closeAll() {try {if (rs ! null)rs.close();if (ps ! null)ps.close();if (conn ! null)conn.close();} catch (SQLException e) {e.printStackTrace();}} public int executeUpdate(String sql, Object[] objs) {int i -1;try {conn getConn();ps conn.prepareStatement(sql);if (objs ! null) {for (int j 0; j objs.length; j) {ps.setObject(j 1, objs[j]);}// 不能为空可增删改i ps.executeUpdate();}} catch (SQLException e) {e.printStackTrace();} finally {closeAll();}return i;}public ResultSet executeQuery(String sql, Object[] objs) {try {conn getConn();ps conn.prepareStatement(sql);if (objs ! null) {for (int j 0; j objs.length; j) {ps.setObject(j 1, objs[j]);}}rs ps.executeQuery();} catch (SQLException e) {e.printStackTrace();} finally {// closeAll();}return rs;}}