认识 JDBC
JDBC (Java DataBase Connectivity) 是 Java 数据库连接技术的简称,用于连接常用数据库。
Sun 公司提供了 JDBC API ,供程序员调用接口和类,集成在 java.sql 和 javax.sql 包中。
Sun 公司还提供了 DriverManager 类用来管理各种不同的JDBC驱动。
不同数据库厂商提供各自的JDBC驱动,所以我们想要连接数据库除了要了解 JDBC API 还需要下载各数据库厂商的驱动 jar 包。
JDBC API
JDBC API主要用于与数据库建立连接、执行SQL语句、处理结果,其中核心类和接口如下:
- DriverManager:依据数据库的不同,管理JDBC驱动
- Connection:负责连接数据库并担任传送数据的任务
- Statement:由 Connection 产生、负责执行SQL语句
- ResultSet:负责保存 Statement 执行后所产生的查询结果
JDBC 编码模板
1、与数据库建立连接并获取连接
Connection connection=DriverManager.getConnection(URL,数据库用户名,密码);2、发送SQL语句,得到执行结果
Statement stmt=connection.createStatement(); ResultSet rs=stmt.executeQuery(SQL语句);3、处理返回结果
while(rs.next()){ int a=rs.getInt("a"); String b=rs.getString("b"); Date d=rs.getDate("d"); …… }4、释放资源
rs.close(); stmt.close(); connection.close();使用 JDBC 连接到 MySQL 数据库
本例适合已经会使用 MySQL 数据库的同学,首先我们下载 JDBC 的驱动 jar 包。这个网址提供了 MySQL 各种语言连接数据库的驱动 https://www.mysql.com/products/connector/,MySQL Connector / J 8.0与从MySQL 5.5开始的所有MySQL版本兼容。
8.0下载地址
下载完成后解压,后将jar添加依赖到项目中。
连接到MySQL数据库
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DemoConnectMySQL { public static void main(String[] args) { //连接MySQL的URL String url="jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false"; //MySQL数据库用户名 String user="root"; //MySQL数据库的密码 String password="1234"; Connection connection=null; try { connection=DriverManager.getConnection(url, user, password); System.out.println("连接成功"); } catch (SQLException e) { e.printStackTrace(); }finally { try { connection.close(); System.out.println("连接关闭"); } catch (SQLException e) { e.printStackTrace(); } } } }url指定数据库的连接字符串,格式为:
jdbc:数据库://ip或域名:端口号?参数&参数……
这里的参数 useUnicode=true 使用Unicode字符,characterEncoding=utf8 设置编码防止中文乱码,serverTimezone=UTC 设置时区,useSSL=false 不使用SSL
jdbc4.0不需要加载驱动
PreparedStatement 增删改
PreparedStatement 继承了 Statement 接口,表示预编译的 SQL 语句对象,SQL 语句被预编译并存储在 PreparedStatement 对象中,可以使用此对象多次高效地执行该语句。(还避免了 SQL 注入的隐患)
先准备好数据库 books
表 book
| 字段 | 类型 | 属性 |
|---|---|---|
| id | 整数 | 主键,自增 |
| bName |
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率
|
