小弟菜鸟我初学jsp,最近做了一个小小的系统们,但是问题却出现不少,我是使用jsp+javabean+jdbc结构的,连接数据库的类我是这样编写的:
package util;import javax.servlet.http.*;
import java.sql.*;
public class Dbcon implements HttpSessionBindingListener{
public void valueBound(HttpSessionBindingEvent arg0) {
// 当变量加入Session时执行此函数
} public void valueUnbound(HttpSessionBindingEvent arg0) {
// Session变量关闭时执行此函数
}
private Connection con=null;
private Statement sta=null;
public Dbcon() {
Bulidconnection();
} private void Bulidconnection() {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();//加载驱动程序
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookStore";
String user="sa";
String password="123";
con=DriverManager.getConnection(url,user,password);//连接数据库
}
catch(Exception e){
System.out.println(e.toString());
}
}
public Connection getconnection(){
if(con==null)//如果con为null重新连接
Bulidconnection();
return con;
}
public ResultSet executequery(String sql){
ResultSet rs=null;
try{
sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sta.executeQuery(sql);//执行查询sql语句,返回一个结果集对象
}catch(SQLException ex){
System.out.println(ex.toString());
}
return rs;
}
public int executeupdate(String sql){
int rs=0;
try{
sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sta.executeUpdate(sql);//执行插入,修改,删除sql语句,返回值是受到此次影响的记录条数(整型)
}
catch(SQLException ex){
System.out.println(ex.toString());
}
return rs;
}
public void close(){
try{
con.close();//关闭con
sta.close();//关闭sta
con=null;
}
catch(SQLException ex){
System.out.println(ex.toString());
}
}
}
其他要使用数据库的类都是集成了这个类,集成这个类的方法进行数据库操作,但是第一次连接数据库没有问题,可以运行,但是多连接几次就出问题了。出现了java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Software caused connection abort: socket write error
java.lang.NullPointerException 两个异常。我的头都给搞到了,找不到解决的方法,烦请各位高手指点迷津万分感谢。
package util;import javax.servlet.http.*;
import java.sql.*;
public class Dbcon implements HttpSessionBindingListener{
public void valueBound(HttpSessionBindingEvent arg0) {
// 当变量加入Session时执行此函数
} public void valueUnbound(HttpSessionBindingEvent arg0) {
// Session变量关闭时执行此函数
}
private Connection con=null;
private Statement sta=null;
public Dbcon() {
Bulidconnection();
} private void Bulidconnection() {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();//加载驱动程序
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookStore";
String user="sa";
String password="123";
con=DriverManager.getConnection(url,user,password);//连接数据库
}
catch(Exception e){
System.out.println(e.toString());
}
}
public Connection getconnection(){
if(con==null)//如果con为null重新连接
Bulidconnection();
return con;
}
public ResultSet executequery(String sql){
ResultSet rs=null;
try{
sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sta.executeQuery(sql);//执行查询sql语句,返回一个结果集对象
}catch(SQLException ex){
System.out.println(ex.toString());
}
return rs;
}
public int executeupdate(String sql){
int rs=0;
try{
sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sta.executeUpdate(sql);//执行插入,修改,删除sql语句,返回值是受到此次影响的记录条数(整型)
}
catch(SQLException ex){
System.out.println(ex.toString());
}
return rs;
}
public void close(){
try{
con.close();//关闭con
sta.close();//关闭sta
con=null;
}
catch(SQLException ex){
System.out.println(ex.toString());
}
}
}
其他要使用数据库的类都是集成了这个类,集成这个类的方法进行数据库操作,但是第一次连接数据库没有问题,可以运行,但是多连接几次就出问题了。出现了java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Software caused connection abort: socket write error
java.lang.NullPointerException 两个异常。我的头都给搞到了,找不到解决的方法,烦请各位高手指点迷津万分感谢。
解决方案 »
- Eclipes打jar包遇到的问题
- java中的字符串截取
- 请教有关IO流的一个问题
- wiki是什么意思
- 求一个原创的有源码的JAVA制作的XML转换小工具(报酬具体谈)
- java.sql.Timestamp对象 如何插入数据库中的日期字段中
- javax.servlet找不到,我用的是JDK1。3,是不是没有提供呢?
- 请问如何随机生成一个String型变量?
- 如何用jdbc或jdbc-odbc连接Sybase数据库(syetem 11)
- 刚才写代码犯了一个很典型的错误,大家也看看输出什么
- 信息发送问题
- 刚学习了偻不夜老师的一本java基础课程,请前辈推荐一本重点是强调面向对象的java书,不胜感激!
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};Server=127.0.0.1;uid=sa;pwd=123456;Database=TestJsp");你在cmd下面打telnet localhost 1433 估计也会链接不上,我也一样,我打了SP4的补丁,可查询分析器还是能连接,不知道是否跟楼主一样
try{ con.close();//关闭con
sta.close();//关闭sta
con=null; }
catch(SQLException ex){
System.out.println(ex.toString());
}
是否在程序中有所体现
SYAND2004 同志所问,是否在程序中有所体现。我都没有调用过这个close()方法哦,其他类只是继承了数据库连接类进行数据库操作,没有调用这个方法关闭数据连接。
执行SQL语句时出现的问题没跟一下吗在Debug下
我刚才做一个跟你差不多的例子
没有出现你的错误
最好用oracle吧
rs=sta.executeQuery(sql);//执行查询sql语句,返回一个结果集对象
关注