J2EE——JDBC连接数据库实例

上篇博客初步介绍了JDBC,并简单提到了连接数据库的4种不同驱动方式:

1JDBC-ODBC桥驱动

2Java驱动

3)本地API部分Java驱动

4JDBC网络纯Java驱动

本篇博客通过两个小实例,来介绍JDBC-ODBC桥驱动方式Java驱动方式,从而进一步了解JDBC的工作步骤和机制。

JDBC工作步骤:

 1)建立数据源

 2)加载驱动程序

 3)获得连接对象

 4)创建语句对象

 5)执行Sql语句

 6)关闭资源

 

1JDBC-ODBC桥驱动方式

   (1)建立数据源

首先建立ODBC数据源:

  【开始】设置】控制面板】【管理工具】【数据源(ODBC)】

新建数据源,名称可以任意,这里假设已经建立了一个名为myODBC的数据源,连接到oracle中的orcl数据库。

2)加载驱动程序

  • 使用Class类的forName方法,将驱动程序类加载到JVMJava虚拟机)中;
  • 方 法 原 型

    说    明

    static Class forName(String className)

    throws ClassNotFoundException

    将由className指定完整名称的类加载到JVM中,如果加载失败,将抛出异常,必须捕捉

 

  • 对于使用JDBC-ODBC桥的驱动方式,应该加载:

sun.jdbc.odbc.JdbcOdbcDriver

  • 如:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


3)获得连接对象

  • 成功加载驱动后,必须使用DriverManager类的静态方法getConnection来获得连接对象;
  • 方 法 原 型

    说    明

    static Connection getConnection

    (String url, String user,

    String password)

    throws SQLException

    参数url是连接字符串,参数user是数据库用户名,参数password是登录口令,成功连接到数据库返回Connection对象,连接失败则抛出SQLException异常,必须捕捉

  • 对于使用JDBC-ODBC桥的连接方式,连接字符串的一般形式是:“jdbc:odbc:数据源名称”,如:

Connection con =
DriverManager.getConnection("jdbc:odbc:myODBC", “scott", “tiger");


4)创建语句对象

  • 一旦成功连接到数据库,获得Connection对象后,必须通过Connection对象的createStatement方法来创建语句对象,才可以执行SQL语句;
  • 方 法 原 型

    说    明

    Statement createStatement()

    throws SQLException

    成功创建返回Statement对象,否则抛出SQLException异常,必须捕捉

  • 如:

Statement sta = con.createStatement();

5)执行sql语句

  • 使用语句对象来执行SQL语句,有两种情况:
  • 一种是执行DELETEUPDATEINSERT之类的数据库操作语句(DML),这样的语句没有数据结果返回,使用Statement对象的executeUpdate方法执行;
  • 方 法 原 型

    说    明

    int executeUpdate(String sql)

    throws SQLException

    参数sql是要执行的SQL语句,执行成功返回受影响的行数,执行失败则抛出SQLException异常,必须捕捉

  • 如:

sta.executeUpdate("INSERT INTOFriends VALUES('田七', '重庆',  456712, '2003-2-25',7500)");

  • 另一种是执行SELECT这样的数据查询语句(DQL),这样的语句将从数据库中获得所需的数据,使用Statement对象的executeQuery方法执行;
  • 方 法 原 型

    说    明

    ResultSet executeQuery(String sql)

    throws SQLException

    参数sql是要执行的SQL语句,查询成功返回包含有结果数据的ResultSet对象,否则抛出SQLException异常,必须捕捉

  • 如:

ResultSet rs =
sta.executeQuery("SELECT * FROM Friend");


6)关闭资源

  • 当对数据库的操作结束后,应当将所有已经被打开的资源关闭,否则将会造成资源泄漏;
  • Connection对象、Statement对象和ResultSet对象都有执行关闭的close方法;
  • 函数原型都是:void close() throws SQLException
  • 如:

rs.close();   //关闭ResultSet对象
sta.close();  //关闭Statement对象
con.close();  //关闭Connection对象

  • 有可能抛出SQLException异常,必须捕捉;
  • 请注意关闭的顺序,最后打开的资源最先关闭,最先打开的资源最后关闭。

 

完整例子:

import java.sql.*;    //导入java.sql包
public class JDBCDemo {
  public static void main(String[] args){
   String strCon = "jdbc:odbc:myODBC";  //连接字符串
    String strUser = “scott";               //数据库用户名
    String strPwd = “tiger";                  //口令
    System.out.println("正在连接数据库...");
    try{  //监控异常
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  //加载驱动程序
      Connection con;
      //获得连接对象
      con = DriverManager.getConnection(strCon, strUser, strPwd);
     System.out.println("成功连接到数据库。");
     Statement sta = con.createStatement();   //创建语句对象
      //执行SQL语句
      String strSql = "DELETE FROM Friends WHERE [Name] = '郑六'";
     intcount = sta.executeUpdate(strSql);
     System.out.println("成功删除" + count + "行数据。");
     sta.close(); con.close();    //关闭所有已经打开的资源
    } catch (ClassNotFoundException cnfe) {cnfe.printStackTrace(); }
   catch(SQLException sqle) { sqle.printStackTrace(); } }

2,纯java驱动方式

使用JDBC-ODBC桥方式连接数据库,其性能完全取决于数据源(ODBC)的性能,并且无法脱离Microsoft的平台,这样将带来不便;

大部分DBMS产商都为自己的产品开发了纯Java的驱动程序,我们只需要加载相应的驱动,就可以直接连接到数据库,而无需通过ODBC桥连接;

鉴于DBMS产品太多,这里只针对当今比较流行的SQL Server 2000Oracle 9i进行介绍。

1)下载驱动程序包

要使用纯Java驱动,首先必须获得相应数据库的驱动程序包;

根据数据库的类型,登录对应产商的官方网站,一般都可以免费获得;

下载后,复制到本地磁盘,并将完整路径设置到classpath环境变量中,如用开发工具开发程序,还需在开发环境中设置路径。

2)纯java驱动连接Oracle

使用纯Java驱动连接到Oracle 9i数据库,加载驱动程序应改成如下语句:

   
Class.forName("oracle.jdbc.driver.OracleDriver");

连接字符串应如下格式:

   "jdbc:oracle:thin:@服务名或IP:1521:数据库名"

如:

 Connection con =DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORA", "scott", "tiger"); 

3)纯java驱动连接Sql Server

使用纯Java驱动连接到SQL Server 2005数据库,加载驱动程序应改成如下语句: 

Class.forName("com.microsoft. Sqlserver.jdbc.SQLServerDriver");

连接字符串应如下格式:

   "jdbc:microsoft:sqlserver://服务器名或IP:1433;databaseName=数据库名"

如:
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=pubs", "sa", "");

4)纯java驱动连接mysql

使用纯Java驱动连接到SQL Server 2005数据库,加载驱动程序应改成如下语句:   

Class.forName("com.mysql.jdbc.Driver");

连接字符串应如下格式:

   "jdbc:mysql://服务器名或IP:3306/数据库名"

如: 

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs", "root" , "root");

3,总结:

JDBC是使用Java程序操作数据库的技术;

使用Class类的forName方法可以将驱动程序加载到Java解释器中;

使用DriverManager类的getConnection方法获得Connection对象,从而建立与数据库的连接;

使用Connection对象的createStatement方法创建语句对象,以便执行SQL语句;

使用Statement对象的executeQueryexecuteUpdate方法执行SQL语句,并使用ResultSet对象来操作结果数据;

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值