<仅供个人复习使用>
JDBC
JDBC–Java DataBase Connectivity 数据库连接,是一组有Java类、接口组成的用于执行SQL语句的Java API ,可以为多种关系数据库提供同一访问。
java与JDBC结合,具有跨平台特点。
具有的功能:
- 与数据库建立链接
- 向数据库发送SQL指令
- 处理数据库返回的结果
JDBC的层次结构:

…
JDBC种类
JDBC URL
…
1.JDBC数据库开发环境配置
驱动程序的设置:
(1)C/S方式:
右键单击项目属性-Libraries-Add JARs(手动引入)
(2)Web 方式:
将驱动程序直接复制到:
\WebRoot\WEB-INF\lib下(自动引入)
2.通过JDBC访问数据库
2.1 JDBC访问数据库的基本步骤
- 加载JDBC驱动程序:
//以 mysql 为例:
Class.forName("com.mysql.cj.jdbc.Driver");
- 创建数据库连接:
通过类DriverManager 提供的静态方法:
getConnection(String url,String user,String password);
private static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8";
Connection conn = DriverManager.getConnection(url,"root","123456");
return conn;
}
- 创建Statement对象并执行SQL语句:
类Statement主要将SQL命令传送给数据库,并将SQL命令的执行结果返回。
常用方法有:
ResultSet executeQuery(String sql);
int executeUpdate(String sql);执行本次sql语句数据库中所受影响的行数
int[] executeBatch()将一批命令提交给数据库来执行
void addBatch(String sql)将给定的SQL命令添加到Statement对象的当前命令列表中

- 处理SQL的返回结果:
JDBC通过ResultSet类的对象来实现。提供了一些get方法。获得某些字段的值。
String username = rs.getString("username");
- 关闭相关的对象:
conn.close()
2.2 常用JDBC类及方法


ps:常用预编译



2.3 事务处理
事务中的SQL语句要么全部执行,要么一个都不执行。
- 事务处理的步骤:

- 实例:

2.4 可滚动和可更新的结果集

2.5 批处理
JDBC为Statement对象提供了批处理功能,即Statement对象调用executeBatch()方法可以一次执行多个SQL语句,只要事先让Statement对象调用addBatch(String sql)方法将要执行的SQL语句添加到该对象中即可。
举例:
2.6 操作数据库元数据


C/S架构下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");//1.加载驱动
String url = "jdbc:mysql://127.0.0.1:3306/dbstudent";//dbstudent--数据库名
Connection conn = DriverManager.getConnection(url,"root","password");//2.获得和数据库的链接
Statement statement = conn.createStatement();//3.通过Connection创建Statement对象
String sql = "select * from tbstudent";
ResultSet rs = statement.executeQuery(sql);//4.通过Statement执行查询操作返回到ResultSet结果集
while(rs.next()) { //5.对ResultSet进行操作,while,利用next()移动游标
//rs.next()---移动游标
System.out.println(rs.getString("sno"));//rs.getString("sno")
}
rs.close(); //6.关闭连接
statement.close();
conn.close();
}
}
版权声明:本文为m0_48173416原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。