蔡不菜和他的uU们

  • 首页
  • 新鲜出炉
  • 我的记录
  • 我的动态
  • 我和uU
  • 好用分享
  • 关于与留言
志合者,不以山海为远;道乖者,不以咫尺为近
  1. 首页
  2. 学习,学习
  3. 正文

JDBC

2022年7月9日 413人阅读 0人点赞 0条评论

JDBC概述

1 JDBC是什么

Java database connectivity(Java语言连接数据库)

2 JDBC本质是什么

JDBC是SUN公司制定的一套接口(interface)java.sql.*(这个软件包下有很多接口)

3 面向接口编程

面向接口调用,面向接口写实现类

思考:为什么要面向接口编程?

解耦合:降低程序的耦合度,提高程序的扩展力,多态机制就是非常典型的,面向抽象编程

思考:为什么SUN制定一套JDBC接口呢?
因为每一个数据库的底层实现原理是不一样的,oracle数据库有自己的原理,MySQL数据库有自己的原理。每一个数据库产品都有自己独特的实现原理。JDBC接口是统一的规范,无论哪个数据库厂家都需要根据我提供的接口进行实现,我只需要调用接口,无需关注你具体的实现细节,降低耦合。如果没有这一接口,你的程序实现可能就和数据库的实现逻辑深度绑定,难以切换,耦合度高。

JDBC编程六步

第一步:注册驱动(告诉java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示jvm的进程与数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行sql语句(DQL,DML)
第五步:处理查询结果(只有当第四步执行的是select语句的时候,才有第五步处理查询的结果采集)
第六步:释放资源(使用完资源之后一定要关闭资源,java和数据库属于进程间的通信,开启之后一定要关闭)

注册驱动

第一种方式

Driver driver = new com.mysql.jdbc.Driver();
DriverManager.register(driver);
// 也可以直接在注册中new

第二种方式

Class.forName("com.mysql.jdbc.Driver")

获取数据库连接

Connection conn = DriverManger.getConnection(url,username,,password)

执行SQL

定义sql语句

executeUpdate(删除,插入,更新) 返回Int

executeQuery(查询) 返回ResultSet

处理查询结果集

释放资源

按顺序关闭,

  1. 关闭查询结果resultset
  2. 关闭执行对象preparedstatement
  3. 关闭连接对象connection

配置分离

定义jdbc.properties文件

配置信息

driver:
url:
username:
password:

加载属性文件(两种方式)

一、资源绑定器方式

// 使用资源绑定器绑定属性配置文件
ResourceBundle bundle = ResourceBundle.getBuncle("jdbc")
// 获取配置信息
String driver = bundle.getString("dirver")

二、使用Properties 

private static Properties properties = new Properties();
// 加载配置文件 (输入流)
InputStream in = DbUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");

// 通过load()方法将输入流的内容加载到配置文件对象中
properties.load(in);
// 获取属性
properties。getProperty("jdbc.drive")

DBUtils封装

工具类中的方法是静态的

获取连接对象方法

getConnection()

资源关闭方法

close()

使用static静态块加载(定义在static{}中在类加载时,只执行一次),注册驱动

static {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

SQL语句的占位符

得到操作对象ps,使用?作为占位符,默认索引从1开始,设置方法
ps.setInt()
ps.setString()
...

模糊查询

其他

两种获取数据库操作对象方法区别

createStatment()

preparedStatement()// 得到的是预编译对象,速度更快

高级

事务处理

安全问题
...

标签: Java 数据库原理
最后更新:2022年7月9日

Csy

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
文章目录
  • JDBC概述
    • 1 JDBC是什么
    • 2 JDBC本质是什么
    • 3 面向接口编程
  • JDBC编程六步
  • 注册驱动
    • 第一种方式
    • 第二种方式
  • 获取数据库连接
  • 执行SQL
    • 定义sql语句
  • 处理查询结果集
  • 释放资源
  • 配置分离
    • 定义jdbc.properties文件
    • 加载属性文件(两种方式)
  • DBUtils封装
    • 获取连接对象方法
    • 资源关闭方法
    • 使用static静态块加载(定义在static{}中在类加载时,只执行一次),注册驱动
  • SQL语句的占位符
    • 模糊查询
  • 其他
    • 两种获取数据库操作对象方法区别
  • 高级

COPYRIGHT © 2021 caibucai.top. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

豫ICP备2021018055号