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("姓名" +"\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();
}
}
}
在查询方面,PrepareStatement和Statement是没有什么区别的。不过PrepareStatement比Statement更高级些。
PrepareStatement是先把sql语句送给系统,接着写入数据,再执行sql语句。
而Statement不能动态写入数据,只能执行固定的sql语句。
所以,PrepareStatement用于增加,删除,修改操作。Statement用于查询操作,不过PrepareStatement也可以进行查询(可能Statement功能越简单,程序效率越高吧,所以没弃用)。