??xml version="1.0" encoding="utf-8" standalone="yes"?>
以下的代码段Q其?con ?Connection 对象Q创建包含带两个 IN 参数占位W的 SQL 语句?PreparedStatement 对象Q?br />
PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");
pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?"Q它已发送给DBMSQƈ为执行作好了准备?br />
2、传?IN 参数
在执?PreparedStatement 对象之前Q必设|每?? 参数的倹{这可通过调用 setXXX Ҏ来完成,其中 XXX 是与该参数相应的cd。例如,如果参数hJava cd longQ则使用的方法就?setLong。setXXX Ҏ的第一个参数是要设|的参数的序C|,W二个参数是讄l该参数的倹{例如,以下代码第一个参数设?123456789Q第二个参数设ؓ 100000000Q?br />
pstmt.setLong(1, 123456789); pstmt.setLong(2, 100000000); |
pstmt.setString(1, "Hi"); for (int i = 0; i < 10; i++) { pstmt.setInt(2, i); int rowCount = pstmt.executeUpdate(); } |
pstmt.setShort(2, 44); |
二、连接数据库
SqlServer2005
?/span>
java
代码
1
、在
tempdb
中创建测试数据表?/span>
use tempdb
CREATE TABLE dbo.Table_1
(
ID bigint NOT NULL,
NAME varchar(20) NOT NULL,
EMAIL varchar(50) NULL
) ON [PRIMARY]
2
、测试用数据库q接
下面代码创徏了一个连接到数据库的q接Q及使用q接操作数据库?/span>
/*
*
创徏日期
2006-6-1
*/
package cn.afss.common.web.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.log4j.Logger;
/**
* @author Amei
* Amei's FreeSky Studio
*/
public class TestConnSql2k5Bean {
/**
* Log4J Logger for this class
*/
private static final Logger logger =
Logger.getLogger(TestConnSql2k5Bean.class);
private Connection conn = null;
public TestConnSql2k5Bean() {
super();
}
public void getConnection() {
try {
Class
.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";
String USER = "sa"; //
Ҏ你自p|的数据库连接用戯行设|?/span>
String PASSWORD = "sa"; //
Ҏ你自p|的数据库连接密码进行设|?/span>
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (java.lang.ClassNotFoundException ce) {
logger.error("Get Connection error:", ce);
} catch (java.sql.SQLException se) {
logger.error("Get Connection error:", se);
} catch (Exception e) {
logger.error("Get Connection error:", e);
}
}
public void testConnection() {
if (conn == null)
this.getConnection();
try {
String sql = "SELECT * FROM TABLE_1";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
logger.debug(rs.getString("ID"));
logger.debug(rs.getString("NAME"));
logger.debug(rs.getString("EMAIL"));
}
rs.close();
stmt.close();
} catch (SQLException e) {
logger.error(e.getMessage(), e);
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
}
}
}
public static void main(String[] args) {
TestConnSql2k5Bean bean = new TestConnSql2k5Bean();
bean.testConnection();
}
}
三?/span>
Sql Server2000
?/span>
2005
的连接代码区?/span>
写连接代码时需要注?/span>
2000
?/span>
2005
的不同:
1
、连?/span>
SqlServer2000
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
2
、连?/span>
SqlServer2005
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";