有什么不合适的,欢迎多多指出,谢谢。面试时时间充裕的情况下,尽量写完美的程序。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestJDBC {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
try {
// 加载MySQL驱动类
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接,取得数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://hostname/databaseName", "root", "root");
// 取得pStmt对象,PreparedStatement比Statememtn效率高,安全性好(预编译的SQL语句,防止SQL注入)
pStmt = conn.prepareStatement("SELECT * FROM user");
// 取得ResultSet对象,暂时存放查询取得的结果
rs = pStmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt("id"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("找不到对应的驱动类");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败");
} finally {
try {
//关闭结果集
if(rs != null) {
rs.close();
rs = null;
}
//关闭声明
if(pStmt != null) {
pStmt.close();
pStmt = null;
}
//关闭连接对象
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}