JSP+SQLserver2000设计的系统 为什么连不上数据库 有连接数据库代码

minipig520 2010-06-03 09:04:26
下面的连数据库的代码 为什么连接不上 急求高手指点..........哪错了....
包 环境变量 补丁都没问题




import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class sqlBean {

public Connection conn;
public ResultSet rs;
private String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=ClassDB";

public void createConn(){
try {
Class.forName(DatabaseDriver);
conn=DriverManager.getConnection(url,"limq","123");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("连接错误!"+e);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("Cl`ssforName错误!"+e);
}
}

public int executeInsert(String sql){
int num=0;
try{
createConn();
Statement stmt=conn.createStatement( );
num=stmt.executeUpdate(sql);
} catch(SQLException ex){
System.err.println("执行插入有错误:"+ex.getMessage() );
System.out.print("执行插入有错误:"+ex.getMessage());//输出到客户端
}
CloseDataBase();
return num;
}

public ResultSet executeQuery(String sql){
rs=null;
try{
createConn();
Statement stmt=conn.createStatement( );
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("执行查询有错误:"+ex.getMessage() );
System.out.print("执行查询有错误:"+ex.getMessage()); //输出到客户端
}
CloseDataBase();
return rs;
}

public int executeDelete(String sql){
createConn();
int num=0;
try{
Statement stmt=conn.createStatement( );
num=stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println("执行删除有错误:"+ex.getMessage() );
System.out.print("执行删除有错误:"+ex.getMessage()); //输出到客户端
}
CloseDataBase();
return num;
}

public void CloseDataBase(){
try{
conn.close();
}
catch(Exception end){
System.err.println("执行关闭Connection对象有错误:"+end.getMessage( ) );
System.out.print("执行执行关闭Connection对象有错误:有错误:"+end.getMessage()); //输出到客户端
}
}
}
...全文
355 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
筱周 2010-06-04
  • 打赏
  • 举报
回复
private String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
这句话写成 String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"试试!
把private取掉!
或者把这句话写成private static String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
minipig520 2010-06-04
  • 打赏
  • 举报
回复
错误 就是驱动加载不成功~~~ 悲剧~~~~~
yuxiaoping225170 2010-06-04
  • 打赏
  • 举报
回复
你倒是把错误贴出来啊 没错怎么晓得问题出在哪里??
cw550284 2010-06-04
  • 打赏
  • 举报
回复
1.SqlServer补丁打了吗?
2.防火墙问题?
minipig520 2010-06-04
  • 打赏
  • 举报
回复
控制台输出错误如下:.


连接错误!java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
连接错误!java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.NullPointerExceptionjava.lang.NullPointerException
jdjf020826 2010-06-04
  • 打赏
  • 举报
回复
工具包
static {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}

public static Connection getConnection() {
Connection con = null;
try {
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mj";
String usr = "sa";
String pwd = "123456";
con = DriverManager.getConnection(url, usr, pwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}

程序连接
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = JDBCUtil.getConnection();
// 3.获取数据库操作对象
stmt = con.createStatement();
// 4.操作数据库(SQL)
String sql = "select name,pwd from mj_pwd";
rs = stmt.executeQuery(sql);
while (rs.next()) {
if ("确定".equals(str)) {
if (s1.equals(rs.getString(1))
&& s2.equals(rs.getString(2))) {
//jl1.setText("登录正确");
jf.dispose();
new Main();
} else {
//jl1.setText("登录失败");
new Index_error();
}
} else if ("清空".equals(str)) {
jtf1.setText("");
jtf2.setText("");
jl1.setText("欢迎登录");
}
}

} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.close(rs, stmt, con);
}
看连接的部分,我的是可以用看是不是少了什么
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
goodlucktomyself 2010-06-04
  • 打赏
  • 举报
回复
看下你的驱动包(.jar),有没有导进来!
一般要这三个:
msbase.jar;
mssqlserver.jar;
msutil.jar。
izard999 2010-06-04
  • 打赏
  • 举报
回复
错误应该出在这两行
Class.forName(DatabaseDriver);
conn=DriverManager.getConnection(url,"limq","123");

要么就是驱动没加载成功, 加载成功的话,就应该是数据库的事了!
服务是否开启,用户名密码都检查过了吗?
izard999 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 izard999 的回复:]
conn=DriverManager.getConnection(url,"limq","123");
顺序, 用户名,密码,连接字符串!
这里搞错了嘛.! - -!
[/Quote]
很久没用JDBC,,更正下自己的错误.! 不好意思哥们!
cube_chen 2010-06-04
  • 打赏
  • 举报
回复
建议把你的错误直接发上来,这样才能定位问题。
pgwcumt 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xinlovexian10 的回复:]

估计你没有升级sqlserver2000的补丁包
[/Quote]

请确定数据库没有问题!
androidmvc 2010-06-04
  • 打赏
  • 举报
回复
不过还有就是 你那个关闭的方法 应该先判断 rs 的 。。。。。。

判断之后 在看 conn。。。。。。
androidmvc 2010-06-04
  • 打赏
  • 举报
回复
楼主 你写的方法 是没有错 我刚看过了。。
但是 你的

Class.forName(DatabaseDriver);

会已启动就加载么??

我建议你下载 构造函数里试一下。。。。。
其他的我很确信没有错。。。
sz348946605 2010-06-04
  • 打赏
  • 举报
回复
private String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=ClassDB";
建议把这两行改为:
private String DatabaseDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://localhost:1433;databaseName=ClassDB";
pptian 2010-06-04
  • 打赏
  • 举报
回复
跟踪调试啊,一步一步的走,总会找到问题所在的
gao512008 2010-06-04
  • 打赏
  • 举报
回复
报错信息贴出来看看
smi_ling 2010-06-04
  • 打赏
  • 举报
回复
好像Class.forName()这部分写在static{}块中试试!!

xinlovexian10 2010-06-03
  • 打赏
  • 举报
回复
估计你没有升级sqlserver2000的补丁包
izard999 2010-06-03
  • 打赏
  • 举报
回复
conn=DriverManager.getConnection(url,"limq","123");
顺序, 用户名,密码,连接字符串!
这里搞错了嘛.! - -!

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