一、JDBC概念
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的,是java官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接。
二、使用JDBC
在java中使用JDBC,首先下载jar包:下载链接,在这里可以选择和数据库的版本匹配的jar包。
下载完成后直接在java工程中新建一个libs目录,将jar包复制进去,并右键添加到工程。此时就可以在工程中使用JDBC了。
二、几个JDBC功能类
这里先贴一段代码:
public class JDBCDemo01 {
public static void main(String[] args) throws Exception{
//1.导入jar包
//2.注册驱动
//5版本后可以不写,在jar-META-INF-services-java.sql.Driver文件中配置了
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取连接
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/db13", "root", "12345678");
//4.获取 普通执行者对象
Statement sta = con.createStatement();
//5.执行sql语句并接收结果
String sql = "SELECT * FROM product";
ResultSet rs = sta.executeQuery(sql);
//6.处理结果
while (rs.next()){
System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));
}
//7.释放资源
con.close();
sta.close();
rs.close();
}
}
1.DriverManager
-
DriverManager:驱动管理对象
-
注册驱动(告诉程序该使用哪一个数据库驱动)
-
static void registerDriver(Driver driver):注册与给定的驱动程序 DriverManager
-
写代码使用:Class.forName(“com.mysql.jdbc.Driver”);
-
-
获取数据库连接(获取到数据库的连接并返回连接对象)
- static Connection getConnection(String url, String user, String password);
- 返回值:Connection数据库连接对象
- 参数
- url:指定连接的路径。语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
- user:用户名
- password:密码
2.Connection
- Connection:数据库连接对象
- 获取执行者对象
- 获取普通执行者对象:Statement createStatement();
- 获取预编译执行者对象:PreparedStatement prepareStatement(String sql);
- 管理事务
- 开启事务:setAutoCommit(boolean autoCommit); 参数为false,则开启事务。
- 提交事务:commit();
- 回滚事务:rollback();
- 释放资源
- 立即将数据库连接对象释放:void close();
- 获取执行者对象
3.Statement
- Statement:执行sql语句的对象
- 执行DML语句:int executeUpdate(String sql);
- 返回值int:返回影响的行数。
- 参数sql:可以执行insert、update、delete语句。
- 执行DQL语句:ResultSet executeQuery(String sql);
- 返回值ResultSet:封装查询的结果。
- 参数sql:可以执行select语句。
- 释放资源
- 立即将执行者对象释放:void close();
- 执行DML语句:int executeUpdate(String sql);
4.ResultSet
- ResultSet:结果集对象
- 判断结果集中是否还有数据:boolean next();
- 有数据返回true,并将索引向下移动一行
- 没有数据返回false
- 获取结果集中的数据:XXX getXxx(“列名”);
- XXX代表数据类型(要获取某列数据,这一列的数据类型)
- 例如:String getString(“name”); int getInt(“age”);
- 释放资源
- 立即将结果集对象释放:void close();
- 判断结果集中是否还有数据:boolean next();