连接数据库 错误-我的sql连接有问题吗?用的是Dwr!看下面代码以及出的问题,请大神们帮我呀!

问题描述

我的sql连接有问题吗?用的是Dwr!看下面代码以及出的问题,请大神们帮我呀!

我的DBManager!用于连接数据库!
package com.qhit.util;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBManager {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
PreparedStatement ps = null;
DataSource ds = null;
String jndiName = "java:comp/env/jdbc/bk";
private static DBManager db;

private DBManager() throws NamingException {

    Context context = new InitialContext();
    ds = (DataSource) context.lookup(jndiName);

}

public static DBManager getDBManager() throws NamingException {
    if (db != null) {
        return db;
    } else {
        db = new DBManager();
    }
    return db;
}

public int executeUpdate(String sql) throws SQLException {
    conn = ds.getConnection();
    st = conn.createStatement();

    return st.executeUpdate(sql);
}

public ResultSet executeQuery(String sql) throws SQLException {
    conn = ds.getConnection();
    st = conn.createStatement();
    return st.executeQuery(sql);
}

public int excuteUpdateByPrepareStatement(String sql, Object[] objs)
        throws SQLException {
    ps = conn.prepareStatement(sql);
    for (int i = 1; i <= objs.length; i++) {
        ps.setObject(i, objs[i - 1]);

    }
    return ps.executeUpdate();
}

public void close() {
    try {
        if (rs != null) {
            if (!rs.isClosed()) {
                rs.close();
            }
        }
        if (st != null) {
            if (!st.isClosed()) {
                st.close();
            }
        }
        if (ps != null) {
            if (!ps.isClosed()) {
                ps.close();
            }

        }
        if (conn != null) {
            if (!conn.isClosed()) {
                conn.close();
            }
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

}

我的dao===========

package com.qhit.dao;

import java.sql.SQLException;

import javax.naming.NamingException;

import com.qhit.entity.UserInfo;
import com.qhit.util.DBManager;

public class userDao {
public boolean userNameExist(String uname) {
boolean result = false;
try {
DBManager db = DBManager.getDBManager();
String sql = "select uid from userInfo where uname='" + uname + "'";
result = db.executeQuery(sql).next();
db.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}

public void saveUserInfo(UserInfo ui){
    try {
        DBManager dbManager=DBManager.getDBManager();
        String sql="insert into userInfo(uname, trueName, upass, usex, uphone,uoicq, uphoto, usignName, uemail, uaddress) values(?,?,?,?,?,?,?,?,?,?)";
        Object[] objs = new Object[10];
            objs[0]=ui.getUname();
            objs[1]=ui.getTrueName();
            objs[2]=ui.getUpass();
            objs[3]=ui.isUsex();
            objs[4]=ui.getUphone();
            objs[5]=ui.getUoicq();
            objs[6]=ui.getUphoto();
            objs[7]=ui.getUsignName();
            objs[8]=ui.getUemail();
            objs[9]=ui.getUaddress();
        dbManager.excuteUpdateByPrepareStatement(sql, objs);
        dbManager.close();
    } catch (NamingException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}

我的Dwr

package com.qhit.dwr;

import com.qhit.dao.userDao;
import com.qhit.entity.UserInfo;

public class userInfoDwr {
userDao udao = new userDao();
public String saveUserInfo(UserInfo ui){
String name=ui.getUname();
if(name=="" || name.length()>20 || ui.getUname().length()<5){
return "您的用户名不是5-20位";
}
if (udao.userNameExist(name)) {

return "用户名已存在,不可用!";
}else{
udao.saveUserInfo(ui);
}
return ui.getUname()+"用户名可用";
}

}

我的js

function checkUp(){
var userinfo={

uname:DWRUtil.getValue('txtname')
};
UserInfoDWR.saveUserInfo(userinfo,function(data){
alert(data);
});

}

Myeclipse报的错误是说我的Connection 已经关闭!

java.sql.SQLException: Connection is closed.

但是如果我将我的dao里面的第一个连接不关闭的时候,在页面输入英文和汉字都好着!可一旦输入汉字的时候,就会抛出一个Error错误!

所以请大神们帮我看下我的DBManager哪里有错误!因为我的DBManager是作为工具类写的,之前用的时候也报过错!报错也是和这次类似!也是同样的位置的问题!

再次谢谢大神的帮助!

解决方案

这个你单步调试一下看看具体信息吧

时间: 2024-10-08 03:17:30

连接数据库 错误-我的sql连接有问题吗?用的是Dwr!看下面代码以及出的问题,请大神们帮我呀!的相关文章

servlet- 出现下面错误怎么解决啊 ,求方法,请大神们帮我看看!

问题描述 出现下面错误怎么解决啊 ,求方法,请大神们帮我看看! if(agent.contains("MSIE")){ 这句报错, 错误提示The method contains(CharSequence) from the type String refers to the missing type CharSequence package cn.itcast.response; import java.io.FileInputStream; import java.io.IOExc

服务器-出现下面错误怎么解决啊 ,求方法,请大神们帮我看看!

问题描述 出现下面错误怎么解决啊 ,求方法,请大神们帮我看看! if(agent.contains("MSIE")){ 这句报错, 错误提示The method contains(CharSequence) from the type String refers to the missing type CharSequence package cn.itcast.response; import java.io.FileInputStream; import java.io.IOExc

接手修改一个终端页面登陆,连接服务器,里面的功能火狐上能用,谷歌上不能用,请大神分析指点!

问题描述 接手修改一个终端页面登陆,连接服务器,里面的功能火狐上能用,谷歌上不能用,请大神分析指点! 如下图1一个登陆界面 登陆进去后,如图2界面 在输入主机地址(如192.168.11.14)后点击连接,就会出现如下图 点击切换的话就是变成有绑定字样(对比下图就知道如何改变了),这是在火狐上能正常使用的,但在谷歌上的话就不行了,会出现如下图情况 以下是页面部分代码 解决方案 逻辑代码按浏览器不同进行分支,比如请求中,火狐浏览器Accept-Encoding的值为"gzip, deflate&q

JavaWeb报SQL错误,一直没有得到解决,请大神帮忙

问题描述 JavaWeb报SQL错误,一直没有得到解决,请大神帮忙 错误如下: java.lang.RuntimeException: java.sql.SQLException: Cannot set cid: incompatible types. Query: select * from t_book where 1=1 and cid = ? order by orderBy limit ?,? Parameters: [922E6E2DB04143D39C9DDB26365B3EE8,

sql语句报错,请大神看下哪里的错误

问题描述 sql语句报错,请大神看下哪里的错误 错误代码: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE ) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8' at line 15 C

mysql-eclipseEE连接My SQL出现问题,哪位大神可以帮我看看*^__^*,非常感谢

问题描述 eclipseEE连接My SQL出现问题,哪位大神可以帮我看看*^__^*,非常感谢 我是想连接MySQL和server SQL数据库,一般来说是在eclipse,通过buil path,然后add external jar配置就可以了,但是我尝试了这样去配置,结果还是不行.然后呢,我有特意去配置了我的环境变量,就是通过"我的电脑--系统--设置环境变量"建立一个classpath变量,然后把驱动的路径作为其变量,但是结果还是不行.最后,我认为可能是版本的驱动问题,然后我就

java-Java 发送邮件,提示连接失败,错误如下,请大神帮帮我

问题描述 Java 发送邮件,提示连接失败,错误如下,请大神帮帮我 javax.mail.AuthenticationFailedException: failed to connect at javax.mail.Service.connect(Service.java:322) at javax.mail.Service.connect(Service.java:172) at javax.mail.Service.connect(Service.java:121) at javax.mai

net framework-asp连接oracle出问题,求大神指点

问题描述 asp连接oracle出问题,求大神指点 "/"应用程序中的服务器错误. ORA-12154: TNS: 无法解析指定的连接标识符 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.OracleClient.OracleException: ORA-12154: TNS: 无法解析指定的连接标识符 源错误: 行 70: public void execute

协议-Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教

问题描述 Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教 客户端线程:class BB1 extends Thread{ public void run() { try { System.out.println(""hahahha""); Socket client=new Socket(ipadressPORT); System.out.println(client.getPort()); mingling=&qu