动力节点_JDBC学习笔记详解【源代码分析】

本文是关于动力节点杜聚宾老师的JDBC教程笔记,涵盖JDBC接口、编程六步、事务处理、悲观锁与乐观锁等内容。教程适合已掌握Java基础和数据库知识的学习者,强调面向接口编程和降低耦合的重要性。
摘要由CSDN通过智能技术生成

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


大家也可以通过杜老师的视频教程学习:

JDBC从入门到精通视频教程-JDBC实战精讲_哔哩哔哩_bilibili看完本套视频学习HTML 传送门:av62468669本套视频教程中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。https://www.bilibili.com/video/BV1Bt41137iB


1.JDBC是什么?

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

2.JDBC的本质是什么?

JDBC是SUN公司制定的一套接口(interface)。

接口都有调用者和实现者。

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

3.为什么要面向接口编程?

解耦合:降低程序的耦合度,提高程序的扩展力。

多态机制就是非常典型的:面向抽象编程。(不要面向具体编程)

4.为什么SUN制定一套JDBC接口呢?

因为每一个数据库产品都有自己独特的实现原理

5.JDBC编程六步(重点)

 1.注册驱动(告诉Java程序,即将连接的是哪个品牌的数据库)

2.获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,使用完后记得关闭通道)。

3.获取数据库操作对象(专门执行sql语句的对象)

4.执行SQL语句(DQL,DML…)

5.处理查询结果集 (只有当第四步执行的是select语句的时候,才有本步)

6.释放资源(使用完资源后一定要关闭资源,Java和数据库之间属于进程间的通信,开启之后一定要记得关闭)
 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
 
/*JDBC编程六步*/
public class JDBCTest1 {
    public static void main(String[] args) throws SQLException {
        Statement stmt=null;
        Connection conn=null;
        try {
 
            //1.注册驱动
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            //2.获取连接
            /*url:统一资源定位符(网络中某个资源的绝对路径)
            URL包含哪几部分:协议、IP、PORT、资源名
            http://是通信协议   什么是协议?有什么用?
            通信协议是通信之前就提前定好的数据传送格式,数据包具体怎么传数据,提前定好了格式
            182.61.200.7是服务器IP地址
            80 是服务器上软件的端口
            index.html是服务器上某个资源名
            */
            String url = "jdbc:mysql://localhost:3306/MySql?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
            String user ="root";
            String password="111111";
            conn=DriverManager.getConnection(url,user,password);
            System.out.println("数据库连接的对象 =" +conn);
            //3.获取数据库操作对象(statement专门执行sql语句的)
            stmt= conn.createStatement();
            //4.执行sql
            String sql="insert into dept(deptno,dname,loc) values(50,'人事部','北京')";
            //专门执行DML语句(insert、delete、update)
            //返回值是‘影响数据库中的记录条数’
            int count=stmt.executeUpdate(sql);
            System.out.println(count==1?"保存成功":"保存失败");//insert保存一条语句
 
            // 5.处理查询结果集
 
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            //6.释放资源(为了保证资源一定释放,在finally语句块中关闭资源)
            //并且要遵循从小到大依次关闭
            //分别对其try...catch
            try {
                if (stmt!=null){
                    stmt.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn!=null){
                    conn.close();
                }
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
 
}

 另外一种注册驱动的方式(利用反射机制,Driver中有一个自带静态方法)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class JDBCTest3 {
    //注册驱动的另一种方式(常用࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值