非常感谢,下面是我的basedao,貌似没有错的,你看看
package com.scce.dao;
import java.io.serializable;
import java.sql.*;
import javax.servlet.jsp.jstl.sql.result;
import javax.servlet.jsp.jstl.sql.resultsupport;
public class basedao implements serializable {
private static final string driver = com.microsoft.sqlserver.jdbc.sqlserverdriver;
private static final string url = jdbc:sqlserver://localhost:1433;databasename=gamecard_db;
public static connection getconnection() {
connection con = null;
try {
class.forname(driver);
con = drivermanager.getconnection(url, sa, scce);
} catch (exception e) {
e.printstacktrace();
}
return con;
}
/**************************************************** 执行sql语句 *********************************************************/
// 运行有结果集,无参数的sql语句
public static result runselectsql(string sql) {
connection con = null;
preparedstatement ps = null;
resultset res = null;
result result = null;
try {
con = getconnection();
ps = con.preparestatement(sql);
res = ps.executequery();
result = resultsupport.toresult(res);
} catch (exception e) {
e.printstacktrace();
} finally {
try {
res.close();
ps.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
return result;
}
// 运行有结果集,有参数的sql语句
public static result runselectsql(string sql, object[] params) {
connection con = null;
preparedstatement ps = null;
resultset res = null;
result result = null;
try {
con = getconnection();
ps = con.preparestatement(sql);
for (int i = 0; i ps.setobject(i + 1, params[i]);
}
res = ps.executequery();
result = resultsupport.toresult(res);
} catch (exception e) {
e.printstacktrace();
} finally {
try {
res.close();
ps.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
return result;
}
// 运行无结果集,无参数的sql语句
public static boolean runupdatesql(string sql) {
connection con = null;
preparedstatement ps = null;
try {
con = getconnection();
ps = con.preparestatement(sql);
ps.executeupdate();
return true;
} catch (exception e) {
e.printstacktrace();
return false;
} finally {
try {
ps.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
// 运行无结果集,有参数的sql语句
public static boolean runupdatesql(string sql, object[] params) {
connection con = null;
preparedstatement ps = null;
try {
con = getconnection();
ps = con.preparestatement(sql);
for (int i = 0; i ps.setobject(i + 1, params[i]);
}
ps.executeupdate();
return true;
} catch (exception e) {
e.printstacktrace();
return false;
} finally {
try {
ps.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
/**************************************************** 执行存储过程语句 *********************************************************/
// 无结果集,无参数的存储过程
public static boolean runupdatebyproc(string procname) {
connection con = null;
callablestatement cs = null;
try {
con = getconnection();
string proc = string.format({call %s()}, procname);
cs = con.preparecall(proc);
return cs.executeupdate() > 0;
} catch (exception e) {
e.printstacktrace();
} finally {
try {
cs.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
return false;
}
// 无结果集,有参数的存储过程
public static boolean runprocupdate(string procname, object[] params) {
connection con = null;
callablestatement cs = null;
try {
con = getconnection();
string proc = {call + procname + (;
for (int i = 0; i proc += ?,;
}
proc = proc.substring(0, proc.length() - 1) + )};
cs = con.preparecall(proc);
for (int i = 0; i // 说明是输入参数
if (params[i] != null) {
cs.setobject(i + 1, params[i]);
}
// 否则输出参数,就要注册
else {
// 第一个为位置,第二个为类型
cs.registeroutparameter(i + 1, java.sql.types.varchar);
}
}
cs.executeupdate();// 只是执行了存储过程,但是还没有把执行赋给输出参数
for (int i = 0; i if (params[i] == null) { // 说明是输出参数
params[i] = cs.getobject(i + 1);
}
}
return true;
} catch (exception e) {
e.printstacktrace();
return false;
} finally {
try {
cs.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
// 有结果集,无参数的存储过程
public static result runselectbyproc(string procname) {
connection con = null;
resultset res = null;
result result = null;
callablestatement cs = null;
try {
con = getconnection();
string proc = string.format({call %s}, procname);
cs = con.preparecall(proc);
res = cs.executequery();
result = resultsupport.toresult(res);
} catch (exception e) {
e.printstacktrace();
} finally {
try {
res.close();
cs.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
return result;
}
// 有结果集,有参数的存储过程
public static result runselectbyproc(string procname, object[] params) {
connection con = null;
preparedstatement ps = null;
resultset res = null;
result result = null;
callablestatement cs = null;
try {
con = getconnection();
string proc = {call + procname + (;
for (int i = 0; i proc += ?,;
}
proc = proc.substring(0, proc.length() - 1) + )};
cs = con.preparecall(proc);
for (int i = 0; i if (params[i] != null)
{
cs.setobject(i + 1, params[i]);
} else
{
cs.registeroutparameter(i + 1, java.sql.types.varchar);
}
}
res = cs.executequery();
result = resultsupport.toresult(res);
for (int i = 0; i if (params[i] == null)
{
params[i] = cs.getobject(i + 1);
}
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
cs.close();
con.close();
} catch (exception e) {
e.printstacktrace();
}
}
return result;
}
}
