• 【转】JSP中数据库的一些操作


    1. JDBC驱动程序的类型 
      目前比较常见的JDBC驱动程序可分为以下四个种类: 
      (1)JDBC-ODBC桥加ODBC驱动程序 
      JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。 
      (2)本地API 
      这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。 
      (3)JDBC网络纯Java驱动程序 
      这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。 
      (4)本地协议纯Java驱动程序 
      这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。 
    据专家预计第(3)、(4)类驱动程序将成为从JDBC访问数据库的首方法。第(1)、(2)类驱动程序在直接的纯Java驱动程序还没有上市前会作为过渡方案来使用。对第(1)、(2)类驱动程序可能会有一些变种,这些变种要求有连接器,但通常这些是更加不可取的解决方案。第(3)、(4)类驱动程序提供了Java的所有优点,包括自动安装(例如,通过使用JDBC驱动程序的appletapplet来下载该驱动程序)。

    2. JDBC编程的步骤 
    1)第一步:加载驱动程序
     //jdbc-odbc驱动
     try{ 
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    }catch(ClassNotFoundException e){
     e.printStackTrace();
    }
     加载其他各种不同驱动程序的方法如下:
     //sqlserver
     Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
     //mysql
     Class.forName(“org.gjt.mm.mysql.Driver”);
     //oracle
     Class.forName(Oracle.jdbc.driver.OracleDriver);
     //Informix
     Class.forName(“com.informix.jdbc.IfxDriver”);
     //Sybase
     Class.forName(“com.sybase.jdbc2.jdbc.SybDriver”);
     //AS400
     Class.forName(“com.ibm.as400.access.AS400JDBCConnection”);
    2)第二步:将“驱动程序”传递到DriverManager,然后获得“连接”。
      DriverManager类的getConnection(String rul,String user,String password)方法用于建立与某个数据库的连接。每个JDBC驱动程序使用一个专门的JDBC URL作为自我标识的一种方法。
      JDBC URL的格式为:jdbc:<子协议名>:<子名称>,子协议与子名称和JDBC驱动程序有关。
     //建立JDBC-ODBC驱动的连接
     try{
      String url=”jdbc:odbc:myodbc”;
      Connection con=DriverManager.getConnection(url);
      //或者
      //Connection con=DriverManager.getConnection(url,user,password);;
    } catch(SQLException e){
     e.printStackTrace();
    }
    以下是连接各种不同的数据库的URL编写方法:
    //sqlserver
     DriverManger.getConnection(“jdbc:Microsoft:sqlserver://主机:端口号;DatabaseName=数据库名”,”用户名”,”密码”)
     //mysql
     DriverManger.getConnection(“jdbc:mysql://主机:端口号:数据库名”,”用户名”,”密码”)
     //oracle
     DriverManger.getConnection(“jdbc:Oracle:thin:@主机:端口号:数据库名”,”用户名”,”密码”)
     //Informix
     DriverManger.getConnection(“jdbc:informix-sqli://主机:端口号/数据库名:INFORMIXSERVER=informix服务名”,”用户名”,”密码”)
     //Sybase
     DriverManger.getConnection(“jdbc:sybase:Tds:主机:端口号/数据库名”,”用户名”,””密码)
     //AS400
     DriverManger.getConnection(“jdbc:as400://主机”,”用户名”,”密码”)
    3)第三步:创建语句,Statement、PreparedStatement或CallableStatement,并将它们用于更新数据库或执行查询。
    4)第四步:查询并返回包含有已请求数据的ResultSet,该ResuletSet是按类检索的。
    5)显示数据或根据得到的查询结果完成业务逻辑处理。
    6)第六步:最后关闭ResultSet(结果集)、Statement(语句对象)、Conection(数据库连接)。

    3. 数据库各种连接方式实例分析
    1)通过ODBC建立与数据库的连接,创建数据源的过程略掉,数据源的名称为myodbc,代码:

    <%@ page language="java" contentType="text/html; charset=GBK"%>
    <%@ page import="java.sql.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>    
        <title>通过ODBC建立连接</title>
      </head>  
      <body>
      <%
       Connection con = null;
            try {
                // 加载ODBC驱动
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                // 通过驱动管理器(DriverManager)获得连接
                con = DriverManager.getConnection("jdbc:odbc:myodbc",
                        "sa","");
                // 如果连接不成功,就会出现异常,不会执行下面这个语句
                
                out.println("<H1>");
                out.println("通过ODBC数据源连接数据库成功!");
                out.println("</H1>");
            } catch (Exception e) {// 如果出现异常,会打印堆栈里异常的信息
                e.printStackTrace();
            } finally {// 用完后,关闭连接,释放资源
                try {
                    if (con != null) // 防止出现内存泄露
                        con.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }  
       %>    
      </body>
    </html>
    

      2)通过sqlserver提供驱动程序获得连接,需要3个jar文件:msbase.jar、mssqlserver.jar、msutil.jar,设置class环境变量,或者配置到WEB中,jar文件部署,和所有的jar文件一样,想在整个WEB服务器(我指Tomcat)中使用,就拷贝到Tomcat 6.0lib目录下,若在当前WEB应用中使用,拷贝到WEB应用的WEB-INFlib目录下。代码:

    <%@ page language="java" contentType="text/html; charset=GBK"%>
    <%@ page import="java.sql.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>    
        <title>通过Sqlserver純驱动程序建立连接</title>
      </head>  
      <body>
      <%
       Connection con = null;
        try {
            // 加载SQLSERVER的驱动程序            
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            // 通过驱动来获得一个连接
            con = DriverManager.getConnection(
                    "jdbc:microsoft:sqlserver://localhost:1433;"
                            + "databasename=pubs", "sa", "");    
    
            // 如果连接不成功,就会出现异常,不会执行下面这个语句
            
            out.println("<H1>");
            out.println("通过SQLServer纯驱动程序连接数据库成功!<br> con="+con);
            out.println("</H1>");
        } catch (Exception e) {// 如果出现异常,会打印堆栈里异常的信息
            e.printStackTrace();
        } finally {// 用完后,关闭连接,释放资源
            try {
                if (con != null) // 防止出现内存泄露
                    con.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }  
       %>    
      </body>
    </html>
    

      其他详见原作者:http://www.blogjava.net/haizhige/archive/2008/10/21/235763.html

  • 相关阅读:
    转:gpio_direction_output 与 gpio_set_value
    转:gpio_request
    转: 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
    转:misc_register、 register_chrdev 的区别总结
    转:aptitude 命令详解
    转:Ubuntu12.04 LTS 使用心得-开机挂载其他分区
    转:大端模式和小段模式简述
    转:C++中 #ifdef 和#endif的作用
    转:FIFO和DMA
    Camera Link 信号源板卡学习资料第153篇: 基于Sprtan6的Full(Base) Camera Link 信号源
  • 原文地址:https://www.cnblogs.com/qvbrgw/p/4420508.html
Copyright © 2020-2023  润新知