JDBC数据库的连接
简介:本文以简洁的篇幅带领大家快速入门java连接数据库,以查询为演示方案。
推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Driud数据库连接池的使用->ResultSet->通过PreparedStatement预防SQL注入->JDBC增删改查案例讲解 大家跟着敲完基本就可以JDBC基础毕业了。
编写代码步骤
- 创建工程,导入驱动jar包
下载官网:https://downloads.mysql.com/archives/c-j/
-
注册驱动
# mysql5的注册驱动的办法。 Class.forName("com.mysql.jdbc.Driver");
# mysql8的注册驱动的办法。 Class.forName("com.mysql.cj.jdbc.Driver");
-
获取连接
Connection conn = DriverManager.getConnection(url, username, password);
Java代码需要发送SQL给MySQL服务端,就需要先建立连接
-
定义SQL语句
String sql = “update…” ;
-
获取执行SQL对象
执行SQL语句需要SQL执行对象,而这个执行对象就是Statement对象
Statement stmt = conn.createStatement();
-
执行SQL
stmt.executeUpdate(sql);
-
处理返回结果
-
释放资源
具体操作
- 创建新的空的项目,定义项目的名称,并指定位置
- 对项目进行设置,JDK版本、编译版本
创建lib
导入驱动包
将mysql的驱动包放在模块下的lib目录(随意命名)下,并将该jar包添加为库文件
- 在添加为库文件的时候,有如下三个选项
- Global Library : 全局有效
- Project Library : 项目有效
- Module Library : 模块有效
创建src与创建类
快速入门代码
建表语句
/*
Navicat MySQL Data Transfer
Source Server : 本机
Source Server Type : MySQL
Source Server Version : 80024
Source Host : localhost:3306
Source Schema : books
Target Server Type : MySQL
Target Server Version : 80024
File Encoding : 65001
Date: 01/12/2022 12:53:02
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`reclD` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`title` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`price` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
insert into book values("1", "Java Programming", "Computer", "20"),
("2", "Java EE Technology", "Computer", "41"),
("3", "Information System", "Computer", "37");
package com.study.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* JDBC快速入门
*/
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//1. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获取连接
// String url = "jdbc:mysql://127.0.0.1:3306/books"; // 如果是mysql5这样写
String url = "jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true"; // 如果是mysql8这样写
String username = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url, username, password);
//3. 定义sql
String sql = "select * from book";
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
ResultSet rs = stmt.executeQuery(sql);
// //6. 处理结果
while(rs.next()){
// 获取数据
String recId = rs.getString(1);
String title = rs.getString(2);
String type = rs.getString(3);
double price = rs.getDouble(4);
System.out.print(recId + " ");
System.out.print(title + " ");
System.out.print(type + " ");
System.out.println(price);
System.out.println();
System.out.println("--------------");
}
//7. 释放资源
stmt.close();
conn.close();
}
}
运行结果: