zoukankan      html  css  js  c++  java
  • JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)

    http://apps.hi.baidu.com/share/detail/5475624
    http://www.cublog.cn/u/20879/showart_220318.html
    http://hi.baidu.com/%CB%AB%D7%D3%D2%B687/blog/item/871a4e51655b1e9e8d54301c.html

    1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar


    Class.forName( "org.gjt.mm.mysql.Driver" );
    cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );

    2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar


    Class.forName( "org.postgresql.Driver" );
    cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );

    3. Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip


    Class.forName( "oracle.jdbc.driver.OracleDriver" );
    cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

    4. Sybase(http://jtds.sourceforge.net)jconn2.jar


    Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
    cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
    //(Default-Username/Password: "dba"/"sql")

    5. Microsoft SQLServer(http://jtds.sourceforge.net)


    Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
    cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );

    6. Microsoft SQLServer(http://www.microsoft.com)


    Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
    cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs", sUsr, sPwd );

    7. ODBC


    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
    Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

    8.DB2(新添加)


    Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
    String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
    cn = DriverManager.getConnection( url, sUsr, sPwd );

    9.Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10

    JDBC Name: jTDS
    URL: http://jtds.sourceforge.net/
    Version: 0.5.1
    Download URL: http://sourceforge.net/project/showfiles.php?group_id=33291

    语法:
    Class.forName("net.sourceforge.jtds.jdbc.Driver ");
    Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password");
    or
    Connection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password");

    10.Postgresql


    JDBC Name: PostgreSQL JDBC
    URL: http://jdbc.postgresql.org/
    Version: 7.3.3 build 110
    Download URL: http://jdbc.postgresql.org/download.html
    语法:
    Class.forName("org.postgresql.Driver"); 
    Connection con=DriverManager.getConnection("jdbc:postgresql://host:port/database","user","password");

    11.IBM AS400主机在用的JDBC语法


    有装V4R4以上版本的Client Access Express
    可以在C:\Program Files\IBM\Client Access\jt400\lib
    找到 driver 档案 jt400.zip,并更改扩展名成为 jt400.jar
    语法:
    java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ());
    Class.forName("com.ibm.as400.access.AS400JDBCConnection");
    con = DriverManager.getConnection("jdbc:as400://IP","user","password");

    12.informix


    Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
    String url = 
    "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; 
    user=testuser;password=testpassword";
    Lib:jdbcdrv.zip<br><br>Class.forName( "com.sybase.jdbc.SybDriver" )
    url="jdbc:sybase:Tds:127.0.0.1:2638/asademo";
    SybConnection connection= (SybConnection)DriverManager.getConnection(url,"dba","sql");

    13.SAP DB


    Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");
    java.sql.Connection connection = java.sql.DriverManager.getConnection ( "jdbc:sapdb://" + host + "/" + database_name,user_name, password)

    14.InterBase


    String url = "jdbc:interbase://localhost/e:/testbed/database/employee.gdb";
    Class.forName("interbase.interclient.Driver");
    //Driver d = new interbase.interclient.Driver (); /* this will also work if you do not want the line above */
    Connection conn = DriverManager.getConnection( url, "sysdba", "masterkey" );

    15.HSqlDB


    url:     http://hsqldb.sourceforge.net/
    driver: org.hsqldb.jdbcDriver


    连接方式有4种,分别为:
    con-str(内存): jdbc:hsqldb.
    con-str(本地): jdbc:hsqldb:/path/to/the/db/dir
    con-str(http): jdbc:hsqldb:http://dbsrv
    con-str(hsql): jdbc:hsqldb:hsql://dbsrv





    一、直连接数据库

    1 Java 连接 Oralce
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";  
    Connection conn= DriverManager.getConnection(url,user,password);
    2 Java 连接 MySQL
    Class.forName("org.gjt.mm.mysql.Driver ").newInstance();
    String URL = "jdbc:mysql://localhost/test";
    Connection conn= DriverManager.getConnection(url,user,password);
    3 Java 连接SQLServer
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
    String URL =” jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
    Connection conn= DriverManager.getConnection(url,user,password);
    4 Java 连接DB2
    Class.forName(“com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
    String URL =”jdbc:db2://localhost:5000/sample";
    Connection conn= DriverManager.getConnection(url,user,password);
    5 Java 连接 Infomix
    Class.forName("com.informix.jdbc.IfxDriver ").newInstance();
    String URL =jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver
    Connection conn= DriverManager.getConnection(url,user,password);
    6 Java 连接 SyBase
    Class.forName("com.sybase.jdbc.SybDriver").newInstance();
    Properties sysProps = System.getProperties();
    SysProps.put("user","userid");
    SysProps.put("password","user_password");
    Connection conn= DriverManager.getConnection(url, SysProps);
    7 Java连接 PostgreSQL
    Class.forName("org.postgresql.Driver").newInstance();
    String url ="jdbc:postgresql://localhost/soft"
    Connection conn= DriverManager.getConnection(url,user,password);

    二、 tomcat连接数据库(JNDI连接)

    1、先在自己应用程序WEB-INF目录下的web.xml添加以下语句:
     <resource-ref>
        <descrtiption>引用资源说明</descrtiption>
        <res-ref-name>引用资源的JNDI名</res-ref-name>
        <res-type>引用资源的类名</res-type>
        <res-auth>管理者(Container)</res-auth><!--Container-容器管理 Application-Web应用管理-->
    </resource-ref>
          然后在tomcat目录/conf/server.xml文件里相应的<Context>元素,添加如下子元素:
    <Resource name="引用资源的JNDI名" auth="Container" type="javax.sql.DataSource"
     driverClassName="com.pointbase.jdbc.jdbcUniversalDriver(自己的jdbc驱动)"
     url="jdbc:pointbase:server://localhost/acme(数据库连接url)"
     username="root(用户名)" password="root(密码)" maxActive="20(连接池dbcp的相关配置)" maxIdle="10" maxWait="10000"/>
    2、例子:以下是我的假设的项目ACMEWeb:
         在相应程序的web.xml里添加
    <web-app ....>
         .....
        <resource-ref>
          <res-ref-name>jdbc/AcmeDB</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
    </web-app>
         然后再server.xml里修改:
      <Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work">
             <Resource name="jdbc/AcmeDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.pointbase.jdbc.jdbcUniversalDriver" url="jdbc:pointbase:server://localhost/acme" username="root" password="root" maxActive="20" maxIdle="10" maxWait="10000"/>
    </Context>
         建议你把上面的内容编写成为一个xml文件,拷到conf/Catalina/<主机名>/文件夹下
    ------------
    <Resource   auth="Container(管理者)"   name="jdbc/DBDeveloper(引用资源的JNDI名)"   type="javax.sql.DataSource(引用资源的类名)"/>  
      <ResourceParams   name="jdbc/DBDeveloper(引用资源的JNDI名)">  
      <parameter>  
      <name>maxActive</name>  
      <value>20</value>  
      </parameter>  
      <parameter>  
      <name>maxIdle</name>  
      <value>10</value>  
      </parameter>  
      <parameter>  
      <name>maxWait</name>  
      <value>-1</value>  
      </parameter>  
           
      <!--   SQL   Server   2000   -->  
      <parameter><name>username</name><value>sa</value></parameter>  
      <parameter><name>password</name><value>enter</value></parameter>  
      <parameter>  
      <name>driverClassName</name>  
      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>  
      <parameter>  
      <name>url</name>  
      <value>jdbc:microsoft:sqlserver://infor:1433;DatabaseName=infordb</value>  
      </parameter>      
           
      <!--   Oracle8i   -->  
      <!--  
      <parameter>  
      <name>factory</name>  
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
      </parameter>  
      <parameter>  
      <name>driverClassName</name>          
      <value>oracle.jdbc.driver.OracleDriver</value>  
      </parameter>  
      <parameter>  
      <name>url</name>  
      <value>jdbc:oracle:thin:@192.168.0.170:1521:infordb</value>  
      </parameter>  
      <parameter>  
      <name>username</name>  
      <value>system</value>  
      </parameter>  
      <parameter>  
      <name>password</name>  
      <value>manager</value>  
      </parameter>  
      -->  
       
      <!--   DB2   -->  
      <!--  
      <parameter>  
      <name>driverClassName</name>  
      <value>COM.ibm.db2.jdbc.net.DB2Driver</value>  
      </parameter>  
      <parameter>  
      <name>url</name>  
      <value>jdbc:db2://infor/infordb</value>  
      </parameter>  
      <parameter>  
      <name>username</name>  
      <value>db2admin</value>  
      </parameter>  
      <parameter>  
      <name>password</name>  
      <value>db2admin</value>  
      </parameter>  
      -->  
           
      </ResourceParams>
     
    --------------------------------------------------------------------------
    JNDI是J2EE中一个很重要的标准,通常我们是在EJB编程中用到,
    Tomcat4.0中提供了在JSP和Servelt中直接使用JNDI的方法,下面谈一下在Tomcat4.0中配置和使用JNDI的方法
    (以通过JNDI连接数据库为例)
    假设使用的数据库是mysql,实验例子在TOMCAT_HOME/webapps/DBTest目录中
    A.将mysql的JDBC连接库mm.mysql-2.0.9-bin.jar放入TOMCAT_HOME/common/lib中 
    B.配置TOMCAT_HOME/conf/serer.xml文件在<Service>段中加入一个Context: 
    <Context path="/DBTest" docBase="DBTest"
    debug="5" reloadable="true" crossContext="true">
    </Context>
    这是DBTest的根路径,这是为了在DBTest中使用做准备.
    C.在上面加入的<Context>段加入 
    <Resource name="jdbc/TestDB"
    auth="Container"
    type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/TestDB"> 
    <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <!-- 最大连接数
    -->
    <parameter>
    <name>maxActive</name>
    <value>100</value>
    </parameter>
    <!-- 最大空闲连接 --> 
    <parameter>
    <name>maxIdle</name>
    <value>30</value>
    </parameter>
    <!-- 最大等待连接 --> 
    <parameter>
    <name>maxWait</name>
    <value>10000</value>
    </parameter>
    <!-- MySQL 连接用户信息 --> 
    <parameter>
    <name>username</name>
    <value>test</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>test</value>
    </parameter>
    <!-- MySQl驱动 --> 
    <parameter>
    <name>driverClassName</name>
    <value>org.gjt.mm.mysql.Driver</value>
    </parameter>
    <!-- MySQL连接地址 --> 
    <parameter>
    <name>url</name>
    <value>jdbc:mysql://localhost:3306/test</value>
    </parameter>
    </ResourceParams>
    我们可以将按照Sample加入,主要修改的是driverClassName,url,和用户帐号;需要强调的是"jdbc/TestDB"就是JDNI要查找的Name. 
    D. 在JSP或servlet中使用JNDI查找服务 
    下面是在JSP文件中关于JNDI使用的代码(文件名记为UserHandleDB.jsp)
    需要注意的是JNDI NAME要在前面加上"java:comp/env/"
    <%@ page language="java"%> 
    <%@ page import="java.util.*" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*" %>
    <% 
    String jndi_name="java:comp/env/jdbc/TestDB";
    String select_user_sql="select userid,name,birthday, email from emp";
    String colnames[][]={{"User ID","Name","Birth day","EMail"},
    {"userid","name","birthday","email"}};
    Vector userSet=new Vector();
    Vector columnSet=new Vector();
    for(int i=0;i<colnames[0].length;i++){ 
    columnSet.add(colnames[0][i]);
    }
    userSet.add(columnSet);
    Context ctx = new InitialContext(); 
    if(ctx == null )
    throw new Exception("No Context");
    DataSource ds = (DataSource)ctx.lookup(jndi_name); 
    Connection conn = ds.getConnection(); 
    try { 
    PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql);
    ResultSet resultSet = psPreparedStatement.executeQuery();
    while(resultSet.next()){
    columnSet=new Vector();
    for(int i=0;i<colnames[1].length;i++){
    columnSet.add(resultSet.getString(colnames[1][i]));
    }
    userSet.add(columnSet);
    }
    }catch(SQLException e) {
    e.printStackTrace();
    }finally {
    conn.close();
    %>

    E. 引用UserHandleDB.jsp(记为ViewTable.jsp)
    <html>
    <head>
    <title>Test Database </title>
    <body >
    <%@ include file="UserHandleDB.jsp" %>
    <table border="1" >
    <%
    for(int i=0;i<userSet.size();i++){
    Vector colSet=(Vector)userSet.get(i);
    out.print("<tr>");
    for(int j=0;j<colSet.size();j++){
    String col=(String)colSet.get(j);
    out.print("<td>"+col+"</td>");
    }
    out.print("</tr>");
    }
    %>
    </table>
    </body>
    </html>
    F. 在web.xml中加入 
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/TestDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    这里的jdbc/TestDb要和C中Resource段的name匹配
    G. 观察结果 
    首先确定数据库已经启动,接着启动Tomcat,如果Tomcat启动异常,可能的原因是数据库的JDBC库没有加载
    最后打开浏览器,访问 http://localhost:8080/DBTest/ViewTable.jsp就可以看到结果

    三,使用框架自带连接数据库

      下面是一段Struts-config.xml配置文件中的数据源配置(使用GenericDataSource数据源实现),你可以更改相应的设置以适合你自己的系统。


    <!-- configuration for GenericDataSource wrapper -->
    <data-sources>
             <data-source>
               <set-property
                     property="autoCommit"
                     value="false"/>
               <set-property
                     property="description"
                     value="Example Data Source Configuration"/>
               <set-property
                     property="driverClass"
                     value="org.postgresql.Driver"/>
               <set-property
                     property="maxCount"
                     value="4"/>
               <set-property
                     property="minCount"
                     value="2"/>
               <set-property
                     property="password"
                     value="mypassword"/>
               <set-property
                     property="url"
                     value="jdbc:postgresql://localhost/mydatabase"/>
               <set-property
                     property="user"
                     value="myusername"/>
             </data-source>
    </data-sources>

    使用BasicDataSource数据源实现的配置方案如下:

    <data-sources>
            <!-- configuration for commons BasicDataSource -->
            <data-source type="org.apache.commons.dbcp.BasicDataSource">
                    <set-property
                      property="driverClassName"
                      value="org.postgresql.Driver" />
                    <set-property
                      property="url"
                      value="jdbc:postgresql://localhost/mydatabase" />
                    <set-property
                      property="username"
                      value="me" />
                    <set-property
                      property="password"
                      value="test" />
                    <set-property
                      property="maxActive"
                      value="10" />
                    <set-property
                      property="maxWait"
                      value="5000" />
                    <set-property
                      property="defaultAutoCommit"
                      value="false" />
                    <set-property
                      property="defaultReadOnly"
                      value="false" />
                    <set-property
                      property="validationQuery"
                      value="SELECT COUNT(*) FROM market" />
            </data-source>
    </data-sources>

      注意,你可以在你的应用系统中定义不止一个数据源,你可以根据需要定义多个数据源,并为它们分别起一个逻辑名(logical name)。这样做可以给你的应用系统提供更好的安全性和可测量性(scalability),你还可以定义一个专用于测试的数据源。

      配置好DataSource以后,你就可以在你的应用系统中使用这些数据源了。下面这段代码演示了怎样在Action类的execute方法中通过这些数据源来生成数据库连接。

    public ActionForward execute(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response)
            throws Exception
    {
            DataSource dataSource;
            Connection cnn;

            try
            {
                    dataSource = getDataSource(request);
                    cnn = dataSource.getConnection();
                    // 数据连接已经建立了,你可以做你想做的事情了
            }
            catch (SQLException e)
            {
                    getServlet().log("处理数据库连接", e);
            }
            finally
            {
                    // 在finally块里包含这些代码
                    // 用以保证连接最后会被关闭
                    try
                    {
                            cnn.close();
                    }
                    catch (SQLException e)
                    {
                            getServlet().log("关闭数据库连接", e);
                    }
            }
    }

      注意:如果你使用公共的BasicDataSource,你提供给pingQuery属性的查询语句(如果你设置了话)必须至少要能返回一行记录。

    例子:SELECT COUNT(*) FROM VALIDTABLE

    你可以把VALIDTABLE替换成你的数据库中包含的任何有效的表。
    [使用多个数据源]


    如果你需要在模块(Module)中使用多于一个的数据源,你可以在配置文件的<data-source>元素里包含一个key属性。

    <data-source>
            <data-source key="A" type="org.apache.commons.dbcp.BasicDataSource">
                    …属性配置略, 同上…
            </data-source>
            <data-source key="B" type="org.apache.commons.dbcp.BasicDataSource">
                    …属性配置略, 同上…
            </data-source>
    </data-source>

    你代码里,你可以通过这些key获得不同的数据源。代码如下:


    try
    {
            dataSourceA = getDataSource(request, "A");
            dataSourceB = getDataSource(request, "B");
    1Oracle8/8i/9i数据库(thin模式)

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
    String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl
    为数据库的SID 
    String user="test"; 
    String password="test"; 
    Connection conn= DriverManager.getConnection(url,user,password); 

     2DB2数据库

    Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
    String url="jdbc:db2://localhost:5000/sample"; //sample
    为你的数据库名 
    String user="admin"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 


     3
    Sql Server7.0/2000数据库

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; 
    //mydb
    为数据库 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 


     4
    Sybase数据库

    Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 
    String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB
    为你的数据库名 
    Properties sysProps = System.getProperties(); 
    SysProps.put("user","userid"); 
    SysProps.put("password","user_password"); 
    Connection conn= DriverManager.getConnection(url, SysProps); 


    5
    Informix数据库

    Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
    String url = 
    "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; 
    user=testuser;password=testpassword"; //myDB
    为数据库名 
    Connection conn= DriverManager.getConnection(url); 


     6
    MySQL数据库

    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
    //myDB
    为数据库名 
    Connection conn= DriverManager.getConnection(url); 

    //com.mysql.jdbc.Driver
    //jdbc:mysql://localhost:3306/test


     7
    PostgreSQL数据库

    Class.forName("org.postgresql.Driver").newInstance(); 
    String url ="jdbc:postgresql://localhost/myDB" //myDB
    为数据库名 
    String user="myuser"; 
    String password="mypassword"; 
    Connection conn= DriverManager.getConnection(url,user,password); 


     8
    access数据库直连用ODBC

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
    Connection conn = DriverManager.getConnection(url,"","");
    Statement stmtNew=conn.createStatement() ;

  • 相关阅读:
    C#自定义控件在添加引用后不显示在工具箱的解决方法
    DevExpress中SearchLookUpEdit用法总结
    div(固定宽度和不固定宽度)居中显示的方法总结
    php面向对象学习笔记
    在php中使用Memcache
    memcache的安装及管理
    使用Quartz.NET cron-like表达式
    SQL CHECK 约束&Case when 的使用方法
    IP地址地区信息查询API接口调用方法
    ASP使用webRequest实现跨域请求
  • 原文地址:https://www.cnblogs.com/furenjun/p/2122968.html
Copyright © 2011-2022 走看看