Java开发工程师(Web方向) - 03.数据库开发 - 第1章.JDBC

第1章--JDBC

JDBC基础

通过Java Database Connectivity可以实现Java程序对后端数据库的访问

一个完整的数据库部署架构,通常是由客户端和服务器端两部分组成

客户端封装数据库请求,并发送给服务器端,服务器端执行完毕后将结果返回给客户端

常见客户端工具:

MySQL Workbench(图形化工具操作简单,但只能实现简单的查询)

JDBC(驱动程序jar包)

命令行工具(直接敲入SQL语句进行查询)

市面上多种数据库不尽相同,学习成本高,数据库迁移的移植性

-- JDBC(普通的Java类库): 应用程序通过统一的接口,即可实现对任意数据库的访问。

对于数据库厂商来说,JDBC就是一套接口规范,每一个数据库都需要实现JDBC定义的接口,用户通过接口访问数据库即可。

JDBC优势:对数据库的访问简单,开发快捷、省时间,面向不同数据库时的移植性强,在JDBC上可以定制功能强大的框架(如MyBatis)

体系架构:

上层API层负责与Java Web程序之间的通信

JDBC API:

Driver & DriverManager:

Driver是驱动程序的抽象,通过操作Driver接口,可以实现对各个驱动程序的操作

DriverManager是驱动程序的管理类,用户通过Class.forname(DriverName)向DriverManager注册一个驱动程序,

之后通过DriverManager的getConnection方法调用该驱动程序建立到后端数据库的物理连接。

DriverManager.getConnection(DB_URL, USER, PASS));

// USER和PASS在部署数据库时获得

// DB_URL是后端数据库实例的唯一标识符

i.e. jdbc : mysql : //10.164.172.20:3306/cloud_study

协议  子协议      子名称(主机  端口    数据库)

(子协议不同,子名称的格式也略有不同。)

Connection:通过DriverManager的getConnection方法获得的到后端数据库的物理连接

Java应用程序对后端数据库的一条物理连接

通过这些连接,可以执行一些SQL语句:

Statement stmt = conn.createStatement(); // sql statement

Statement:sql语句的容器,用于承载sql语句,在该容器中,可以进行增删改查等操作

通过executeQuery方法,执行数据库查询并得到返回结果的集合,以ResultSet类的对象来表示:

ResultSet rs = stmt.executeQuery("select userName from user");

通过executeUpdate方法,执行数据库更新、删除语句,返回的是int值的对象,代表被影响的数据库记录数量

ResultSet对象表示一个sql语句查询的结果。

关系型数据库:二元表 -- ResultSet对象也是由行和列组成的

ResultSet对象内部有一个指针,指向当前对应的行记录(默认指向第一行记录)

.next():将指针移动到下一行

.previous():将指针移动到下一行

.absolute():将指针定位在某一行

.beforeFirst():将指针移到第一行的之前(通过.next()才能到第一行)

.afterLast():将指针移到最后一行之后

.getString(ColumnName/Index):(index从0开始)获取对应列的值

.getInt(ColumnName/Index):

.getObject(ColumnName/Index):

SQLException:在执行过程中MySQL可能会抛出一些异常

通过捕获SQLException对象来进行异常的处理

下层Driver API层负责与具体的数据库建立连接,一般而言下层的driver都是由数据库厂商提供的。

安装JDBC:

JDBC已经集成在JDK中,可以直接引用,无需安装。

需要安装的是数据库的驱动程序

对于MySQL数据库:

登陆Oracle账号,下载jar包,添加到java web project中。

https://dev.mysql.com/downloads/connector/ 下载Connector/J 5.1.43

构建完整的Java Web程序:

构建步骤:

装载驱动程序:向DriverManager注册一个驱动程序Driver

建立数据库连接:DriverManager.getConnection()

执行SQL语句:Statement.execute...()

获取执行结果:ResultSet对象

清理环境:

使用JDBC之前,需要准备一个数据库的后端实例,创建一个user表

时间: 2024-09-04 12:21:59

Java开发工程师(Web方向) - 03.数据库开发 - 第1章.JDBC的相关文章

Java开发工程师(Web方向) - 03.数据库开发 - 第4章.事务

