JDBC编程小结

(1) JDBC API调用流程

1. 加载驱动

String driveName = "com.mysql.jdbc.Driver";  // mysql

Class.forName(driveName);

2. 利用 DriverManager 获取 Connection对象(数据库连接对象,代表一个物理连接)

Connection conn = DriverManager.getConnection(url, user, pass);

3. 获取数据库连接

生成Statement / PrepareStatement / CallableStatement 对象

Statement st = conn.createStatement();

PrepareStatement pst = conn.prepareStatement(sql);  // 将SQL语句进行预编译,返回预编译的Statement对象

sql = "insert into student_table value(4, ?)";

c cst = conn.prepareCall(sql); // 返回对象,用于调用存储过程

sql = "{call add_pro(?, ?, ?)}";

注:该存储过程创建如下

delimiter //

create procedure add_pro (a int, b int, out sum int)

begin

set sum = a+b;

end;

//

4. 执行SQL,结果集ResultSet

Statement

ResultSet rset = cst.executeUpdate(sql);   DDL --> 0  |  DML --> 返回受影响的行数

.execute(sql)         bool    ResultSet-->true    空/受影响行数 --> false

.executeQuery(sql)     ResultSet

PrepareStatement

pst.setInt(1, 3);// 向第一个?中 赋值3

pst.executeUpdate();

CallableStatement

cst.setInt(1, 4);

cst.setInt(2, 5);

cst.registerOutParameter(3, Type.INTERGER);// 注册CallableStatement的第三个参数为int类型

cst.execute();

(2). 连接池进行数据库操作

目标:上述方式 通过DriverManager创建数据库连接完成 操作,一次数据库连接对应一个物理连接,频繁的建立与关闭 造成性能下降。 连接池 建立多个连接,起始处于空闲,来请求时进行响应,在完成对 一个连接请求的响应后 不关闭物理连接,使其空闲,从而实现对物理连接的复用。

JDBC数据库连接池由 javax.sql.DataSource来表示,其中DataSource为接口,由厂商实现。

常见数据库连接池:

1. Druid

2. C3P0

3. DBCP

4. JNDI

使用大致流程:

DBCP

创建数据源对象

BasicDateSource ds = new BasicDataSource();

ds.setDriverClassName("com.mysql.jdbc.Driver");

ds.setUrl("jdbc:mysql://localhost:3306/db_name");

ds.setUsername("root");

...

ds.setInitialSize(6);

....

利用 数据源获取 数据库连接

Connection conn = ds.getConnection() ; // 此后操作同上

....

释放数据库连接(将数据库连接释放,归还连接池,物理连接并未关闭)

conn.close();

C3P0

ComboPooledDataSource ds = new ComboPooledDataSource();

ds.setDriverClass("com.mysql.jdbc.Driver");

ds.setJdbcUrl("jdbc:mysql://localhost:3306/db_name"); // 方法名与上述略微不同

...

利用 数据源获取 数据库连接

Connection conn = ds.getConnection() ; // 此后操作同上

....

释放数据库连接(将数据库连接释放,归还连接池,物理连接并未关闭)

conn.close();

其中上述连接池中  Druid 为阿里巴巴开源项目,目前性能最好的。对比数据参考:

https://github.com/alibaba/druid/wiki/Benchmark_aliyun

时间: 2024-10-29 19:12:24

JDBC编程小结的相关文章

第13章 MySQL数据库与JDBC编程

13.1 JDBC基础 13.1.1 JDBC简介 13.1.2 JDBC驱动程序 13.2 SQL语法 13.2.1 安装数据库 13.2.2 关系数据库基本概念和MySQL基本命令 13.2.3 SQL语句基础 13.2.4 DDL语言 13.2.5 数据库约束 13.2.6 索引 13.2.7 视图 13.2.8 DML语句语法 13.2.9 单表查询 13.2.10 数据库函数 13.2.11 分组和组函数 13.2.12 多表连接查询 13.2.13 子查询 13.2.14 集合查询

JDBC编程之预编译SQL与防注入式攻击以及PreparedStatement的使用教程

在JDBC编程中,常用Statement.PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程. 1.Statement       该对象用于执行静态的 SQL 语句,并且返回执行结果. 此处的SQL语句必须是完整的,有明确的数据指示.查的是哪条记录?改的是哪条记录?都要指示清楚.     通过调用

JDBC编程总结

JDBC编程总结 JDBC的基本原理JDBC是Java操作数据库的技术规范.他实际上定义了一组标准的操作数据库的接口.为了能让Java操作数据库,必须要有实现了JDBC这些接口的类,不同的数据库厂商为了让Java语言能操作自己的数据库,都提供了对JDBC接口的实现--这些实现了JDBC接口的类打成一个jar包,就是我们平时看到的数据库驱动.由于不同的数据库操作数据的机制不一样,因此JDBC的具体实现也就千差万别,但是你作为java程序员,你只和Java JDBC的接口打交到,才不用理会他们怎么实

JDBC编程的步骤

一.进行JDBC编程的步骤大致如下: 1.      加载数据库驱动,通常使用Class类的forName()静态方法来加载驱动.如下代码: Class.forName(dirvirClass) 上面代码中的driverClass就是数据库驱动类所对应的字符串 加载MySQL数据库时采用的代码为: Class.forName("com.mysql.jdbc.Driver"); 2.      通过DriverManager获取数据库连接. DriverManager.getConnec

JDBC编程 之 增删改查

JDBC编程之数据增加,更改,查询,删除 1 package com.good.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.Statement; 7 8 public class Main { 9 //1数据库连接的方法就独立出来了 10 public static Connection getConnec

JDBC编程理论知识(1)

1.SUN公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC 2.JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包: (1)java.sql.*; (2)javax.sql.*; 3.JDBC在程序中的位置: 4.JDBC的六个固定步骤 1,注册数据库驱动[利用反射] 2,取得数据库连接对象Connection 3,创建SQL对象 4,执行SQL命令,并返回结果集 5,处理结果集 6,

第15篇-JAVA JDBC编程

第15篇-JAVA JDBC编程 每篇一句 :对于勇敢者,尝试是一条崭新的生活之路 初学心得: 但对于坎坷与泥泞,能以平常之心视之,就非常不容易 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-05-08| JAVA JDBC编程 ] 1.JDBC概述 通过使用JDBC API,Java程序可以非常方便地操作各种主流数据库,这是是Java语言的巨大魅力所在 由于Java语言的跨平台特性,所以使用JDBC API所编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性

Java - 面向对象思想进行JDBC编程

mysql-connector-java-5.1.7-bin.jar jdbc.properties driver=com.mysql.jdbc.Driver jdbcUrl=jdbc\:mysql\://localhost\:3306/lesson user=root password= JDBCTools.java package 面向对象思想进行JDBC编程; import java.io.IOException; import java.io.InputStream; import ja

JDBC编程的方式

JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 从上面可以看出JDBC编程一般要如下步骤: 1. 加载数据库驱动 2. 创建并获取数据库连接 3. 创建jdbc statement对象 4. 设置sql语句 5. 设置sql语句中的参数(使用preparedStatement) 6. 通过statement执行sql并获取结果 7. 对sql执行结果进行解析处理 8. 释放资源(resultSet.preparedstatement.connection) 可以看出所有的