站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题请高手帮我看下数据库哪里出了问题,在线等 ... ...

请高手帮我看下数据库哪里出了问题,在线等 ... ...

摘要: 请高手帮我看下数据库哪里出了问题,在线等 ... ...


请高手帮我看下数据库哪里出了问题,我从来没遇到过这种情况,我数据库的包是jtds包,
以下是我的数据库的封装类:急切盼望你的回复:
package pro;

import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;

public class DBBase
{
private Connection conn = null;
private PreparedStatement pStmt = null;
private ResultSet rs = null;
public DBBase()
{
}

protected Connection getConnection() throws Exception
{
Properties prop = new Properties ();
prop.put("Username","sa");
prop.put("Password","sa");
Driver driver =(Driver) Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
conn = driver.connect("jdbc:jtds:sqlserver://localhost:1433/Chat;charset=CP936",prop);
return conn;
}

protected void prepareStatement(String sql) throws Exception
{
pStmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
}

protected void addParameter(int index, String value) throws Exception
{
pStmt.setString(index, value);
}

protected void addParameter(int index, int value) throws Exception
{
pStmt.setInt(index, value);
}

protected ResultSet getResultSet()
{
return this.rs;
}

protected void executeQuery() throws Exception
{
rs = pStmt.executeQuery();
}

protected int executeUpdate() throws Exception
{
return pStmt.executeUpdate();
}

public void close()
{
try
{
if (rs != null)
rs.close();
if (pStmt != null)
pStmt.close();
if (conn != null)
conn.close();
}
catch (Exception ex)
{
}
}
}
然后我要使用到数据库时就继承这个封装类:
package pro;

import java.sql.ResultSet;

public class UserManager extends DBBase
{
public UserManager()
{
}

public boolean addUser()
{
boolean result = false;
UserForm userForm = new UserForm();
try
{
getConnection();
prepareStatement("insert into user (userName,userNameAgain,userPwd,userPwdAgain,userNiChen,userSex,userBrithday,userSafe,userSafeAgain,userEmail,userWrite,userState) values (?,?,?,?,?,?,?,?,?,?,?.?)");
addParameter(1, userForm.getUserName());
addParameter(2, userForm.getUserNameAgain());
addParameter(3, userForm.getUserPwd());
addParameter(4, userForm.getUserPwdAgain());
addParameter(5, userForm.getUserNiChen());
addParameter(6, userForm.getUserSex());
addParameter(7,
userForm.getUserYear() + "-" + userForm.getUserMonth()
+ "-" + userForm.getUserDay());
addParameter(8, userForm.getUserSafe());
addParameter(9, userForm.getUserSafeAgain());
addParameter(10, userForm.getUserEmail());
addParameter(11, userForm.getUserWrite());
addParameter(12, 0);
result = executeUpdate() > 0;
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
close();
}
return result;
}
}
然后这个方法写完了就一个action中调用上面类的addUser()这个方法,其中userForm是一个保存user信息的封装类,userForm类的比如getUserName或getUserNameAgain等等是根据MVC的思想把用户提交的信息保存在了里面,action是一个模型,但是我运行会报一个我从来没遇到过的错,以下是详细信息,本人在线等:
java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:611)

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:331)

at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)

at pro.DBBase.getConnection(DBBase.java:24)

at pro.UserManager.addUser(UserManager.java:17)

at pro.LoginAction.execute(LoginAction.java:80)

at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)

at java.lang.Thread.run(Thread.java:534)

Caused by: java.io.IOException: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

at net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1894)

at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:584)

... 40 more






我先UP下,以上的信息可能是比较长,但是我希望大家本着一颗助人乃快乐之本的心帮我一下.


可真是高手不出招,菜鸟来混分啊


看了你的异常提示,应该是你的jdk的问题!


你的参数中参数名字错了:
* @param info a list of arbitrary string tag/value pairs as
* connection arguments; normally at least a "user" and
* "password" property should be included


Properties prop = new Properties();
prop.put("user", "sa");
prop.put("password", "ppp");


谢谢楼上的大哥


↑返回目录
前一篇: 600分,关于Sun Application Server的jms访问!
后一篇: 关于JNDI联系J2EE原理的问题,问题内详