当前位置: 首页 > article >正文

第9章 JDBC编程

Java面向对象程序设计-T9(JDBC编程)

一、JDBC简介

​ JDBC(Java DataBase Connectivity):Java数据库连接,是连接Java和数据库的桥梁,是一种可以执行SQL语句的Java API(应用程序接口)。通过Java API可以连接到数据库,并使用SQL语句实现对数据的

​ 为了使JDBC程序可以执行和跨平台,需要不同的数据库产商提供相应的驱动程序。

image-20220426070049409

二、使用JDBC实现MySQL数据库的增删改查

image-20220426074430604

1、获取连接

  • Java连接MySQL数据库需要MySQL产商提供驱动支持,所以需要引入资源包(jar包)

    • 在Java中加载驱动的代码:

      Class.forName("com.mysql.jdbc.Driver");
      

image-20220426075211622

  • 后期在进行增删改查操作操作的时候都需要连接数据库(获取连接),所以需要我们可以把获取连接的代码封装成一个方法,方便调用。连接数据库需要提供三部分的内容:数据库连接地址、数据库账号、数据库密码

    本机地址的两种表现形式:

    • localhost
    • 127.0.0.1
    • 地址:jdbc:mysql://localhost:3306/jw2104
    • 账号:root
    • 密码:根据情况决定
  • 在Java中,获取数据库连接使用的类是DriverManager,使用的其中的getConnection()可以实现数据库的连接,getConnection()的具体语法:

    DriverManager.getConnection(数据库地址,数据库用户名,数据库密码);
    

在jdbc操作中,如果设计到中文,需要characterEncoding属性,否则会出现中文乱码问题,具体设置方式为:

在url结尾追加属性:

jdbc:mysql://localhost:3306/jw2104?characterEncoding=utf-8

在控制台输出的时候,会出现安全连接的警告:

image-20220426113205529

如果需要关闭安全连接,可以继续在url结尾追加属性useSSL

jdbc:mysql://localhost:3306/jw2104?characterEncoding=utf-8&useSSL=false

编写连接数据的代码

(1)创建Java项目

image-20220426084837941

(2)新建文件夹lib,导入jar包,并加载jar包内容

image-20220426084935649

image-20220426085133623

(3)在com.ynnz.utils包中编写数据库工具类DBUtils.java

package com.ynnz.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtils {
   
	// 加载驱动
	static {
   
		try {
   
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
   
			e.printStackTrace();
		}
	}

	// 获取连接
	public static Connection getConn() {
   
		try {
   
			return DriverManager.getConnection("jdbc:mysql://localhost:3306/jw2104", "root", "123456");
		} catch (SQLException e) {
   
			e.printStackTrace();
		}
		return null;
	}
	
    // 测试数据库是否连接成功
	public static void main(String[] args) {
   
		System.out.println(getConn());
	}
}

(4)测试数据库是否连接成功

连接数据库常见错误

  • 没有创建数据库

    image-20220426090913837

  • 驱动地址不正确

    image-20220426091052314

  • 账号或密码不正确

    image-20220426091336595

    image-20220426091456505

2、使用JDBC实现新增操作

准备工作

  • 新建数据库jw2104

  • 新建数据表student

    image-20220426092824812

【JDBC使用步骤】

  • 获取连接

    直接调用工具类DBUtils中的getConn()即可

    Connection conn = DBUtils.getConn();
    
  • 编写SQL语句

    在jdbc中,编写SQL语句时,不能直接写值,值需要使用占位符?表示

  • 加载SQL语句

    在jdbc中加载SQL语句需要使用PreparedStatement中的prepareSt


http://www.kler.cn/a/374712.html

相关文章:

  • Golang | Leetcode Golang题解之第516题最长回文子序列
  • 盘点Windows10系统之下好用的录屏工具!
  • Flask
  • 网安秋招面试
  • git 提交仓库
  • 配电柜弧光保护装置的应用与功能
  • Golang | Leetcode Golang题解之第517题超级洗衣机
  • #渗透测试#SRC漏洞挖掘# 信息收集-Shodan之搜索语法进阶
  • 5G基站开通与调测
  • 重塑重工起重行业未来:网关与云平台携手共创价值新篇章
  • 基于单片机的库房环境监测控制系统设计
  • 浅析国产晶体管输出光耦合器
  • 【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)
  • 【题解】【分治】——Secret Cow Code S
  • 深入探讨 HTTP 与 HTTPS
  • 高效 TCP 代理服务器的实战解析:Go 语言编写的高性能代理实例20241028
  • LeetCode题练习与总结:设计推特--355
  • 浅谈人工智能之基于LLaMA-Factory进行Qwen2微调:医疗大模型
  • Verilog实现的莫尔斯电码发生器
  • 群控系统服务端开发模式-应用开发-上传配置功能开发
  • 计算机毕业设计 | springboot+vue电影院会员管理系统 影院后台管理(附源码)
  • Python 实现深度学习模型预测控制--预测模型构建
  • ISO 26262与ISO 21434:汽车安全领域的双重保障与交汇探索
  • 开启TikTok直播的全攻略:从网络条件到设备准备
  • API接口开放与安全管控 - 原理与实践
  • 城市交通场景分割系统:Web前端可视化