第4章--事务 事务原理与开发 事务Transaction: 什么是事务? 事务是并发控制的基本单位,指作为单个逻辑工作单元执行的一系列操作,且逻辑工作单元需满足ACID特性. i.e. 银行转账:开始交易:张三账户扣除100元:李四账户增加100元:结束交易. 事务的特性:ACID 原子性 Atomicity:整个交易必须作为一个整体来执行.(要么全部执行,要么全部不执行) 一致性 Consistency:整个交易总体资金不变 隔离性 Isolation: case1: 若张三给李四转账过程中

Java开发工程师(Web方向) - 03.数据库开发 - 期末考试

期末考试 编程题 本编程题包含4个小题,覆盖知识点从基础的JDBC.连接池到MyBatis. 1(10分) 有一款在线教育产品"天天向上"主要实现了在手机上查看课程表的功能.该产品的后端系统有一张保存了所有客户课程信息的数据库表,表结构如下: 请使用JDBC编写一段程序,实现读取用户名为"ZhangSan"的同学的所有课程名称,输出到控制台终端. 答: 数据库: /usr/local/mysql/bin ./mysql -u root -p mysql> CR

Java开发工程师(Web方向) - 04.Spring框架 - 第2章.IoC容器

第2章.IoC容器 IoC容器概述 abstract: 介绍IoC和bean的用处和使用 IoC容器处于整个Spring框架中比较核心的位置:Core Container: Beans, Core, Context, SpEL 为上层AOP/Aspects/Instrumentation/Messaging提供支持 IoC容器的用途: 创建对象的依赖,最后组装成所需的业务对象 容器通过业务对象和配置(application-context.xml; xxxController.java)-->生

Java开发工程师(Web方向) - 04.Spring框架 - 第3章.AOP技术

Spring框架 - AOP概述 笔记https://my.oschina.net/hava/blog/758873Spring框架 - AOP使用 笔记https://my.oschina.net/hava/blog/758881 AOP技术单元测试 返回 本次得分为:7.00/7.00, 本次测试的提交时间为:2017-09-11, 如果你认为本次测试成绩不理想,你可以选择再做一次. 1 单选(2分) 如下关于AOP的描述中错误的是: 得分/总分 A. AOP可以对代码进行解耦: B. A

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven

第4章--Maven Maven实战 Java Web应用的部署: 手动式: 编译:javac -cp $CATALINA_HOME/lib/servlet-api.jar web-inf/classes/package/NoodlesServlet.java 打包:jar cvf Restaurant.war . 移动:mv Restaurant.war .../webapps/ 项目复杂时:比如项目文件很多 -- IDE如eclipse --> IDE式:(如eclipse) 下载第三方依赖

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢

第6章--蜂巢 蜂巢简介 网站开发完,就需要测试.部署.在服务器上运行. 网易蜂巢: 采用Docker容器化技术的云计算平台 https://c.163.com 容器管理:容器可被视作为云主机的服务器 服务管理:服务可由多个容器组成,可以有多个副本 镜像仓库:可快速创建容器和服务 后端服务:blahblahblah 特点: 保证环境一致: 实际中开发环境.测试环境.生产环境等会不大相同 环境差异可能会导致业务代码运行得到不同结果 蜂巢底层采用Docker容器:把业务代码和运行环境打包成为一个镜像

Java开发工程师(Web方向) - 02.Servlet技术 - 期末考试

Servlet课程考试 Servlet课程考试 Servlet课程考试 总分:55分 限定时间:120分钟 进入考试 答案已成功提交!请耐心等待成绩公布 Servlet课程考试: 1(12分) 简单谈一下你理解的Servlet是什么,以及Servlet的工作原理. Servlet即Server Applet,是在服务器端运行的程序.一个Servlet对象实际上就是一个Java类. 浏览器在与服务器通信时,浏览器先向服务器发出请求,该请求被Servlet容器解析并发送给对应Servlet对象后,由

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Servlet应用

第3章.Servlet应用 转发与重定向 过滤器与监听器 Servlet并发处理

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第2章.HTTP协议简介

第2章--HTTP协议简介 HTTP协议简介 Abstract: HTTP协议的特性,HTTP请求/响应的过程,HTTP请求/响应的报文格式等知识,最后会演示如何通过Chrome提供的开发者工具,去跟踪调试一次HTTP请求. HTTP protocol: 请求响应式协议: client -->  server : HTTP 请求 client <--  server : HTTP 响应 一个HTTP请求和一个HTTP响应 -->  一次HTTP事务 任意两次HTTP事务都是indepen