Java中Dao模式中Dao的数据库操作(BaseDao的写法)
Dao模式是Java面向设计时的一种模式。而Dao中的BaseDao无非是对数据进行CURD(增删改查),下面是最常用的连接,增删改查的方法。
1 package dao; 2 3 import java.sql.*; 4 5 /** 6 * 数据库访问类 7 */ 8 public class BaseDao { 9 //数据库驱动 10 private static String driver = "com.mysql.jdbc.Driver"; 11 //数据库连接地址 12 private static String url = "jdbc:mysql://127.0.0.1:3306/flight?useSSL=False"; 13 //数据库用户名 14 private static String user = "root"; 15 //数据库密码 16 private static String password = "123456"; 17 18 //数据库连接 19 protected Connection conn = null; 20 //statement对象 21 protected PreparedStatement pstmt = null; 22 23 /** 24 * 连接数据库 25 * 26 * @return 数据库连接 27 * @throws ClassNotFoundException 未找到驱动类异常 28 * @throws SQLException 数据库异常 29 */ 30 protected Connection getConn() throws ClassNotFoundException, SQLException { 31 //加载驱动 32 Class.forName(driver); 33 //获取连接 34 conn = DriverManager.getConnection(url, user, password); 35 return conn; 36 } 37 38 /** 39 * 数据库查询方法 40 * 41 * @param sql 预编译sql语句 42 * @param params 预编译参数 43 * @return 查询结果集 44 * @throws SQLException 数据库异常 45 */ 46 protected ResultSet executeQuerySQL(String sql, Object[] params) throws SQLException { 47 ResultSet rs = null; 48 try { 49 conn = getConn(); 50 } catch (ClassNotFoundException e) { 51 e.printStackTrace(); 52 } 53 pstmt = conn.prepareStatement(sql); 54 if (params != null) { 55 for (int i = 0; i < params.length; i++) { 56 pstmt.setObject(i + 1, params[i]); 57 } 58 } 59 rs = pstmt.executeQuery(); 60 return rs; 61 } 62 63 /** 64 * 数据库增删改方法 65 * 66 * @param sql 预编译sql语句 67 * @param params 预编译参数 68 * @return 数据库影响行数 69 * @throws SQLException 数据库异常 70 */ 71 protected int executeUpdate(String sql, Object[] params) throws SQLException { 72 try { 73 conn = getConn(); 74 } catch (ClassNotFoundException e) { 75 e.printStackTrace(); 76 } 77 int num = 0; 78 pstmt = conn.prepareStatement(sql); 79 if (params != null) { 80 for (int i = 0; i < params.length; i++) { 81 pstmt.setObject(i + 1, params[i]); 82 } 83 } 84 num = pstmt.executeUpdate(); 85 86 return num; 87 } 88 89 /** 90 * 关闭数据库连接 91 * @param conn 数据库连接 92 * @param pstmt statement对象 93 * @param rs ResultSet对象 94 */ 95 protected void closeALL(Connection conn, PreparedStatement pstmt, ResultSet rs) { 96 try { 97 if (rs != null) { 98 rs.close(); 99 } 100 if (pstmt != null) { 101 pstmt.close(); 102 } 103 if (conn != null) { 104 conn.close(); 105 } 106 } catch (SQLException e) { 107 e.printStackTrace(); 108 } 109 } 110 }