通过JDBC连接数据库(摘抄)

一、什么是JDBC的

  JDBC(Java Data Base Connectivity)是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,并规定了JAVA开发人员访问数据库所使用的方法的调用规范。

二、JDBC的组成

  JDBC有两部分组成:JDBC API和JDBC Driver.

(一) JDBC
API:是Sun提供给开发者的一组独立于数据库的API,JAVA开发人员对任何数据库的操作,都可以用这组API来进行。

  JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(粉色代表接口,需驱动程序提供者来具体实现):

    • DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。
    • Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。
    • Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。
    • Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。
    • PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。
    • CallableStatement:用以调用数据库中的存储过程。
    • SQLException:代表在数据库连接的创建和关闭和SQL语句的执行过程中发生了例外情况(即错误)。

(二)JDBC Driver是由具体数据库开发商,通过实现了上述接口的编写而成的数据库驱动程序,当然,其中也会包括各个DB开发商自己扩展的一些类。各个驱动程序可以到各个数据库官网下载。为了使客户端程序独立于特定数据库驱动程序,JDBC规范建议开发者使用接口编程方式,即尽量使应用依赖java.sql 及javax.sql中的接口和类.具体结构图:

                    

三、使用JDBC驱动连接数据库。

  1.首先,下载数据库驱动的Jar包,然后导入。

  2.使用如下代码连接到数据库:

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5
 6 public class TestSQL {
 7
 8     /**
 9      * @param args
10      * @throws Exception
11      */
12     public static void main(String[] args) throws Exception {
13         /*
14          * 通过Class.forName()方法来加载JDBC驱动程序(Driver),
15          * Driver类实例化时会初始化这个类的静态初始化部分,该静态部分,就会调用
16          * java.sql.DriverManager.registerDriver(new Driver());
17          */
18         Class.forName("com.mysql.jdbc.Driver").newInstance();
19         /*
20          * 数据库URL:jdbc:subprotocol:subname 形式,
21          * 其实就是jdbc: + 数据库类型 + 主机名 + 端口号 + 所要使用的数据库名
22          */
23         String url = "jdbc:mysql://localhost:3306/mydatabase";
24         String userName = "root"; // 数据库的用户名
25         String password = "password"; // 数据库的密码
26         /*
27          * 调用上述已注册了相应JDBC驱动程序(Driver)的DriverManager,
28          * 通过URL,用户名,密码来获取相应的数据库连接(Connection)
29          */
30         Connection conn = DriverManager.getConnection(url, userName, password);
31         // 获取Statement 对象用于将 SQL 语句发送到数据库中。
32         Statement stmt = conn.createStatement();
33         // 执行SQL语句,获取结果集ResultSet
34         ResultSet rs = stmt.executeQuery("select * from person");
35         // 将获得的结果集输出
36         while(rs.next()) {
37             System.out.println(rs.getString(1));
38         }
39         // 关闭相应的资源
40         rs.close();
41         stmt.close();
42         conn.close();
43     }
44 }

注:①java.sql.DriverManager:从名字就可以看出是用于驱动程序管理的,它的主要责任是保留一个驱动程序的列表,并通过getConnection方法来给应用程序提供与所请求的URL相匹配的Driver(可能是由于同一个数据库的驱动程序可能是有几种不同的实现方式,但如果DriverManager中对一个URL有多个匹配的Driver,它是不是只选择第一个找到的呢?),并返回 Connection对象,如果找不到就会抛出一个异常,也就是这一句 Connection oConn = DriverManager.getConnection(url,userName,password)。

  ②Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器:Statement、PreparedStatement(它从 Statement 继承而来)和CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句:Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute。使用哪一个方法由 SQL 语句所产生的内容决定。
  方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
  方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQLDDL(数据定义语言)语句,例如
CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或
DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate
的返回值是一个整数,指示受影响的行数(即更新计数)。对于CREATE TABLE 或 DROP TABLE
等不操作行的语句,executeUpdate 的返回值总为零。
  方法 execute用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,就不介绍了。

  ③事务处理:JDBC的事务处理简单,在执行多条更新语句后,加conn.commit()或conn.rollback()就可以了。

  Ⅰ.关闭Connection的自动提交

  conn.setAutoCommit(false);

   Ⅱ.执行一系列sql语句:执行新sql前,以前的Statement(或PreparedStatemet)必须close

  Statement sm ;
          
sm = cn.createStatement(insert into user...);
          
sm.executeUpdate();
          
sm.close();
          
sm = cn.createStatement("insert into corp...);
          
sm.executeUpdate();
          
sm.close();

  Ⅲ.提交
      
cn.commit();
  Ⅳ.如果发生异常,回滚:

   
cn.rollback();

时间: 2024-10-03 20:31:39

通过JDBC连接数据库(摘抄)的相关文章

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

【转】Java开发中JDBC连接数据库代码和步骤总结

(转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("co

JDBC连接数据库

JDBC连接数据库一般分为3个步骤: (1)注册数据库驱动 (2)创建数据库连接URL (3)获取Connection连接对象 这三个步骤,具体代码实现如下: 1 try{ 2 //加载数据库驱动,注册到驱动管理器 3 Class.forName("com.mysql.jdbc.Driver"); 4 //数据库连接字符串 5 String url = "jdbc:mysql://localhost:3306/mysqltest"; 6 //数据库用户名 7 Str

Java 用jdbc连接数据库

Java 用jdbc连接数据库 准备 安装mysql 下载 mysql-connector-java-5.1.40-bin.jar驱动包 步骤 创建jdbc项目 导入mysql-connector-java-5.1.40-bin.ja包 创建配置文件 jdbc.properties user=root password=1230 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql:///atguigu 代码 import java.io.IO

完整java开发中JDBC连接数据库代码和步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(Class

Java开发中JDBC连接数据库代码和步骤

JDBC连接数据库:创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ Syste

jdbc连接数据库工具包模板

jdbc连接数据库操作 jdbc连接数据库模板,收藏可做模板使用(小型工程,一般大工程都会用框架,c3p0等连接,不考虑此种方法!). 配置文件的使用(使用配置文件可以使我们后期的修改更加方便,当然,也可以使用java中的枚举效果也是相同的,不过在这里推荐大家使用配置文件) 在这里使用mysql做类子: 1 #db.properties 2 #一般放在src下 3 4 5 6 driver=com.mysql.jdbc.Driver 7 url=jdbc:mysql://127.0.0.1:33

(转) Spring Boot JDBC 连接数据库

文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. 1 JDBC 连接数据库 1.1 属性配置文件(application.properties) spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 s

Java中JDBC连接数据库(MySQL)

 JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放在一起. 安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(这本该是第一步,但是由于属于安装类,所以我们放在最后) 一.JDBC连接数据库(编辑)步骤(主要有六个步骤).  1.注册驱动: Class.forName("com.mysql.jdbc.Driver");显示的

JDBC系列:(1)通过JDBC连接数据库

1.什么是JDBC 2.JDBC连接数据库的三种方式 2.1.第一种实现方式 2.2.第二种实现方式 2.3.第三种实现方式 3.com.mysql.jdbc.Driver的内部实现 1.什么是JDBC 使用java代码(程序)发送sql语句的技术 使用jdbc发送sql前提需要知道:数据库的IP地址.端口.数据名.用户名和密码. JDBC的URL=协议名+子协议名+数据源名. a 协议名总是"jdbc". b 子协议名由JDBC驱动程序的编写者决定. c 数据源名也可能包含用户与口令