本文是对 《JAVA使用JDBC连接MySQL数据库 二》的改进。
上节使用的是PreparedStatement来执行数据库语句,但是preparedStatement需要传递一个sql语句参数,才能创建。然而,DBHelper类只是起到打开和关闭数据库的作用,所以sql语句是要放到应用层部分的,而不是放到DBHelper类中。
而statment不需要传递一个sql语句参数,就能创建。
修改部分如下:
public class DBHelper { String driver = "com.mysql.jdbc.Driver"; String url= "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; public Connection conn; //public PreparedStatement pst; public Statement statement; public DBHelper(){ try { // 加载驱动程序 Class.forName(driver); // 连续数据库 conn = (Connection) DriverManager.getConnection(url, user, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); } //pst = (PreparedStatement) conn.prepareStatement(sql);//使用prepareStatement来执行SQL语句 statement = (Statement) conn.createStatement();//使用statement来执行SQL语句 } catch (Exception e) { e.printStackTrace(); } } public void close() { try { this.conn.close(); //this.pst.close(); this.statement.close(); } catch (Exception e) { e.printStackTrace(); } } }
public class JDBCTest { public static void main(String[] args){ String sql = "select * from employee";//SQL语句 try{ //DBHelper db = new DBHelper(sql);//创建DBHelper对象 //ResultSet rs = (ResultSet) db.pst.executeQuery();// 返回结果集 DBHelper db = new DBHelper();//创建DBHelper对象 ResultSet rs = (ResultSet) db.statement.executeQuery(sql);// 返回结果集 System.out.println("-----------------"); System.out.println("姓名" +"\t"+ "邮箱" +"\t"+ "日期"); System.out.println("-----------------"); while(rs.next()) { //获取结果集中的数据 String uname = rs.getString("name"); String uemail = rs.getString("email"); String uhiredate = rs.getString("hiredate"); // 输出结果 System.out.println(uname +"\t"+ uemail +"\t"+ uhiredate); } rs.close(); db.close();//关闭连接 }catch(SQLException e) { e.printStackTrace(); } } }
时间: 2024-10-17 05:17:03