【问题标题】:connecting SQL Server database to Java将 SQL Server 数据库连接到 Java
【发布时间】:2014-12-18 15:42:16
【问题描述】:

嗯,我的项目没有使用任何 IDE。 整个编码都是使用 Textpad 完成的。 所以我需要帮助将 sql server 数据库与我的项目连接起来。 这是编写数据库连接业务逻辑的 bean 类。 我已经安装了 SQL 服务器并使用 Windows 身份验证创建了一个名为“vt”和 m 的数据库。 我什至为数据库创建了 dsn,即 vtdsn。但仍然没有找到异常。 请帮忙。 M卡在这里。 早些时候,当我将 MS Access 用于数据库时,它工作正常。 但是在使用 SQL Server 进行数据库连接时我需要做哪些更改

package  ankit;

import  java.sql.*;

public class RegisterBean {

    private Connection con;
    private PreparedStatement pst;
    private ResultSet rs;
    private String myfirstname, mylastname, myemail, mypassword, dateofbirth, gender, college, address;

    //code for setter and getter method. removed to shorten the code//
    public RegisterBean() {
        System.out.println("Default constructor  of RegisterBean is called");
    }

    public void makeConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:odbc:vtdsn");
        } catch (Exception e) {
            System.out.println("Error in making connection ");
            e.printStackTrace();
        }
    }

    public boolean checkRegistration(String fN, String lN, String email, String pwd, String dob, String gender, String coll, String addr) {
        boolean flag;
        makeConnection();

        try {
            pst = con.prepareStatement("insert into studentdetail values(?,?,?,?,?,?,?,?)");
            pst.setString(1, fN);
            pst.setString(2, lN);
            pst.setString(3, email);
            pst.setString(4, pwd);
            pst.setString(5, dob);
            pst.setString(6, gender);
            pst.setString(7, coll);
            pst.setString(8, addr);

            int i = pst.executeUpdate();
            System.out.println(i);

            if (i >= 1) {
                flag = true;
            } else {
                flag = false;
            }
        } catch (Exception e) {
            flag = false;
            e.printStackTrace();
        }

        return flag;
    }
}

将驱动程序添加到我的 java bean 类文件所在的 Tomcat 中的 classes 文件夹后 并将驱动程序添加到 jre/lib 和 jre/lib/ext 文件夹中。 现在出现这个错误

Error in making connection
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost/S
QLEXPRESS/Databases/vt:1433;
        at java.sql.DriverManager.getConnection(DriverManager.java:604)
        at java.sql.DriverManager.getConnection(DriverManager.java:243)
        at ankit.RegisterBean.makeConnection(RegisterBean.java:113)
        at ankit.RegisterBean.checkRegistration(RegisterBean.java:124)
        at org.apache.jsp.components.jsp.RegisterDataBase_jsp._jspService(Regist
erDataBase_jsp.java:117)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
90)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:123)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin
t.java:1852)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
        at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
        at ankit.RegisterBean.checkRegistration(RegisterBean.java:127)
        at org.apache.jsp.components.jsp.RegisterDataBase_jsp._jspService(Regist
erDataBase_jsp.java:117)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
90)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:123)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin
t.java:1852)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
        at java.lang.Thread.run(Thread.java:722)
false

已解决: 解决我的问题。

我所做的只是下载了 sqljdbc4 驱动程序并将驱动程序粘贴到 TOMCAT lib 文件夹中。 (注意:下载驱动程序后,将其解压到某个地方,然后您会在该解压文件夹中找到原始驱动程序。将该文件粘贴到 tomcat lib 文件夹中。这是我做错了,我只是将下载的 rar 文件从互联网,这就是tomcat找不到驱动程序的原因)。 将驱动程序粘贴到 lib 文件夹后,只需将类路径设置为该驱动程序即可。

【问题讨论】:

  • 请发布堆栈跟踪,您是否将驱动程序包含在您的项目中?
  • 查看更新后的帖子请我在 tomcat 中添加了堆栈跟踪
  • 您可能没有下载并安装驱动程序..
  • 其实我很困惑把驱动放在哪里??有人告诉我把它放在你的类文件的确切位置,有人告诉我把它复制到 java/jdkx.x.x/jre/lib 和 java/jdkx.x.x/jre/lib/ext 文件夹中

标签: java sql-server jsp


【解决方案1】:

您必须为 SQLServer 导入驱动程序 jar 文件,然后像这样编辑代码:

public void makeConnection() {
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        con = DriverManager.getConnection("jdbc:sqlserver://localhost:3306/DBName", "DBUsername", "DBPassword");
    } catch (Exception e) {
        System.out.println("Error in making connection ");
        e.printStackTrace();
    }
}

【讨论】:

  • 如果 m 在 SQL server 中使用 windows 身份验证会怎样?并且 m 仍然出现上述错误没有找到合适的驱动程序
  • 那么你的网址是jdbc:sqlserver://localhost;integratedSecurity=true; 在此处阅读更多信息link
  • 其实tomcat找不到连接驱动。我实际上需要在哪里粘贴驱动程序??
  • C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar 将驱动程序放在这个类路径中。 Here了解更多
【解决方案2】:
SQLException: No suitable driver found

您需要安装适当的驱动程序。

创建一个 lib 目录,将所有的 jar 放在那里(特别是 jdbc 连接器http://dev.mysql.com/downloads/connector/j/

然后将其添加到您的课程路径中:http://www.ibm.com/developerworks/library/j-classpath-windows/Good lucky

取自此线程:ClassNotFoundException for com.mysql.jdbc.Driver -not using an IDE

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多