1、创建类EmpInfoPrepare,代码如下,附加注释说明:
package com.sie.train;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class EmpInfoPrepare {
public static void main(String[] args) {
try {
// 1、加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2、建立连接通道
String url = "jdbc:oracle:thin:@61.145.96.125:1522:DEMO";
String user = "apps";
String password = "apps";
Connection conn = DriverManager.getConnection(url, user, password);
// 3、利用conn对象创建preparedStatement
String sql = "SELECT d.* FROM scott.dept d WHERE d.deptno=? AND d.dname=? ";
// 4、一定要把SQL语句放到preparedStatement里面,这样才能达到预编译
PreparedStatement pstmt = conn.prepareStatement(sql);
// 5、给占位符?赋值
int deptno = 30;
String dname = "SALES";
pstmt.setInt(1, deptno);
pstmt.setString(2, dname);
// 6、执行SQL语句
ResultSet rs = pstmt.executeQuery();
// 7、输出结果集
while (rs.next()) {
System.out.println(rs.getInt(1) + "\t" + rs.getString(2));
}
// 8、关闭数据库连接
rs.close();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2、结果如下: