zoukankan      html  css  js  c++  java
  • 使用jdbc连接sql数据库

    基本上就是这些步骤:

    1. 下载你要连接的数据库的JDBC驱动程序(driver)。通常都是一个jar文件,复制到你的project里面,确保识别这个库就可以了。
    2. 加载驱动, 不同的数据库需要不同 JDBC driver。
    3. 连接数据库,不同的数据库同样需要不同的JDBC URL。

    下面给出连接不同数据库的例子

    连接 mini SQL

    连接Interbase

    对于其他数据库,参考如下列表

    数据库
    JDBC URL (JDBC Connection String)
    JDBC Driver
    MySQL jdbc:mysql://HOST:PORT/DATABASE
    com.mysql.jdbc.Driver
    Postgresql jdbc:postgresql://HOST:PORT/DATABASE
    org.postgresql.Driver
    SQL Server jdbc:microsoft:sqlserver://HOST:1433;DatabaseName=DATABASE
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    DB2 jdbc:as400://HOST:PORT/DATABASE;
    com.ibm.as400.access.AS400JDBCDriver
    sqlite

    jdbc:sqlite:DATABASE

    org.sqlite.JDBC

    Derby

    jdbc:derby:DATABASE

    org.apache.derby.jdbc.EmbeddedDriver

    Oracle

    有三种类型的驱动,后面单独列出

    其中sqlite是嵌入式数据库,所以连接相对简单。下面是一些例子:

    MySQL

    Postgresql

    sqlite

    Oracle

    • JDBC Thin Driver (no local SQL*Net installation required/ handy for applets)
    • JDBC OCI for writing stand-alone Java applications
    • JDBC KPRB driver (default connection) for Java Stored Procedures and Database JSP's.

    Thin Driver

    我只用过第一个,个人觉得觉得简单的数据库操作基本上够用了,后面的两种没有用过。

    OCI Driver

    KPRB Driver

    对于C/S架构的数据库,可以将连接的配置写到Java properties文件里面,以方便以后的使用。

    不同的JDBC驱动,按照它们的实现方法,也分为四个不同的类别:

    1. JDBC-ODBC bridge plus ODBC driver: The Java Software bridge product provides JDBC access via ODBC drivers. 
    2. Native-API partly-Java driver: This kind of driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, IBM DB2, or other DBMSs. 
    3. JDBC-Net pure Java driver: This driver translates JDBC calls into a DBMS-independent net protocol, which is then translated to a DBMS protocol by a server. 
    4. Native-protocol pure Java driver: This kind of driver converts JDBC calls directly into the network protocol used by DBMSs.

    下表给出了它们之间的异同点:

    • Direct -a connection that a JDBC client makes directly to the DBMS server, which may be remote
    • Indirect--a connection that a JDBC client makes to a middleware process that acts as a bridge to the DBMS server



      DRIVER CATEGORY


      ALL JAVA


      NETWORK CONNECTION


      1 - JDBC-ODBC Bridge


      No


      Direct


      2 - Native API as basis


      No


      Direct


      3 - JDBC-Net


      client Yes

      server Maybe


      Indirect


      4 - Native protocol as basis


      Yes


      Direct

    最后说一下异常和警告处理:

    捕获异常并打印

    SQLWarning 对象是 SQLException 子类,它不会中断程序的执行,但是却能够提供很多有价值的信息,尤其是debug的时候。Connection 对象,Statement 对象 (包括PreparedStatementCallableStatement 对象),或者ResultSet 对象都有一个 getWarnings 方法。下面是一个列子:

    参考:

    [1]http://www.devdaily.com/java/edu/pj/pj010024/

    [2]http://www.devdaily.com/java/jdbc-connection-string-mysql-postgresql-sqlserver

    [3]http://www.orafaq.com/wiki/JDBC

    [4]http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/intro.html#1006158

    [5]http://java.sun.com/docs/books/tutorial/jdbc/basics/index.html

  • 相关阅读:
    sql server获取指定库下的所有表名
    sql根据字符将一行拆成多行
    刷题416. Partition Equal Subset Sum
    刷题394. Decode String
    刷题347. Top K Frequent Elements
    刷题309. Best Time to Buy and Sell Stock with Cooldown
    刷题338. Counting Bits
    刷题337. House Robber III
    刷题312. Burst Balloons
    刷题621. Task Scheduler
  • 原文地址:https://www.cnblogs.com/ainima/p/6331338.html
Copyright © 2011-2022 走看看