1.使用JDBC-ODBC桥接器方式与数据库建立连接,需要创建ODBC数据源,建立JDBC-ODBC桥接器,与ODBC数据源指定的数据库建立连接这三个步骤。
2.创建ODBC数据源
(1)添加、修改或删除数据源:
打开控制面板中的管理工具,列表中有个ODBC数据源,双击打开,下面展示如何在windows 7下打开那个ODBC数据源,在用户DSN里,其中可以添加新的数据源,重新配置已有的数据源,删除已有的数据源。
点击开始——控制面板,出现下图:
打开上图的箭头的系统和安全,出现下图:
再打开管理工具,出现下面图片的列表,看到了数据源(ODBC)的选项:
双击打开上图的箭头的数据源(ODBC),出现下图的ODBC数据源管理器:
点击添加按钮,出现下图,选择您想为其安装数据源的驱动程序:
在这里我们选择SQL Server数据驱动程序,点击完成按钮:
点击下一步:
在这里我没有在SQL Server数据库上新建一个其它登录名和SQL Server验证的,不过这样安全性会差点,也可以选择登录ID和密码的SQL Server验证,但是要求你在SQL Server里的安全性下新建个登录名,并且连接映射到你所需要的数据库,这里选择默认或者你设置好的登录名和密码,点击下一步:
这里要更改默认数据库,即你后来编写jsp代码所需要的数据库,点击下一步:
点击完成按钮:
点击测试数据源测试下是否成功:
这样就创建好了ODBC数据源。
3.建立JDBC-ODBC桥接器:
(1)用Class这个类,调用它的静态方法forName加载sun.jdbc.odbc包中的JdbcOdbcDriver类来建立JDBC-ODBC桥接器,建立连接器时可能会发生异常,因此可以捕获这个异常,建立桥接器的代码如下:
//加载驱动
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
4.与ODBC数据源指定的数据库建立连接:
(1)使用java.sql包中的Connection类声明一个对象,然后使用类DriverManager的静态方法getConnection()创建这个连接对象:
//与指定的数据源建立连接
try {
Connection con=DriverManager.getConnection("jdbc:odbc:数据源名字", "登录名", "密码");//用登录名和密码的SQL Server验证
Connection con=DriverManager.getConnection("jdbc:odbc:数据源名字");//用默认的windows NT验证
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这样就与相应的数据源建立了连接,就可以通过SQL语句与该数据源所指定的数据库中的表交互信息,对表中的记录进行增删改查。
5.接下来给个servlet的测试连接例子:
(1)打开MyEclipse软件,新建一个工程login,新建一个包,名为tom.servlet,在这个包下新建一个名为ODBCTest的类,继承于HttpServlet这个父类,实现doGet和doPost方法,具体源代码如下,其中与指定的数据源连接时有一种是需要登录名和密码的方法来连接,一种不需要登录名和密码的方法,不多说,代码附上:
package tom.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* ODBC数据源测试
*
*/
public class ODBCTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//加载驱动
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//与指定的数据源建立连接
try {
Connection con1=DriverManager.getConnection("jdbc:odbc:mydb", "xg", "123456");
System.out.println(con1.toString());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
注:重要的事情别忘记了,因为我写的代码是servlet的,所以必须要配置这个servlet,打开WebRoot目录下的WEB-INF中的web.xml文件,接下来附上那个web.xml文件的代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>odbcTest</servlet-name>
<servlet-class>tom.servlet.ODBCTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>odbcTest</servlet-name>
<url-pattern>/ha</url-pattern>
</servlet-mapping>
</web-app>
servelt知识这里就不多讲了,一个servlet必须有
<servlet>
<servlet-name>odbcTest</servlet-name>
<servlet-class>tom.servlet.ODBCTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>odbcTest</servlet-name>
<url-pattern>/ha</url-pattern>
</servlet-mapping>
其中两个servlet-name标记的名字一样,servlet-class标记里是包名.类名,那个url-pattern里的是输入地址栏访问网页时要用到的。
然后部署该项目,打开tomcat服务器:
部署完项目,开启完服务器,打开下图箭头指定的那个图标:
接下来输入地址栏:http://localhost:8083/login/ha 其中8083是tomcat端口号,login是项目名,ha是配置servlet时在web.xml里面url-pattern的内容: