jdbc mysql 源码_源码详解系列(二) ------ jdbc-mysql的使用和分析

简介

什么是JDBC

JDBC是一套连接和操作数据库的标准、规范。通过提供DriverManager、Connection、Statement、ResultSet等接口将开发人员与数据库提供商隔离,开发人员只需要面对JDBC接口,无需关心怎么跟数据库交互。

几个重要的类

类名

作用

DriverManager

驱动管理器,用于注册驱动,是获取 Connection对象的入口

Driver

数据库驱动,用于获取Connection对象

Connection

数据库连接,用于获取Statement对象、管理事务

Statement

sql执行器,用于执行sql

ResultSet

结果集,用于封装和操作查询结果

prepareCall

用于调用存储过程

使用中的注意事项

记得释放资源。另外,ResultSet和Statement的关闭都不会导致Connection的关闭。

maven要引入oracle的驱动包,要把jar包安装在本地仓库或私服才行。

使用PreparedStatement而不是Statement。可以避免SQL注入,并且利用预编译的特点可以提高效率。

使用例子

需求

使用JDBC对mysql数据库的用户表进行增删改查。

工程环境

JDK:1.8

maven:3.6.1

IDE:sts4

mysql driver:8.0.15

mysql:5.7

主要步骤

一个完整的JDBC保存操作主要包括以下步骤:

注册驱动(JDK6后会自动注册,可忽略该步骤);

通过DriverManager获得Connection对象;

开启事务;

通过Connection获得PreparedStatement对象;

设置PreparedStatement的参数;

执行保存操作;

保存成功提交事务,保存失败回滚事务;

释放资源,包括Connection、PreparedStatement。

创建表

CREATE TABLE `demo_user` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id',

`name` varchar(16) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户名',

`age` int(3) unsigned DEFAULT NULL COMMENT '用户年龄',

`gmt_create` datetime DEFAULT NULL COMMENT '记录创建时间',

`gmt_modified` datetime DEFAULT NULL COMMENT '记录最近修改时间',

`deleted` bit(1) DEFAULT b'0' COMMENT '是否删除',

PRIMARY KEY (`id`),

UNIQUE KEY `uk_name` (`name`),

KEY `index_age` (`age`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

创建项目

项目类型Maven Project,打包方式jar

引入依赖

junit

junit

4.12

test

mysql

mysql-connector-java

8.0.15

注意:由于oracle商业版权问题,maven并不提供Oracle JDBC driver,需要将驱动包手动添加到本地仓库或私服。

编写jdbc.prperties

下面的url拼接了好几个参数,主要为了避免乱码和时区报错的异常。

路径:resources目录下

driver=com.mysql.cj.jdbc.Driver

url=jdbc:mysql://localhost:3306/github_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=true

#这里指定了字符编码和解码格式,时区,是否加密传输

username=root

password=root

#注意,xml配置是&采用&替代

如果是oracle数据库,配置如下:

driver=oracle.jdbc.driver.OracleDriver

url=jdbc:oracle:thin:@//localhost:1521/xe

username=system

password=root

获得Connection对象

private static Connection createConnection() throws Exception {

// 导入配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值