BaseDao是:数据库里负责增加,删除,修改,查询全部等,是一种接口代码,公共方法的接口类。
进行数据库连接
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 basedao {private String driver = "com.mysql.jdbc.Driver";// 数据库驱动字符串private String url = "jdbc:mysql://localhost:3306/supermarket";// 连接URL字符串private String user = "root"; // 数据库用户名private String password = "root"; // 用户密码Connection conn = null; // 数据连接对象/*** 获取数据库连接对象*/public Connection getConnection() {if(conn==null) {// 获取连接并捕获异常try {Class.forName(driver);conn = DriverManager.getConnection(url, user, password);} catch (Exception e) {e.printStackTrace(); // 异常处理}}return conn; // 返回连接对象}
关闭数据库连接代码
/*** 关闭数据库连接* @param conn 数据库连接* @param stmt Statement对象* @param rs 结果集*/public void closeAll(Connection conn, Statement stmt,ResultSet rs) {// 若结果集对象不为空,则关闭if (rs != null) {try {rs.close();} catch (Exception e) {e.printStackTrace();}}// 若Statement对象不为空,则关闭if (stmt != null) {try {stmt.close();} catch (Exception e) {e.printStackTrace();}}// 若数据库连接对象不为空,则关闭if (conn != null) {try {conn.close();} catch (Exception e) {e.printStackTrace();}}}
查询
public ResultSet getCheckAll(String sql,Object [] objs){ResultSet rs=null;PreparedStatement pstmt = null;try {//得到数据库连接getConnection();//定义sql语句pstmt=conn.prepareStatement(sql);//预编译if(objs!=null){//如果有参数,则设置参数,下标从1开始 (数组或集合、循环设置参数)for (int i = 0; i <objs.length; i++) {pstmt.setObject(i+1, objs[i]);}}//执行查询,返回结果集rs=pstmt.executeQuery();} catch (SQLException e) {//抛出异常e.printStackTrace();} finally{//关闭资源closeAll(conn,pstmt,rs);}return rs;}
增删改写一起
public int exceuteUpdate (String preparedSql, Object[] param) {PreparedStatement pstmt = null;int num = 0;conn = getConnection();try {pstmt = conn.prepareStatement(preparedSql);if (param != null) {for (int i = 0; i < param.length; i++) {//为预编译sql设置参数pstmt.setObject(i + 1, param[i]);}}num = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally{closeAll(conn,pstmt,null);}return num;}
把代码合一起就好
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 basedao {private String driver = "com.mysql.jdbc.Driver";// 数据库驱动字符串private String url = "jdbc:mysql://localhost:3306/supermarket";// 连接URL字符串private String user = "root"; // 数据库用户名private String password = "root"; // 用户密码Connection conn = null; // 数据连接对象/*** 获取数据库连接对象*/public Connection getConnection() {if(conn==null) {// 获取连接并捕获异常try {Class.forName(driver);conn = DriverManager.getConnection(url, user, password);} catch (Exception e) {e.printStackTrace(); // 异常处理}}return conn; // 返回连接对象}/*** 关闭数据库连接* @param conn 数据库连接* @param stmt Statement对象* @param rs 结果集*/public void closeAll(Connection conn, Statement stmt,ResultSet rs) {// 若结果集对象不为空,则关闭if (rs != null) {try {rs.close();} catch (Exception e) {e.printStackTrace();}}// 若Statement对象不为空,则关闭if (stmt != null) {try {stmt.close();} catch (Exception e) {e.printStackTrace();}}// 若数据库连接对象不为空,则关闭if (conn != null) {try {conn.close();} catch (Exception e) {e.printStackTrace();}}}public ResultSet getCheckAll(String sql,Object [] objs){ResultSet rs=null;PreparedStatement pstmt = null;try {//得到数据库连接getConnection();//定义sql语句pstmt=conn.prepareStatement(sql);//预编译if(objs!=null){//如果有参数,则设置参数,下标从1开始 (数组或集合、循环设置参数)for (int i = 0; i <objs.length; i++) {pstmt.setObject(i+1, objs[i]);}}//执行查询,返回结果集rs=pstmt.executeQuery();} catch (SQLException e) {//抛出异常e.printStackTrace();} finally{//关闭资源closeAll(conn,pstmt,rs);}return rs;}public int exceuteUpdate (String preparedSql, Object[] param) {PreparedStatement pstmt = null;int num = 0;conn = getConnection();try {pstmt = conn.prepareStatement(preparedSql);if (param != null) {for (int i = 0; i < param.length; i++) {//为预编译sql设置参数pstmt.setObject(i + 1, param[i]);}}num = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally{closeAll(conn,pstmt,null);}return num;}}