码迷,mamicode.com
首页 > 数据库 > 详细

S2/JAVA/08-JDBC

时间:2016-06-06 00:46:28      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

JDBC API主要做3件事:与数据库建立连接、发送SQL语句、处理结果。

DriverManager类:依据数据库的不同,管理相应的JDBC驱动。

Connection接口:负责连接数据库并担任传送数据的任务。

Statement接口:由Connection产生,负责执行SQL语句。

ResultSet接口:负责保存和处理Statement执行后所产生的查询结果。

PreparedStatement接口:Statement的子接口,也有Connection产生,同样负责执行SQL语句。与Statement接口相比,具有高安全性、高性能、高可读性和高可维护性的优点。

 

JDBC访问数据库的步骤。

1)加载JDBC驱动。

使用Class.forName()方法将给定的JDBC驱动类加载到Java虚拟机中。若系统中不存在给定的类,则会引发异常,异常类型为ClassNotFoundException。代码示例:

Class.forName("JDBC驱动类的名称");

2)与数据库建立连接

DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。DriverManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。当调用getConnection()方法时,DriverManager类首先从已加载的驱动程序列表中找到一个可以接收该数据库URL的驱动程序,然后请求该驱动程序使用相关的URL、用户名和密码连接到数据库中,于是就建立了与数据库的连接,创建连接对象并返回引用。代码示例:

Connection con=DriverManager.getConnection(数据连接字符串,数据库用户名,密码);

3)发送SQL语句,并得到返回结果。

一旦建立连接,就使用该连接创建Statement接口的对象,并将SQL语句传递给他所连接的数据库。如果是查询操作,将返回类型为ResultSet的结果集,它包含执行SQL查询的结果。如果是其他操作,将根据调用方法的不同返回布尔值或操作影响的记录数目。代码示例:

Statement stmt=con.createStatement();

ResultSet rs=stmt.executeQuery("SELECT id,name FROM master");

4)处理返回结果

主要是针对查询操作的结果集,通过循环取出结果集中每条记录并做出相应处理。处理结果的代码示例:

While(re.next()){

int id=rs.getInt("id");

String name=rs.getString("name");

System.out.println(id+"  "+name);

}

 

两种常用的驱动方式:第一种是JDBC-ODBC桥连方式,适用与个人开发与测试,他通过ODBC与数据库进行连接。第二种是纯Java驱动方式,他直接通数据库进行连接,在生产型开发中,推荐使用纯Java驱动方式。

 

使用JDBC-ODBC桥连方式连接数据库,JDBC驱动类是“sun.jdbc.odbc.JdbcOdbcDriver”,数据库连接字符串将以“jdbc:odbc”开始,后面跟随数据源名称。因此,假设我们已经配置了一个叫“conn_epet”ODBC数据源,数据库连接字符串就是“jdbc:odbc:conn_epet”,假定登录数据库系统的用户名为“sa”,口令为“sa”。具体实现代码如示例1所示。

 

我们使用纯Java驱动方式进行数据库连接,首先需要下载数据库厂商提供的驱动程序jar包,并将jar包引入工程中。。接下来就可以进行编程,与数据库建立连接。此处假定在SQL Server2008中已经建立了名称为“epet”的数据库,数据库用户名为“sa”,密码为“sa”,驱动程序包为sqljdbc2008.jar

 

获取Connection对象后就可以进行各种数据库操作了,此时需要使用Connection对象创建Statement对象。Statement对象用于将SQL语句发送到数据库中,或者理解为执行SQL语句。Statement接口中包含很多基本数据库操作方法,以下为执行SQL命令的3个方法。

ResultSet executeQuery(String sql):可以执行SQL查询并获取ResultSet对象。

int executeUpdate(String sql):可以执行插入、删除、更新的操作。返回值是执行该操作所影响的行数。

boolean execute(String sql):可以执行任意SQL语句,若结果为ResultSet对象,则返回true;若其为更新计数或者不存在任何结果,则返回false

S2/JAVA/08-JDBC

标签:

原文地址:http://www.cnblogs.com/water5832/p/5562378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!