JDBC(Java Data Base Connectivity),用于实现java语言编程与数据库连接的API。
JDBC体系结构由两层组成:
JDBC API :提供java应用程序到JDBC管理器的连接
JDBC驱动程序API:支持JDBC管理器到驱动程序的连接
建立JDBC连接:
导入JDBC包:
import java.sql.*
注册JDBC驱动程序并创建连接对象conn:
Class.forName("com.mysql.jdbc.Driver");
Connection conn= null;
conn= DriverManager.getConnection("jdbc:mysql://hostname:port/db_name","db_username","db_password");
conn.close();
这样,我们的JDBC连接即已建好。
交互
连接建立后,通常通过JDBC Statement、CallableStatement和PrepareStatement这3个接口进行交互。
Statement:用于使用静态SQL语句,不能接受参数;
创建Statement对象:
Statement stmt = null;try{
stmt=conn.createStatement();
}catch(SQLException e){
...
}finally{
...
}
该对象常用的3种方法:
boolean execute(String SQL ):检索SQL运行后结果是否存在,有则返回true,没有则返回false;
int executeUpdate(String SQL):检索SQL语句所影响的行数,常用于会影响多行改动的SQL语句,如INSERT、UPDATE、DELETE;
ResultSet executeQuery(String SQL):返回运行后的结果集合,常用于SELECT;
关闭Statement对象:
finally{
stmt.close();
}
PreparedStatement:扩展了Statement接口,可支持动态,可接受参数,参数类型只使用IN;
创建PreparedStatement对象:
PreparedStatement pstmt = null;try{
String SQL= "Update employees SET age = ? WHERE id = ?";
pstmt=conn.prepareStatement(SQL);
...
}catch{
...
}finally{
pstmt.close();
}
其中?即表示要输入的参数。通过stmt.setXXX(number,value);输入参数,其中XXX表示参数数值类型,number表示?在程序出现的位置,从1开始计数;value表示输入参数的值;
Statement对象可用的3种方法都可以使用。
CallableStatement:相比于PreparedStatement对象,其参数类型有IN、OUT、INOUT三种;
创建CallableStatement对象:
CallableStatement cstmt = null;try{
String strSQL= "{call getEmpName(?,?)}";
cstmte=conn.prepareCall(SQL);
...
}catch(SQLException e){
...
}finally{
cstmt.close();
}
对比前面的3种方法,CallcbleStatement多了一种方法:registerOutParameter(),该方法将JDBC数据类型绑定到存储过程并返回预期数据类型。
当调用存储过程,可以使用适当的getXXX()方法从OUT参数中检索该值。 此方法将检索到的SQL类型的值转换为对应的Java数据类型。
内容来源于网络如有侵权请私信删除