[Java] 数据库编程JDBC
背景
- 持久化:把Java对象保存在硬盘中
- 序列化:将对象转换为二进制对象,再保存
- 保存在关系型数据库中
- Object-Relational Mapping(对象-关系映射框架,或ORM框架):把对象属性变成数据库的行-列,进而存储在数据库中
- Java Database Connective JDBC(Java数据库连接技术):Java提供的一组与平台无关的数据库操作标准,用于Java与关系型数据库的连接
- O/R Mapping中间件
- EJB:对JDBC的重量级封装,用面向对象的风格实现数据的创建、读取、查询等操作
- Hibernate:对JDBC的轻量级封装,把Java属性用声明的方式映射到数据库表,采用反射机制实现了持久化
- Spring:基于IOC和AOP的结构J2EE系统的框架
- MyBatis:一种半自动的ORM框架,前身是iBatis
操作形式
- JDBC本地驱动:由不同的数据库生产商根据JDBC定义的操作标准实现驱动程序,程序可直接通过JDBC进行数据库的连接操作,性能较高,但需对不同数据库编写相应驱动
- JDBC网络驱动:利用特定的数据库连接协议进行数据库的网络连接,可连接任何一个指定服务器的数据库,实际开发使用最多

连接步骤
- 向容器中加载数据库驱动程序
- 通过DriverManager类根据指定数据库连接信息取得数据库连接
- 利用Statement、PreparedStatement、ResultSet实现数据库CRUD操作
- 释放占用的资源
连接数据库
1 import java.sql.Connection;
2 import java.sql.DriverManager;
3 import java.sql.SQLException;
4
5 public class TestDemo {
6 public static void main(String[] args) {
7 try {
8 Class.forName("com.mysql.jdbc.Driver");
9 Connection c = DriverManager.getConnection(
10 "jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false",
11 "root", "Chen1227+");
12 System.out.println("数据库连接成功!" + c);
13 } catch (ClassNotFoundException e) {
14 e.printStackTrace();
15 }catch(SQLException e) {
16 e.printStackTrace();
17 }
18 }
19 }

查询数据
1 import java.sql.Connection;
2 import java.sql.DriverManager;
3 import java.sql.ResultSet;
4 import java.sql.SQLException;
5 import java.sql.Statement;
6
7 public class TestDemo {
8 public static void main(String[] args) {
9 try {
10 // 加载数据库驱动
11 Class.forName("com.mysql.jdbc.Driver");
12
13 // 连接数据库
14 Connection c = DriverManager.getConnection(
15 "jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false",
16 "root", "Chen1227+");
17 System.out.println("数据库连接成功!" + c);
18
19 // 建立连接
20 Statement s = c.createStatement();
21 System.out.println("获取 Statement对象: " + s);
22
23 // 执行SQL语句
24 String sql = "SELECT order_num, cust_id FROM Orders";
25 ResultSet re = s.executeQuery(sql);
26 while(re.next()) {
27 int order = re.getInt("order_num");
28 int cust = re.getInt("cust_id");
29 System.out.println(order + "," + cust);
30 }
31 System.out.println("执行语句成功!");
32
33 // 关闭资源
34 re.close();
35 s.close();
36 c.close();
37 System.out.println("资源关闭成功!");
38
39 } catch (ClassNotFoundException e) {
40 e.printStackTrace();
41 }catch(SQLException e) {
42 e.printStackTrace();
43 }
44 }
45 }

[Java] 数据库编程JDBC的更多相关文章
- JAVA数据库编程(JDBC技术)-入门笔记
本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学 ...
- Java数据库编程(JDBC)
一.使用Java对数据库的操作步骤: 1.根据应用程序的数据库类型,加载相应的驱动: 2.连接到数据库,得到Connection对象: 3.通过Connection创建Statement对象: 4.使 ...
- 菜鸡的Java笔记 java数据库编程(JDBC)
java数据库编程(JDBC) 介绍 JDBC 的基本功能 content (内容) 现在几乎所有的项目开发过程之中都不可能离开数据库,所以在java ...
- java面向对象下:Java数据库编程
19.Java数据库编程: JDBC概述: JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...
- Java数据库编程、XML解析技术
数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...
- java数据库编程——读写LOB、可滚动和可更新的结果集、元数据
java 数据库编程 1. 读写LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其它数据.在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB. 要读取LOB,需要 ...
- JDBC与JAVA数据库编程
一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. JDBC的主要功能 a) 创建 ...
- java 数据库编程 学习笔记 不断更新
最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序 → 执行SQL语句 →数据库 → 检索数据结果 → 应用程序 ( ...
- JAVA数据库编程、JAVA XML解析技术
JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...
随机推荐
- PaddleOCR详解
@ 目录 PaddleOCR简介 环境配置 PaddleOCR2.0的配置环境 Docker 数据集 文本检测 使用自己的数据集 文本识别 使用自己的数据集 字典 自定义字典 添加空格类别 文本角度分 ...
- ls(list)命令详解及生产使用示例
文件有文件名与数据,在linux上被分为两个部分:用户数据(user data)与元数据(metadata) 用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方,我们将其称 ...
- [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.3 阻抗和传递函数图形的构建
8.3 阻抗和传递函数图形的构建 通常,我们可以通过观察来绘制近似的bode图,这样没有大量混乱的代数和不可避免的有关代数错误.使用这种方法可以对电路运行有较好的了解.在各种频率下哪些元件主导电路的响 ...
- oo第二单元——多线程魔鬼电梯
在初步认识了面向对象思想后,立刻进入了多线程的学习,本单元的难点主要是锁的理解,需要保证线程安全的同时防止死锁的发生,也要尽可能缩小锁的范围,提高性能.这一单元以电梯为载体,让我们从生活出发,从电梯运 ...
- (十二)struts2的类型转换
所有的MVC框架,都属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件. 这时问题出现了,所有的请求参数都是字符串类型数据,因此MVC框架必须具备将这些字符串请求参数转 ...
- 浅谈Android中的事件分发机制
View事件分发机制的本质就是就是MotionEvent事件的分发过程,即MotionEvent产生后是怎样在View之间传递及处理的. 首先介绍一下什么是MotionEvent.所谓MotionEv ...
- 关于C语言解决汉诺塔(hanoi)问题
C语言解决汉诺塔问题 汉诺塔是典型的递归调用问题: hanoi简介:印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔.不论白天黑夜,总有一个僧侣 ...
- Leedcode算法专题训练(数组与矩阵)
1. 把数组中的 0 移到末尾 283. Move Zeroes (Easy) Leetcode / 力扣 class Solution { public void moveZeroes(int[] ...
- 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...
- WinForm只运行运行一个实例(单开)
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.F ...