JDBC
JDBC(Java Database Connectivity) Java 连接数据库的规范(标准),可以使用 Java 语言连接数据库完成 CRUD 操作。Java操作数据库的唯一方式。
JDBC
Java操作数据库的唯一方式,在Java程序中想操作数据库就需要使用JDBC
实现步骤:
1.创建项目-Idea
2.创建lib文件夹,复制jar包,然后右键->add as Lib…… 导入jar包
3.编写代码实现JDBC的编码
1.加载驱动,注册实现JVM加载驱动的实现类
2.创建连接对象,需要指定 url地址和账号和密码
url地址的格式:jdbc:mysql://ip地址:3306/数据库名
3.获取操作SQL操作对象
4.执行SQL语句
5.关闭释放
Statement的常用方法:
int executeUpdate(非查询sql语句):执行非查询的sql语句,返回受影响的行数
ResultSet executeQuery(查询sql语句):执行查询的sql语句,返回查询的结果集
ResultSet:结果集,类似迭代器
所有的查询的结果都是ResultSet
常用方法:
boolean next() 指针指向下一条数据,如果指向成功返回true,没有数据了就失败
int getInt(字段名称) : 通过字段名称获取内容
Int getInt(字段索引) : 通过字段的索引获取内容,索引从1开始
JDBC 核心思想
Java 中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类(Driver 数据库驱动)
JDBC 是由多个接口和类进行功能实现。
类型 | 权限定名 | 简介 |
---|---|---|
class | java.sql.DriverManager | 管理多个数据库驱动类,提供了获取数据库连接的方法 |
interface | java.sql.Connection | 代表一个数据库连接(当connection不是null时,表示已连接数据库) |
interface | java.sql.Statement | 发送SQL语句到数据库工具 |
interface | java.sql.ResultSet | 保存SQL查询语句的结果数据(结果集)类似迭代器 |
class | java.sql.SQLException | 处理数据库应用程序时所发生的异常 |
环境搭建
- 在项目下新建 lib 文件夹,用于存放 jar 文件。
- 将 mysql 驱动mysql-connector-java-5.1.X复制到项目的 lib 文件夹中。
- 选中 lib 文件夹右键 Add as Libraay,点击 OK。
JDBC 开发步骤
- 注意:在编写 DML 语句时,一定要注意字符串参数的符号是单引号 ‘值’
- DML 语句:增删改时,返回受影响行数(int 类型)。
- DQL 语句:查询时,返回结果数据(ResultSet 结果集)。
连接
//加载驱动,使用 Class.forName("com.mysql.jdbc.Driver");手动加载字节码文件到 JVM 中。
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接对象,URL(Uniform Resource Locator) 统一资源定位符:由协议、IP、端口、SID(程序实例名称)组成
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/school"
,"root","123456");
//获得执行sql的对象,通过 Connection 对象获得 Statement 对象,用于对数据库进行通用访问
Statement statement=connection.createStatement();
//执行sql语句,并接受结果,返回值r为sql语句操作的行数,若为则表示为操作成功或无数据变化。
int result = statement.executeUpdate("delete from teacher");
System.out.println(result);
执行sql语句DML
//r1为执行修改的行数,(注:该行若已经修改过,再次执行修改语句虽然结果未有任何改变,但事实上已经执行过修改语句,算修改的行)
int r1=statement.executeUpdate
("insert into teacher (age,subject,name) values(22,'语文','小小')");
//r2为插入的行
int r2=statement.executeUpdate
("update teacher set name ='大熊' where id =2");
//r3删除数据的行数;
int r3=statement.executeUpdate("delete from animal");
● 受影响行数:逻辑判断、方法返回。
● 查询结果集:迭代、依次获取。
执行 SQL 语句并接收执行结果
ResultSet resultSet=statement.executeQuery("select * from teacher");
while(resultSet.next()){
System.out.print(resultSet.getInt("id")+"\t");
System.out.print(resultSet.getInt("age")+"\t");
System.out.print(resultSet.getString("subject")+"\t");
System.out.println(resultSet.getString("name"));
}
资源释放
resultSet.close();
statement.close();
connection.close();
`
资源释放
resultSet.close();
statement.close();
connection.close();