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 它可以增删改查,但是一般底层使用的多,返回布尔值