前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动力节点-专为初学者打造的JDBC学习笔记

动力节点-专为初学者打造的JDBC学习笔记

原创
作者头像
晴天娃娃只会笑不会哭
发布2022-02-24 14:22:03
1.5K0
发布2022-02-24 14:22:03
举报
文章被收录于专栏:Javaweb笔记

本文中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。是根据B站动力节点老杜的视频教程做的笔记哦!!!

废话不多说直接开干!!!

若有不懂的可以搭配视频学习,边看视频边操作及记笔记,这样更有效哦!

https://www.bilibili.com/video/BV1Bt41137iB


1、什么是JDBC

Java DataBase Connectivity(Java语言连接数据库)

2、JDBC的本质

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

接口都有调用者和实现者。 面向接口调用、面向接口写实现类,这都属于面向接口编程。

为什么要面向接口编程? 解耦合:降低程序的耦合度,提高程序的扩展力。 多态机制就是非常典型的:面向抽象编程。(不要面向具体编程) 建议:

Animal a = new Cat(); Animal a = new Dog(); // 喂养的方法 public void feed(Animal a){ // 面向父类型编程。 } 不建议: Dog d = new Dog(); Cat c = new Cat(); 思考:为什么SUN制定一套JDBC接口呢?

  • 因为每一个数据库的底层实现原理都不一样。
  • Oracle数据库有自己的原理。
  • MySQL数据库也有自己的原理。
  • MS SqlServer数据库也有自己的原理。
  • ....
  • 每一个数据库产品都有自己独特的实现原理。

JDBC的本质到底是什么? 一套接口。


3、JDBC开发前的准备工作,先从官网下载对应的驱动jar包,然后将其配置到环境变量classpath当中。

classpath=.;D:\course\06-JDBC\resources\MySql Connector Java 5.1.23\mysql-connector-java-5.1.23-bin.jar

以上的配置是针对于文本编辑器的方式开发,使用IDEA工具的时候,不需要配置以上的环境变量。 IDEA有自己的配置方式。

4、JDBC编程六步(重点)

第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)

第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭

通道。)

第三步:获取数据库操作对象(专门执行sql语句的对象)

第四步:执行SQL语句(DQL DML....)

第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)

第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)

注册驱动方式两种

使用资源绑定器绑定属性配置文件

URL解析

5.遍历结果集

idea 导入.jar包

字符串中拼变量 (sql)单引号中 加双引号 加两个加号++ 加号里面加变量

PreparedStatement预编译 查(SELECT) 第四步用 rs = ps.executeQuery(“字段”);

增删改(INSERT DELETE UPDATE) 第四步用 rs= ps.executeUpdate(“字段”);

框架(select)

代码语言:javascript
复制
public static void main(String[] args){
    Connection conn = null;
    PreparedStatement ps = null;//加d是名词
    ResultSet rs = null;
 
    try {
        //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.获取连接
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/codeyuaiiao?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8","root","3615yuhaijiao");
        //3.获取预编译的数据库操作对象
        String sql = "select * from student";
        ps = conn.prepareStatement(sql);//动词
        //4.执行sql语句
        rs = ps.executeQuery();//查询select
        //rs = ps.executeUpdate();//增删改都是用Update(INSERT DELETE UPDATE)
        //5.处理查询结果集
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        //6.释放资源
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
 
 
}

事务三件套 (开启 提交 回滚) conn.setAutoCommit(false); 关闭自动提交 开启事务 conn.commit(); 手动提交 conn.rollback(); catch中写 回滚 if(conn != null){ ​ try{ ​ conn.rollback();

​ }catch(sqlException e1){ ​ e1.printStackTrace();

​ }

}

  • 行级锁 (for Update)
  • 悲观锁:事务没结束之前,事务必须排队,一整行记录不准改动,不允许并发。
  • 乐观锁:支持并发,事务不排队,需要一个版本号。一个事务发现前后的版本号不一致了 就执行回滚操作 ,本次操作不执行。

​END!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是JDBC
  • 2、JDBC的本质
  • 3、JDBC开发前的准备工作,先从官网下载对应的驱动jar包,然后将其配置到环境变量classpath当中。
  • 4、JDBC编程六步(重点)
  • 5.遍历结果集
  • ​END!!!
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档