javaweb实训第四天上午——JDBC入门(1)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 1.课程介绍1.介绍JDBC;(理解)2.使用JDBC完成CRUD(掌握)3.DAO层介绍(Dao层)(掌握)4.DAO层实现;(掌握)5.代码重构;(掌握)

1.课程介绍

1.介绍JDBC;(理解)

2.使用JDBC完成CRUD(掌握)

3.DAO层介绍(Dao层)(掌握)

4.DAO层实现;(掌握)

5.代码重构;(掌握)

2.什么是JDBC

2.1 JDBC引入

现在目前所学的知识,很散,很乱,很多,但是其实是有条线把所学的知识连接起来。

  ①HTML,CSS,JS – 前端页面,静态网页;

  ②Java加强 – 反射,单例,读取资源文件(解除硬编码),测试(JUtil),XML;

     1,处理数据

     2,执行流程

     3,面向对象

  ③MySQL数据库;


后面所要学习:

JSP+Servlet(会使用反射,单例,注解,XML(存放数据,读取数据,修改数据,删除数据))


Java代码操作数据库的唯一技术:-- JDBC


这两天学习内容:JDBC (会使用单例,读取资源文件,测试)

20210602092003114.png

2.2 持久化介绍

学习JDBC之前,需要了解一个概念----- 持久化
做软件需要保存很多数据,而数据保存到什么地方去?

①保存内存;(问题:一断电就没有了)

②保存到磁盘;(一直都存在,永久)


什么是持久化(persistence):


持久化(persistence):把数据保存到可掉电式存储设备(断电之后,数据还在,比如硬盘,U盘)中以供之后使用。

大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,

而持久化的实现过程大多通过各种关系数据库来完成。 mysql oracle


哪些可以做持久化?

记事本(通过流保存到记事本里面,但是记事本里面删除数据不容易,很少使用),

XML(把数据存在XML,但是XML查找,删除,修改 也是比较麻烦),

数据库(把数据存在数据库,可以直接通过SQL取到,比较容易)


结论:持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中,只是比较麻烦。

要把数据保存到数据库—通过JAVA代码去操作数据库(通过JDBC访问数据库)


在Java中,数据库存取技术只能通过JDBC访问数据库:

JDBC访问数据库的形式主要有两种:

 1).直接使用JDBC的API去访问数据库服务器(MySQL/Oracle).

 2).间接地使用JDBC的API去访问数据库服务器.(以后学习框架去替换JDBC)

第三方O/R Mapping工具,如Hibernate, MyBatis等.(底层依然是JDBC)

JDBC是java访问数据库的基石,其他技术都是对jdbc的封装.

持久化到数据库的技术,唯一的只有JDBC 其他的所有的实现都是基于jdbc


2.3 JDBC规范介绍

为什么要使用JDBC?

 因为把要数据持久化,持久化数据的最好方式就是把数据保存到数据库,而Java要数据保存到数据,就需要使用JDBC;


什么是JDBC?

 JDBC(Java DataBase Connectivity(Java数据库的连接)):

 是一种用于执行SQL语句(DML,DDL,DQL)的Java API,可以为多种关系数据库(oracle,mysql,SQL server)提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.


图示解释:

①JAVA 通过 JDBC 访问数据库


②数据库有很多 Mysql,Oracle,SqlServer等 – 不同的数据库由不同的公司开发,所以数据库的内部结构不同,由于内部结构不同,其他的程序操作数据库的方式都不一样,比如操作mysql,需要mysql的方式操作,而操作oracle,需要使用oracle的方式操作;


③JDBC都可以操作这些数据库–怎么做到的?

JDBC是接口,基准,工具-- 说明Java做了一组规范,它本身不实现这组规范。

为什么不去实现规范?

 原因:如果需要实现, 则需要写一套Mysql,写一套Oracle,写一套SqlServer,

 并且你需要访问MySql,Oracle,SqlServer的源码;

所以它不去实现规范,而且让各大厂商去实现这组规范;


