JAVA数据库编程和预编译语句
来源:互联网 发布:淘宝完整类目数据 编辑:程序博客网 时间:2024/05/16 18:13
JDBC中的驱动程序必须提供实现方法的接口。JDBC API被定义在java.sql包中,其中定义了JDBC API用到的所有类、接口和方法,主要的类和接口有:
·DriverManager类——处理驱动程序的装入,为新的数据库连接提供支持。驱动程序要向该类注册后才能被使用。进行连接时,该类根据JDBC URL选择匹配的驱动程序。
·java.sql.Driver接口——驱动程序接口,负责确认URL与驱动程序的匹配、建立到数据库的连接等,其中的方法需要有相应的驱动程序实现。
·java.sql.Connection接口——表示到特定数据库的连接,其中的方法需要有相应的驱动程序实现。
·java.sql.Statement接口——为SQL语句提供一个容器,包括执行SQL语句、取得查询结果等方法。此接口有两个子类型:
(1)java.sql.PreparedStatement,用于执行预编译的SQL语句;
(2)java.sql.CallableStatement,用于执行对一个数据库内嵌过程的调用。
·java.sql.ResultSet接口——提供对结果集进行处理的手段。
String query="String * from Orders where Amount>?";
PreparedStatement pstate;
try{
pstate=connection.prepareStatement(query);
}catch(SQLException sqlex){
//处理异常
}
在预编译语句中,变量用问号来指定。预编译语句可以包含无限数目的变量。 一旦创建了预编译语句,就可以像常规语句一样来执行它了。例如,上面代码段列出的预编译语句可以这样执行:
pstate.setDouble(1,100.00);
try{
ResultSet result=pstate.executeQuery();
}
catch(SQLException e){
//处理异常
}
PreparedStatement类有许多指定变量的setXXX方法,其中XXX指数据类型。这些方法有两个参数,一个指定变量的位置(第一个变量从1开始),另一个指定变量值。例如,在上面的代码中,使用PredStatement.setDouble在预编译语句中将第一个(也是唯一的一个)变量设置为100.00。
下面例子演示如何在循环中使用PreparedStatement
import java.sql.*;
import javax.sql.*;
public class PStatement {
private static String dbUserName = "sa";
private static String dbPassword = "dba";
public static void main(String args[]){
int[][] Orders = {{1001,327,2},
{1001,412,1},
{1001,906,5},
{1002,111,7},
{1002,112,19}};
try {
Class.forName("com.inet.pool.PoolDriver");
com.inet.tds.TdsDataSource tds = new com.inet.tds.TdsDataSource();
tds.setServerName( "JUPITER" );
tds.setDatabaseName( "MEMBERS" );
tds.setUser( dbUserName );
tds.setPassword( dbPassword );
DataSource ds = tds;
Connection con = ds.getConnection(dbUserName,dbPassword);
String SQLCmd ="INSERT INTO ORDERED_ITEMS (ORDER_NUMBER,ITEM_NUMBER,QTY) VALUES(?,?,?)";
PreparedStatement pstmt = con.prepareStatement(SQLCmd);
for(int i=0;i<5;i++){
pstmt.setInt(1, Orders[i][0]);
pstmt.setInt(2, Orders[i][1]);
pstmt.setInt(3, Orders[i][2]);
pstmt.executeUpdate();
}
con.close();
}catch(ClassNotFoundException e1){
System.err.println(e1.getMessage());
}catch(SQLException e2){
System.err.println(e2.getMessage());
}
}
}
- JAVA数据库编程和预编译语句
- JAVA数据库编程和预编译语句
- Java数据库连接 - 预编译SQL语句
- JDBC:预编译语句和批量更新-
- 预编译语句
- JDBC预编译语句
- 什么是预编译语句
- SQL语句预编译
- JDBC预编译语句
- [疯狂Java]JDBC:PreparedStatement预编译执行SQL语句
- [疯狂Java]JDBC:PreparedStatement预编译执行SQL语句
- hibernate预编译SQL语句中的setParameter和setParameterList
- hibernate预编译SQL语句中的setParameter和setParameterList
- JDBC中的预编译语句
- SQL语句的预编译
- 预编译语句(PreparedStatement)
- 使用预编译SQL语句
- JDBC中的预编译语句
- 把字符串中所有小写字母转换成大写,其余不变,不能用Stirng.toUpperCase()方法
- 网上邻居的工作原理:浏览服务(老文章)
- 第一部分 程序员必读 第二章 Unicode
- mmap详细解释
- Asp.net显示文件夹中的图片
- JAVA数据库编程和预编译语句
- MVC入门学习笔记(七)
- SQL优化-索引
- GetTickCount函数计时置0的解决办法
- ASP.NET验证控件详解
- 开发人员的人品问题 收藏
- sizeof和strlen
- TI DVSDK on OMAP3530 use Devkit8000 (1)
- bind的chroot使用