一、文字说明两者区别
1、Statement接口:用于执行静态 SQL 语句并返回它所生成结果的对象
Statement stmt=con.createStatement();
ResultSetrs=sql.executeQuery("SELECT * FROMstudent");
2、PreparedStatement接口: 预编译的 SQL 语句的对象。 继承Statement接口
语句被预编译并存储在 PreparedStatement
对象中。然后可以使用此对象多次高效地执行该语句。
二、代码说明两者区别
- try {
- Class.forName(JDBC驱动类);
- } catch (ClassNotFoundException e) {
- System.out.println("无法找到驱动类");
- }
- try {
- Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码);
- Statement stmt = con.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
- while (rs.next()) {
- int x = rs.getInt("a");
- String s = rs.getString("b");
- float f = rs.getFloat("c");
- }
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- publicclass NewStudentDB {
- publicstatic void main(String[] args) {
- Connection con = null;
- PreparedStatement pStatement =null;
- try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
- con = DriverManager.getConnection(
- "jdbc:sqlserver://localhost:1433/Student?user=root&password=123")
- String strSql = "insert into studentvalues(?,?,?)";
- pStatement=con.prepareStatement(strSql);
- pStatement.se tInt(1, 200801023);
- pStatement.setString(2,"李红");
- pStatement.setString(3,“计算机系");
- pStatement.executeUpdate();
- } catch (SQLException sqlE) {
- sqlE.printStackTrace();
- } finally {
- ConnectionManager.closeStatement(pStatement);
- ConnectionManager.closeConnection(con);
- }
- }
- }