首先要在工程里面加载一个sqljdbc.jar的包,包在Mircosoft SQL Server2005上面可以下载.
查询操作具体流程如下:
1.获取连接(connection对象)
2.获取命令执行对象
statement(通过createstatement创建)
preparedstatement(通过preparedstatement)
callablestatement(preparedcall)
3.执行 execute() 增加 删除 修改 返回值是布尔型
executeQuery() 返回值是ResultSet结果集
executeupdate() 增加 删除 修改 返回值是整形(影响的行数)
4.假如是对结果集操作 一般采用while循环的方式对结果集进行操作
5.关闭资源(ResultSet statement conn的顺序)
-- ===============================================================================
命令执行对象
statement是执行普通的sql语句 形如:select * from usertb
preparedstatement是执行的是占位符格式的 形如:insert into usertb values(?,?,?)
statement.setInt(1,10);
statement.setString(2,"aa")
statement.setString(3,"123")
callablestatement是执行存储过程 形如:{call getUser(?,?,?)}
statement.setInt(1,10);
statement.setString(2,"2222")
statement.registerOutParamenter(2, java.sql.Types.VARCHAR);
/*----------------------------------------------------------------------------------*/
/*示例连接到数据库*/
Connection conn = null;
String url = "jdbc:sqlserver://localhost:1433;databasename=J1106";
public Connection getConn() throws ClassNotFoundException, SQLException {
// 加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 获取与数据库的连接
if (conn == null) {
//DriverManager.getConnection( 数据库名称, 用户 , 密码,)
//其中数据库名称的格式为:jdbc:sqlserver://IP地址:端口号;databasename=数据库名
conn = DriverManager.getConnection(url, "sa", "123");
}
return conn;
}
/*---------------------------------------------------------------------------------*/
/*对其做一个简单的查询操作*/
public void getResult() {
String sql = "select * from bank";
Statement st = null;
esultSet rs = null;
try {
st = this.getConn().createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println("第一列的值是:" + rs.getString("currentMoney")
+ "第2列的值是:" + rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
// 关闭连接,结果对象,命令执行对象,释放数据库连接资源
// 顺序从小到大.
st.close();
rs.close();
this.conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*------------------------------------------------------------------------------------*/
//简单的存储过程,通过userid获得username
public String getNameByProc(int userid) {
CallableStatement cs = null;
String name = "";
// 调用存储过程格式: { call 存储过程名称(?,?...)}
String sql = "{call getName(?,?)}";
try {
cs = this.getConn().prepareCall(sql);
// 为第一个参数赋值
// 第一个为整数类型,所以才用setInt
cs.setInt(1, userid);
//为输出参数注册
cs.registerOutParameter(2, java.sql.Types.VARCHAR);
//参数设置完毕,开始执行存储过程.
cs.execute();
//注意输出参数的位置,与上面注册的对应
name = cs.getString(2);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (cs != null) {
cs.close();
}
if (this.conn != null) {
this.conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return name;
}
/*-------------------------------------------------------------------------------------*/