注册 登录
编程论坛 J2EE论坛

千里,无理取闹再来帮帮忙!

しΟν∈→鱈 发布于 2007-01-23 14:54, 1205 次点击
db.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
db.url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Student_info
这是属性


package com.simon.db;

import java.sql.*;
import java.util.*;

public class DBConnect {

public DBConnect() {
}

public static Connection getConnection() {
ResourceBundle rb = ResourceBundle.getBundle("db");

try {
String driverName = rb.getString("db.driver");
Driver dirver = (Driver)Class.forName(driverName).newInstance();   这里是第16行
String url = rb.getString("db.url");
Connection con = DriverManager.getConnection(url);
return con;

} catch(ClassNotFoundException cnfExc) {
System.out.println(cnfExc.getMessage());
cnfExc.printStackTrace();

} catch(SQLException sqlExc) {
System.out.println(sqlExc.getMessage());
sqlExc.printStackTrace();

} catch(IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch(Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
System.out.print("afda");
return null;
}

public static void main(String[] args) throws Throwable{
Connection con = getConnection();  这是41行
//Statement stmt = con.createStatement();
}
}


com.microsoft.jdbc.sqlserver.SQLServerDriver
afdajava.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at com.simon.db.DBConnect.getConnection(DBConnect.java:16)
at com.simon.db.DBConnect.main(DBConnect.java:41)

我也看过连接数据库的那个帖子了,对了下  我的驱动没写错啊!!!
19 回复
#2
千里冰封2007-01-23 14:56
你的数据库驱动的包要放到JVM找得到的地方,比如classpath里面
或者你的应用的lib里面
#3
しΟν∈→鱈2007-01-23 14:58
哦  我知道了  我原来写的代码如:
Class.forName(sun.jdbc.odbc.JdbcOdbcDrivers")
DriverManager.getConnection("JDBC:ODBC:数据库")是用了JDBC-ODBC桥接的吧  
这个不要配数据源的是不是啊?
#4
千里冰封2007-01-23 15:08
是的
如果用的是桥接,那就要配数据源

如果是JDBC直连,那么你的MSSQL就要打SP3 以上的包,并且把你的驱动JAR文件放到classpath里面
#5
しΟν∈→鱈2007-01-23 15:08
问下 版主哦   我用JDBC-ODBC桥接驱动的话可以连上数据库  
为什么这样就不可以  还是我要去再下个驱动?
#6
千里冰封2007-01-23 15:10
因为你用桥接的话,是用SUN公司的通用驱动

可是你想直连的话,SUN公司怎么知道那些数据库是怎么实现的呢,所以就要求数据库的生产厂家提供驱动了

所以,如果用JDBC的话,就必须下载针对不同数据库的不同驱动包
#7
しΟν∈→鱈2007-01-23 15:12
又晕了   看来又要去网上搜点资料然后再下个什么驱动SP4升级包的东东。。我最怕搞这些东西了。。。

那问下我现在用JDBC桥接驱动可以嘛?

[此贴子已经被作者于2007-1-23 15:12:14编辑过]

#8
千里冰封2007-01-23 15:26
桥接当然可以,那就用SUN的驱动包

并且配好数据源,但是还是最好用JDBC直连,这样效率高,功能也强
#9
无理取闹2007-01-23 15:27
用mysql呗
#10
しΟν∈→鱈2007-01-23 15:34

完蛋了。。。
桥接有错误   那个驱动同学在打游戏  现在不能下   我郁闷哦

#11
千里冰封2007-01-23 15:50

桥接怎么会有错误呢, 是你没有配置好吧

#12
しΟν∈→鱈2007-01-23 16:06
[CODE]

桥接是没问题的  我测试了  数据连上了 可以读到数据
但是运行JSP页面  出了另一个错误:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: ', ', ' 附近有语法错误。
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.register.register_jsp._jspService(register_jsp.java:83)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: ', ', ' 附近有语法错误。
    sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
    sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
    org.apache.jsp.register.register_jsp._jspService(register_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


Apache Tomcat/5.0.28


[/CODE]
#13
支离破碎2007-01-23 16:15
SQL语法错误~~~~~
#14
千里冰封2007-01-23 16:18
呵呵,是你的SQL有语法错误,不是桥接的问题
编译器不都告诉你了么?
#15
しΟν∈→鱈2007-01-23 16:59

谢谢大家的帮忙  我写好了  
刚才的语法错误让我有点郁闷    是在INSERT结尾我加了一个分号  结果他就说错。。哎 搞死人了

#16
千里冰封2007-01-23 18:01
以后在这种细节问题上要小心

编程在这些问题上很容易出错的,心不细,是学不好编程的
#17
しΟν∈→鱈2007-01-23 19:17
以下是引用千里冰封在2007-1-23 18:01:00的发言:
以后在这种细节问题上要小心

编程在这些问题上很容易出错的,心不细,是学不好编程的

我知道了  不过那个分号是书上的问题
书上的INSERT语句就是后面有个分号的

#18
alight182007-05-04 02:15
以下是引用千里冰封在2007-1-23 15:08:00的发言:
是的
如果用的是桥接,那就要配数据源

如果是JDBC直连,那么你的MSSQL就要打SP3 以上的包,并且把你的驱动JAR文件放到classpath里面

我也遇到类似的问题了
打了Sp4包 什么叫做“你的驱动JAR文件放到classpath里面”?????? 谢谢!!!!

我遇到的异常是:
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver][SQLServer]第 1 行: '=' 附近有语法错误。
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at beans.SAUtility.isSaVaild(SAUtility.java:23)
at servlets.SALoginservlet.doPost(SALoginservlet.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

#19
千里冰封2007-05-04 09:21
我遇到的异常是:
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver][SQLServer]第 1 行: '=' 附近有语法错误。

在这里找,你的SQL语法有错误,不是你的JDBC的问题
#20
alight182007-05-07 02:35
回复:(千里冰封)我遇到的异常是:java.sql.SQLExce...
Thank U ~~~ 问题解决了
1