JAVA使用JDBC连接MySQL数据库 二

JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库:

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 DBHelper(){
        try {
            // 加载驱动程序
            Class.forName(driver);
            // 连续数据库
            conn = (Connection) DriverManager.getConnection(url, user, password);
            if(!conn.isClosed())
                System.out.println("Succeeded connecting to the Database!");  
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void close() {
        try {
            this.conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

再写一个JDBCTest.java来执行相关查询操作

public class JDBCTest {

    public static void main(String[] args){
        String sql = "select * from employee";//SQL语句
        DBHelper db = new DBHelper();//创建DBHelper对象  
        try{   
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);//使用prepareStatement来执行SQL语句
            ResultSet rs= (ResultSet) preStmt.executeQuery();//返回结果集
            //Statement stmt = (Statement) db.conn.createStatement();//使用statement来执行SQL语句
            //ResultSet rs = (ResultSet) stmt.executeQuery(sql);// 返回结果集
            
            System.out.println("-----------------");
            System.out.println("姓名" +"	"+ "邮箱" +"	"+ "日期");
            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 +"	"+ uemail +"	"+ uhiredate);
            }
            rs.close();
            db.close();//关闭连接 
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
}

在查询方面,PrepareStatement和Statement是没有什么区别的。不过PrepareStatement比Statement更高级些。

PrepareStatement是先把sql语句送给系统,接着写入数据,再执行sql语句。

Statement不能动态写入数据,只能执行固定的sql语句。

所以,PrepareStatement用于增加,删除,修改操作。Statement用于查询操作,不过PrepareStatement也可以进行查询(可能Statement功能越简单,程序效率越高吧,所以没弃用)。