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

JDBC连接数据库

JDBC介绍

JDBC:用Java代码操作关系数据库的API

全称: Java DataBase Connectivity, Java数据库连接;

JDBC本质:JDBC定义了操作所有关系型数据库的规则,即接口;

各个厂商去实现这套接口,提供数据库驱动jar包;

我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的视线类;

优点:研发就可以在不改变代码的情况下,使用JDBC操作不同的关系型数据库(Mysql/Oracle/DB2等),

如果后端更换了数据库,不需要根据不同的数据库重新编写代码,只需要更新后端驱动jar包即可;可以做到数据库的灵活切换;

JDBC连接MySQL 

操作步骤

1, 创建工程,导入驱动jar包

2, 注册驱动: Class.forName("com.mysql.jdbc.Driver"); 作用: 告诉代码用哪个驱动jar包;

3, 获取链接: Connection conn = DriverManager.getConnection(url, username, password);

4, 定义SQL语句: String sql = "update …";

5, 获取执行SQL对象: Statement stmt = conn.createStatement();

6, 执行SQL: stmt.executeUpdate(sql);

7, 处理返回结果

8, 释放资源

代码样例

	packageorg.example;
	
	importjava.sql.DriverManager;
	importjava.sql.Connection;
	importjava.sql.Statement;
	importjava.sql.ResultSet;
	
	//JDBC快速入门
	publicclassJDBCDemo{
	publicstaticvoidmain(String[]args)throwsException{
	//1.注册驱动
	Class.forName("com.mysql.cj.jdbc.Driver");
	//2.获取连接
	Stringurl="jdbc:mysql://x.x.x.x:3306/test01?useSSL=false&serverTimezone=UTC";
	Stringusername="username";
	Stringpassword="123456";
	
	Connectionconn=DriverManager.getConnection(url,username,password);
	
	//3.定义sql
	Stringsql="selectid,name,agefromhero";
	//4.获取执行sql的对象
	Statementstmt=conn.createStatement();
	//5.执行sql
	ResultSetrs=stmt.executeQuery(sql);
	//6.处理结果
	while(rs.next()){
	System.out.println(rs.getInt("id")+""+rs.getString("name")+""+rs.getFloat("age"));
	}
	//7.释放资源
	rs.close();
	stmt.close();
	conn.close();
	}
	}

说明: 

1, 注册驱动的时候,com.mysql.jdbc.Driver已经废弃了,使用会报错,最新采用com.mysql.cj.jdbc.Driver

2, URL连接时,如果不设置SSL会报warnings,可以显示设置SSL=false;

3, MySQL 5之后,Class.forName("com.mysql.cj.jdbc.Driver"); 可以省略

结果验证

 


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

相关文章:

  • AWS S3 跨账户访问 Cross Account Access
  • 【数据库】MySQL数据库SQL语句汇总
  • linux下的NFS和FTP部署
  • 光伏储能电解水制氢仿真模型Matlab/Simulink
  • 《Keras 3 在 TPU 上的肺炎分类》
  • SparkSQL数据模型综合实践
  • git版本问题Your branch is behind ‘origin/dev‘by 2 commits,
  • C语言中的磁盘映射与共享内存详解
  • C++设计模式——State状态模式
  • 基于开源链动 2 + 1 模式、AI 智能名片与 S2B2C 商城小程序的用户忠诚度计划
  • C# UDP与TCP点发【速发速断】模式
  • HTML5中`<area>`标签深入全面解析
  • 学习笔记|《白话机器学习的数学》
  • OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()的使用
  • C++中的for-each循环
  • 单例模式解析
  • 基于高通主板的ARM架构服务器
  • 深入理解Java虚拟机:Jvm总结-虚拟机字节码执行引擎
  • 面试常见题之java
  • 甘特图组件DHTMLX Gantt中文教程 - 如何实现持久UI状态
  • Redis的存储原理和数据模型
  • Linux EOF详解使用
  • vue3判断elementui中el-form是否更新变化,变化就提示是否保存,没变就直接离开
  • 语法课第七节 结构体 类 指针 引用(知识点+题目)
  • golang hertz框架入门
  • 数据结构 - 链表