JDBC是什么?
- JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
- JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
开发工具
- java开发环境中默认存在的:java.sql、javax.sql
- 数据库驱动包:mysql-connector-java-5.1.47.jar (这是因为笔者使用的mysql版本是5.7.34,另外可去https://mvnrepository.com/artifact/mysql/mysql-connector-java 搜索下载与自己Mysql版本一致的)
步骤
1、创建测试数据库
创建数据库的sql语句如下:
-- 第一个JDBC
CREATE DATABASE `jdbcStudy` CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `jdbcStudy`;
CREATE TABLE `users`(
`id` INT PRIMARY KEY,
`NAME` VARCHAR(40),
`password` VARCHAR(40),
`email` VARCHAR(60),
`birthday` DATE
);
INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
(2,'lisi','123456','lisi@sina.com','1981-12-04'),
(3,'wangwu','123456','wangwu@sina.com','1979-12-04')
-- [2021-07-25 21:46:46.904][LocalHost][000004][MYSQL]
-- 将列名NAME改为name
ALTER TABLE `jdbcstudy`.`users`
CHANGE COLUMN `NAME` `name` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `id`;
cmd登录进入Mysql后,执行该sql语句创建了数据库jdbcstudy,里面唯一的一张表users如下:
2、创建一个普通项目
IDEA一路next即可
3、导入数据库驱动
(1)一般在工程目录下新建一个lib目录,将下载好的mysql-connector-java-5.1.47.jar <Ctrl+c> <Ctrl+v>复制过来,如下所示:
然后点击lib目录,右键,点击“Add as Library…”,点击“OK”。
(2)也可以点击"File"–>“Project Structure…”–>“Libraries”,点击"+",选择jar包所在路径添加进来:
然后就能在Project视图的External Libraries 目录下看到jar包导入进来了:
3、编写测试代码
package JdbcLearning01;
import java.sql.*;
public class JdbcFirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、加载驱动
Class.forName("com.mysql.jdbc.Driver"); //8.0的SQL驱动改了,com.mysql.cj.jdbc.Driver
//2、用户信息和url
//如果报错显示时区问题在url后面加&serverTimezone=GMT%2B8
// 报时区错误可以运行SET GLOBAL time_zone='+8:00'; FLUSH PRIVILEGES;
// MYSQL8在url那里加&serverTimezone=UTC
//MySql版本高于JDBC时useSSL=true 否则会报错 改成false就好
//假如出现Communications link failure就把useSSL改为false
String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
String userName="root";
String passWord="123456";
//3、连接成功后返回数据库对象 Connection代表数据库
Connection connection = DriverManager.getConnection(url, userName, passWord);
//4、执行SQL的对象
Statement statement = connection.createStatement();
//5、执行SQL的对象去执行SQL语句,可能存在结果,查看返回结果
String sql="SELECT * FROM users"; //sql语句
//返回的结果集中封装了我们全部查询出来的结果
ResultSet resultSet = statement.executeQuery(sql); //返回的像是一个链表形式
while(resultSet.next()){
System.out.println("id="+resultSet.getObject("id")+"\tname="+resultSet.getObject("name")
+"\tpassword="+resultSet.getObject("password")+"\temail="+resultSet.getObject("email")
+"\tbirthday="+resultSet.getObject("birthday"));
}
//6、关闭连接
resultSet.close();
statement.close();
connection.close();
}
}
代码运行结果如下:
总结
- 1、加载驱动
- 2、DriveManager 连接数据库
- 3、获得执行sql的对象 Statement
- 4、执行sql,获得返回的结果
- 5、释放连接