简体   繁体   中英

connecting SQL Server database to Java

Well m not using any IDE for my project. The whole coding has been done using Textpad. So I need help connecting sql server database with my project. This is bean class where business logic for database connectivity is written. I have installed SQL server and created a database named as "vt" and m using windows authentication. I have even created the dsn for the database namely vtdsn. but still m getting class not found exception. Please help. M stucked here. Earlier it was working fine when I was using MS Access for database. But what changes I need to do while using SQL server for database connectivity

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;
    }
}

After adding the driver into the classes folder in Tomcat where my java bean class file are located and adding the driver into jre/lib and jre/lib/ext folder. Now am getting this error

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

Solved: Solution to my problem.

What I did is just downloaded the sqljdbc4 driver and paste the driver in the TOMCAT lib folder. (Note: after downloading the driver extract it somewhere and then you will find the original driver in that extracted folder. Paste that file in the tomcat lib folder. This is what I was doing wrong, I was simply pasting the downloaded rar file from the internet and that's why tomcat was unable to find the driver). After pasting the driver in the lib folder just set the classpath to that driver and you are done.

You have to import the driver jar file for SQLServer and then edit the code like this:

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();
    }
}
SQLException: No suitable driver found

You need to put the appropriate driver in place.

Create a lib directory, put all your jars there (specially the jdbc connector http://dev.mysql.com/downloads/connector/j/ )

then add it to your class path: http://www.ibm.com/developerworks/library/j-classpath-windows/ Good luck

taken from this thread: ClassNotFoundException for com.mysql.jdbc.Driver -not using an IDE

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM