Java Web-JDBC

来源:互联网 发布:centos打开端口命令 编辑:程序博客网 时间:2024/05/16 02:18

使用JDBC

 

一、装载驱动程序

使用JDBC的第一步是指定数据库所需要的特定的JDBC驱动程序。主要有二种方式可以完成此操作。

第一种方式是显式地装载JDBC驱动程序,只需要一行代码,例如:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

另一种方式是直接调用DriverManager类的registerDriver()方法。例如:
 DriverManager. registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());

上述代码会将JDBC-ODBC桥驱动程序装载到Java运行环境。具体是:系统调用DriverManager类的registerDriver()方法,该方法生成和管理JDBC驱动程序的实例。若选用的JDBC驱动程序不存在或存放位置不在CLASSPATH内,上述代码会抛出ClassNotFoundException异常,因此通常要把此句封闭在try/catch块中。

二、建立数据库连接

一旦装载了数据库驱动程序,第二步是建立到数据库的连接。这是通过DriverManager类的getConnection()方法来完成的。例如:
Connection conn=DriverManager.getConnection(                                                 "jdbc:odbc:myodbc", "username","password")
在三个参数中,最重要的是用来指定数据源的URL。

JDBC数据源URL
JDBC数据源使用的URL语法的形式为:
                        jdbc:<sunprotocol>:<subname>
其中jdbc表示使用的协议是jdbc, sunprotocol字段表示使用的JDBC驱动程序名, subname是根据子协议而确定的参数字符串。

常见的JDBC数据源URL
jdbc:oracle:thin:@host:1521:mydb 描述了一个Oracle数据库的连接URL。该URL使用的子协议是oracle,Oracle的JDBC驱动程序有两种,oci和thin,后面是数据库主机名称、服务器侦听接口和数据库安全标识符SID;
jdbc:borland:dslocal:D:\testDB\employee.jds 描述了一个Borland公司的数据库产品JDataStore的数据源。子协议是borland,数据源是一个本地数据库,存放在D:\testDB\employee.jds ;
jdbc:mysql://www.mycompany.con/db/MyDB 描述了一个MySQL数据源。子协议是mysql,数据库定位在//www.mycompany.con/db/MyDB ;
jdbc:odbc:myOdbcData ODBC数据源,子协议odbc,ODBC数据源名为myOdbcData ;

三、建立Statement对象

Statement
如果已经装载了数据库驱动程序并创建了数据库连接conn,现在可以向数据库服务器发送SQL语句。这是通过创建Statement对象来完成的。可使用Connection对象的createStatement()方法创建该对象,

例如:          Statement stmt=conn.createStatement();
PreparedStatement
如果需要向数据库服务器传递带参数的SQL,则应使用PreparedStatement对象,该对象是由Connection对象的repareStatement()方法生成的,

例如:String sql=  "select * from employee where salary>?";          PreparedStatement stmt= conn.prepareStatement(sql);
CallableStatement
如果需要调用数据库的存储过程,则需要创建CallableStatement对象来达到这一目的:          String callProc="{call myproc}";          CallableStatement cstmt=conn.prepareCall(callProc);

四、发送SQL语句
一旦创建了Statement对象,下一步是把SQL发送到数据库。Statement对象有两个主要的方法用于此目的。使用哪个方法取决于是否需要返回结果。
executeQuery()
对于需要返回结果集的SELECT语句,应当使用executeQuery()方法,该方法只有一个字符串参数,用来存放SELECT语句,查询成功则以ResultSet对象的形式返回查询结果。例如:  String sql="select * from students";  ResultSet rs=stmt.executeQuery(sql);
executeUpdate()方法
如果调用INSERT、UPDATE、DELETE不需返回查询结果的SQL语句,应采用executeUpdate()方法。   executeUpdate()方法也只接受String类型的SQL语句作参数,返回类型为int。如果返回值为0则表示SQL语句不返回任何数据,否则返回数据库中受到INSERT、UPDATE、DELETE语句影响的数据行数。例如:  String sql="DELETE FROM STUDENT WHERE SCORE <=60";  int ret=stmt.executeUpdate(sql);

 

五、关闭数据连接

尽管不是必须的,但及时关闭到数据库的连接是一个很好的习惯。这样就确保及时释放用于连接数据库的相应的资源。及时将宝贵的数据库连接归还给DBMS,可提高数据库并发处理能力。
JDBC的Statement和Connection对象都有一个close()方法用于此目的。

例如:  stmt.close();                  conn.close()

 

 

 

 

原创粉丝点击