背景

  • 持久化:把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的更多相关文章

  1. JAVA数据库编程(JDBC技术)-入门笔记

    本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学 ...

  2. Java数据库编程(JDBC)

    一.使用Java对数据库的操作步骤: 1.根据应用程序的数据库类型,加载相应的驱动: 2.连接到数据库,得到Connection对象: 3.通过Connection创建Statement对象: 4.使 ...

  3. 菜鸡的Java笔记 java数据库编程(JDBC)

    java数据库编程(JDBC)        介绍 JDBC 的基本功能            content (内容)        现在几乎所有的项目开发过程之中都不可能离开数据库,所以在java ...

  4. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

  5. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

  6. java数据库编程——读写LOB、可滚动和可更新的结果集、元数据

    java 数据库编程 1. 读写LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其它数据.在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB. 要读取LOB,需要 ...

  7. JDBC与JAVA数据库编程

    一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. JDBC的主要功能 a) 创建 ...

  8. java 数据库编程 学习笔记 不断更新

    最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序   ( ...

  9. JAVA数据库编程、JAVA XML解析技术

    JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...

随机推荐

  1. 总结traefik 在k8s 环境中的配置文件

    总结traefik 在k8s 环境中的配置文件 traefik.toml配置文件引用 [www@localhost traefik-ingress]$ more * :::::::::::::: co ...

  2. Docker遇到的异常和注意点

    Docker遇到的异常和注意点 整理一些使用docker的时候,遇到的问题和解决办法 遇到的一些异常和解决方法 删除镜像时出现: Error response from daemon: conflic ...

  3. nacos下载慢吗?来这里

    https://gitee.com/soul_PreCoder/springcloudalibab/repository/archive/master.zip

  4. 【C/C++】面向对象开发的优缺点

    原创文章,转发请注明出处. 面向对象开发的优缺点 面向对象开发 是相对于 面向过程开发 的一种改进思路. 由于流水线式的面相过程开发非常直接,高效.在面对一些简单项目时,只需要几百行,甚至是几十行代码 ...

  5. malloc函数详解 glibc2.27

    malloc 函数分析(glibc.2.27) 本人菜一只,如果分析的有错误,请大佬指正. __libc_malloc函数分析 void * __libc_malloc (size_t bytes) ...

  6. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之本地仓库-06

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之本地仓库-06 欢迎加QQ群:1026880196 进行讨论 1. 安装docker registry ...

  7. CountDownLatch与CyclicBarrier的基本使用

    1 概述 CountDownLatch以及CyclicBarrier都是Java里面的同步工具之一,本文介绍了两者的基本原理以及基本使用方法. 2 CountDownLatch CountDownLa ...

  8. Spring Boot demo系列(十):Redis缓存

    1 概述 本文演示了如何在Spring Boot中将Redis作为缓存使用,具体的内容包括: 环境搭建 项目搭建 测试 2 环境 Redis MySQL MyBatis Plus 3 Redis安装 ...

  9. Spring Boot demo系列(三):Spring Web+MyBatis Plus

    2021.2.24 更新 1 概述 Spring Web+MyBatis Plus的一个Demo,内容和上一篇类似,因此重点放在MyBatis Plus这里. 2 dao层 MyBatis Plus相 ...

  10. Foreign Exchange UVA - 10763

      Your non-profit organization (iCORE - international Confederation of Revolver Enthusiasts) coordin ...