Jsp之建立JDBC-ODBC桥接器连接数据库

来源:互联网 发布:淘宝运营培训课件2016 编辑:程序博客网 时间:2024/05/21 17:23

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 blocke.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 blocke.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 {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//加载驱动try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}//与指定的数据源建立连接try {Connection con1=DriverManager.getConnection("jdbc:odbc:mydb", "xg", "123456");System.out.println(con1.toString());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}@Overrideprotected 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的内容:


点击红色箭头指定的图标,即三角形,运行下,看下控制台有没有打印出一条连接成功的信息:
这样就建立起了JDBC-ODBC桥接器。

6.现在用这个JDBC-ODBC桥接器连接数据源来访问数据库的少了,大部分都是直接加载驱动写java代码连接数据库的,不过这里还要注意一点:
有时候你会发现建立不起那个JDBC-ODBC桥接器,如果你的jdk版本是1.8的话,估计会报找不到类的错误,即这行代码出错:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");因为jdk1.8已经取消JDBC-ODBC这种连接了。

7.写得不好,请见谅,如果有什么错误的话请指出,本人菜鸟一枚,请大神多多指教,谢谢!

0 0
原创粉丝点击