④各大厂商怎么实现这组规范?–写Java代码,这些Java代码JDK中没有,所以它们准备自己的Jar包,所以每种数据库厂商 都需要提供Jar包,这样才能Java代码通过jar包就能访问对应的数据库.


20210602092745974.png


结论:以后我们不管使用哪一种数据库,都需要去导入这个数据库给我们提供的jdbc实现的jar包;

2.3.1 JDBC版本介绍

JDBC的版本:

JDBC隶属于JavaSE的范畴,伴随着JavaSE的版本升级.

Java分成3块 -JavaSE(基础),JavaME,JavaEE


为什么不直接学习JaveEE?

不管学习JavaME还是JavaEE,都必须先学习JavaSE;


JDBC的API在哪里?

 ①JDK的API中. java.sql包装的就是JDBC的API.

 ②各大数据库厂商就会对JDBC的API提供实现类.—>(jar包)驱动包

20210602092939343.png

20210602092945116.png


2.4小结

1.什么是JDBC

JDBC是接口 是规范,本身sun公司没有实现 需要各大数据库厂商实现;

2.持久化概念

把数据保存到可掉电的设备里面存储;

3.JDBC版本认识

3.使用JDBC完成CRUD

3.1 获取数据库连接

3.1.1 第一步:导包

20210602093024690.png


3.1.2 第二步:注册驱动

知道驱动的单词Driver 就可以开始了


操作数据库之前,第一步:注册驱动


什么是驱动:操作系统要用电脑上面的硬件(声卡,显卡,网卡),必须安装注册驱动,

现在很多操作系统,自动集成了各种万能驱动,简单理解,一个东西操作另外一个东西,需要驱动,就比如说 进入一个门,需要钥匙一样;

因此,Java要操作数据库,也需要注册驱动,这样才能建立联系


结论:必须注册驱动,Java才能和数据库建立联系;


怎么注册驱动?


==通过Driver – DriverManager(驱动管理) ==


能通过new DriverManger() 注册一个驱动吗?


new DriverManger()没有用,因为DriverManger 里面的方法全是静态的;


通过registerDriver(Driver driver)方法 向DriverManger注册给定驱动程序

代码:

  //创建一个mysql驱动
  Driver driver = new com.mysql.jdbc.Driver();
  //注册mysql驱动
  DriverManger.registerDriver(driver)

已经注册了驱动

②建驱动

②注册驱动

方式二:注册驱动:

20210602093246353.png

Class.forName(“com.mysql.jdbc.Driver”) 使用反射注册mysql驱动;
拿到类的方法 – 注册驱动

源码: – static 静态代码块,只有类加载的时候,就执行,并且只执行一次;

@Test
  public void testCreate() throws Exception {
    // 注册驱动
    //Class.forName("com.mysql.jdbc.Driver");
    Driver  driver=new com.mysql.jdbc.Driver();
    DriverManager.registerDriver(driver);
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
    // System.out.println(connection);
    Statement statement = connection.createStatement();
    String sql = "create table employee (id int(8) ,name varchar(20),sex int(2))";
    statement.executeUpdate(sql);
    // 事:关闭事物
    statement.close();
    connection.close();
  }


20210602093317950.png

20210602093328116.png

javaweb实训第四天上午——JDBC入门(2)https://developer.aliyun.com/article/1414843?spm=a2c6h.13148508.setting.46.6e1a4f0eQzpjQW

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
95 3
|
14天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
85 60
|
25天前
|
Java 数据库连接 数据库
springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
通过上述步骤,可以有效解决Spring Boot项目中遇到的 `java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver`问题。确保在项目中正确添加达梦数据库的JDBC驱动依赖,并在配置文件中正确配置数据源信息,是解决此问题的关键。通过这些方法,可以确保Spring Boot项目能够正确连接达梦数据库并正常运行。
175 31
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
70 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
2月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
96 5
|
2月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
39 1
|
2月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
56 3

热门文章

最新文章