JDBC介绍
💡 JDBC:Java数据库链接,经过它,可以使用java
代码来操控数据库,是sum公司设置的一套接口和实现规范,如果数据库想要通过java
来进行修改,就需要遵顼这个规范
❓ JavaEE: JavaEE是13中技术的统称JDBC就是其中之一
JDBC的简单实验
⭐️ 实验使用数据库为Mariadb
11.2对应版本为Mysql8
的版本,jar包直接导入Mysql8
的包就好了
1.导入jar包,直接使用maven来导入,主要看mysql
<dependencies>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
2.创建java类,写入一下代码,需要等待maven下载完成jar包,我这里是创建test表,注意数据库是要提前创建好的
package com.jdbc;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JdbcTest01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取数据库对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java_web_1","root","000000");
//获取执行SQL语句对象
Statement stat = conn.createStatement();
int i = stat.executeUpdate("create table test(id int,name varchar(50))");
//释放资源
stat.close();
conn.close();
}
}
3.执行后查看是否创建了test表
MariaDB [Java_web_1]> show tables;
+----------------------+
| Tables_in_java_web_1 |
+----------------------+
| manager |
| test |
+----------------------+
代码解析
1️⃣ 开始第一步是导入Jar包,为什么需要导入Jar包呢?
Java
的操作数据库具体的实现方法都是在jar包中,就像python调用库一样,比如实现连接Mariadb
数据库就需要导入连接数据库的包,
2️⃣ 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
告诉程序要操作的数据库是哪一个数据库,如果不是mysql那就不是这样写,具体看你要操作的数据库
3️⃣ 连接对象
//获取数据库对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java_web_1","root","000000");
连接数据库,需要输出数据库的地址用户名和密码,jdbc:mysql
你可以看作是一个协议,获取数据库对象有三种写法
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java_web_1?user=root&password=000000");
Properties p = new Properties();
p.setProperty("user", "root");
p.setProperty("password", "000000");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java_web_1",p);
4️⃣ 获取执行sql语句的对象
Statement stat = conn.createStatement();
int i = stat.executeUpdate("create table test(id int,name varchar(50))");
Statemet
就是专门执行sql语句的对象,而且要从连接对象获取,但是现在这么写会有问题,之后会解决,执行sql
语句有三个方法:
executeUpdate
可以使用它来增删改,放回的值为int
,返回的值数表示实际影响的条目数int i = stat.executeUpdate("insert test values(2,'xiaoqiang')");
executeQuery
查询,返回为ResultSet
集合对象ResultSet rs = stat.executeQuery("select * from test"); while(rs.next()) { int id = rs.getInt(1); String name = rs.getString("name"); System.out.print(id); System.out.print(name); } 输出: 1xiaoming2xiaoqiang
execut
它可以增删改查,但是一般底层使用的多,返回布尔值