文章目录
1. JDBC
JDBC java数据库连接
Java Database Connectivity
JAVA在JDBC中提供一套通用的接口,用于连接和操作数据库。不同的数据库厂商都提供了一套对应的实现类来操作自家提供的 DBMS。而这套实现类也称为连接该DBMS的驱动(Driver)
使用步骤:
1:加载对应数据库厂商提供的驱动(MAVEN添加依赖即可)
2:基于标准的JDBC操作流程操作该数据库
1.1配置驱动
在maven的pom.xml项目中添加阿里的依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
</dependencies>
1.2 创建一个DBUtil类用于调用驱动
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 管理数据库连接
*/
public class DBUtil {
static {
try {
//DBUtil第一次被使用时先加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
// return DriverManager.getConnection("jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
return DriverManager.getConnection("jdbc:mysql://localhost:3306/birdbootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
}
}
2. 标准的JDBC操作流程:
1:加载驱动:Class.forName(“不同厂商提供的Driver的实现类”)
不同厂商提供的Driver实现类的名字不同,但是每个数据库是固定的。
DriverManager.getConnection(String url,String username,String password)
- 参数1:数据库路径(JDBC有格式要求,但是不同厂商在规定的格式中又有自身不同的地方)
- 参数2:数据库的用户名
- 参数3:数据库的密码
- 返回值类型:Connection
该方法返回的Connection实例就表示与数据库的一条连接。
Connection是JDBC的一个核心接口,它用于表与数据库的一个连接,里面提供了创建执行对象,关闭连接等操作
2:与数据库建立连接。使用DriverManager.getConnection()
mysql的url固定格式
jdbc:mysql://localhost:3306/birdbootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
^^^^^^^^^^
数据库名称
相当于USE birdbooddb
3:通过Connection创建执行对象Statement
Statement用于指定SQL语句
Statement对象是用于执行SQL语句的对象
4:使用Statement执行SQL(CRUD)
如果执行的是DQL语句,则还要接收查询结果集并遍历获取查询结果。
执行SQL语句
boolean execute(sql)
该方法可以执行任意类型的sql语句。
由于执行DML,DQL都有专属的方法,因此execute方法通常仅用来执行DDL语句
该方法返回值为boolean值。当执行的SQL有查询结果集时,返回值为true。
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//步骤1
Class.forName("com.mysql.cj.jdbc.Driver");
//步骤2
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/birdbootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
System.out.println("与数据库建立连接!");
//步骤3 Statement对象是用于执行SQL语句的对象
Statement state = conn.createStatement();
// 创建一张表userinfo