JDBC概述
1.JDBC概述
1.1 JDBC是什么?
JDBC(Java database connectivity)Java连接数据库技术,是Sun公司提供了一套API(Application Programming Interface应用程序编程接口),它为Java应用程序提供了一系列的类,使其能够快速高效地访问数据库
它允许Java程序员使用标准的SQL语句来访问和操作关系型数据库。JDBC提供了一种标准的方式来连接到不同数据库的驱动程序,并且是Java EE平台上进行数据访问的基础。它提供了许多接口和类,使Java应用程序可以通过它们来访问和管理关系型数据库。
1.2 JDBC的本质是什么?
- 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
- 各个数据库厂商去实现这套接口,提供数据库驱动jar包
- 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
1.3 为什么要使用JDBC?
JDBC的好处:
- 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
- 可随时替换底层数据库,访问数据库的Java代码基本不变
- 以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。
综上所述,JDBC是Java开发人员进行关系型数据库操作的重要工具,它提供了一种标准化的方式来连接到不同数据库的驱动程序,并且可以保证安全、跨平台和高效的数据访问。
1.4 JDBC的原理?
JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准API。它的原理如下:
1. 加载数据库驱动:在Java应用程序中,首先需要加载适当的数据库驱动程序。
2. 连接数据库:使用Java程序中的getConnection()方法与数据库建立连接。
3. 创建操作对象:使用Java程序中的Statement对象或者PreparedStatement对象来执行SQL语句。
4. 执行SQL语句:使用Statement对象或者PreparedStatement对象来执行SQL语句,在执行SQL语句之前,需要对SQL语句进行预编译。
5. 处理查询结果:使用ResultSet对象来处理从数据库返回的查询结果。
6. 释放资源:使用Java程序中的close()方法释放资源(ResultSet对象、Statement对象、Connection对象)。
JDBC的执行过程是通过Java语言的标准接口实现的,具有跨平台的优点。同时,JDBC也支持连接池和事务管理等功能。
2.Mysql和sql server入门JDBC操作
2.1 Mysql的JDBC操作
package jdbc;
import java.sql.*;
public class JdbcDome {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/1127douyinDB";
String user = "root";
String password = "root";
try {
// 加载MySQL驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立MySQL数据库连接
Connection connection = DriverManager.getConnection(url, user, password);
// 创建Statement对象
Statement statement = connection.createStatement();
// 执行SQL查询语句
ResultSet resultSet = statement.executeQuery("SELECT * FROM douyin");
// 处理查询结果
while (resultSet.next()) {
int id = resultSet.getInt("id");
String liveStreaming = resultSet.getString("liveStreaming");
int looknumber = resultSet.getInt("looknumber");
System.out.println("id: " + id +"\tName: " + liveStreaming + "\tlooknumber: " + looknumber);
}
// 关闭ResultSet、Statement和Connection对象
resultSet.close();
statement.close();
connection.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
这些代码实现了连接到MySQL数据库并查询student表中的数据,并且输出查询结果。需要注意的是,实际开发中建议使用try-with-resources语句来自动关闭资源,而不是手动调用close()方法。
2.2 Sql Server的JDBC操作
import java.sql.*;
public class Dome {
public static void main(String[] args) {
//定义加载驱动
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//定义数据库用户
String userName = "sa";
//定义数据库密码
String userPwd = "sasa";
//定义数据库连接对象
Connection dbConn = null;
//定义命令对象
Statement stmt=null;
try {
//1.加载及注册驱动
Class.forName(driverName);
//2.定义数据库连接字符串
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=LOLDB";
//3.数据库连接
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("连接数据库成功");
//4.定义SQL语句
String sql="select * from LolNameTab";
//5.创建一个执行sql对象
stmt=dbConn.createStatement();
//6.执行SQL语句命令
ResultSet resultSet = stmt.executeQuery(sql);
//7.处理结果,并获取数据
while (resultSet.next()){
String userID=resultSet.getString("userID");
String password=resultSet.getString("password");
String name=resultSet.getString("userName");
System.out.println(userID+"\t"+password+"\t"+name);
}
//8.关闭连接
resultSet.close();
dbConn.close();
stmt.close();
} catch (SQLException e) { //数据库的处理异常的方法
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
if (dbConn!=null){
try {
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}