JDBC入门
JDBC使用方法
本质就是 socket 链接
简单入门
package JDBC01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBC01 {
public static void main(String[] args) throws Exception {
//注册驱动
//自动注册了
//Class.forName("com.mysql.jdbc.Driver"); mysql5之后不需要写了
//获取链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db01", "root", "zcx2002@");
//获取执行者对象
Statement statement = connection.createStatement();
//执行sql并接收结果
String sql = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql);
//处理结果
while(resultSet.next()){
System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString("name") + "\t" + resultSet.getString("address"));
}
//释放资源
resultSet.close();
statement.close();
connection.close();
}
}
功能类
DriverManager
- 注册给定的驱动程序 static void registerDriver(Driver driver);
- 写代码使用 Class.forName("com.mysql.jdbc.Driver");
- 在com.mysql.jdbc.Driver类中存在静态代码块调用了 registerDriver(new Driver); 所以不用重复调用
mysql5 之后可以省略注册驱动的步骤。在jar包中存在一个配置文件指定了com.mysql.jdbc.Driver
Connection
-
获取执行者对象
获取普通执行者对象 Statement createStatement();
获取预编译执行者对象 PreparedStatement preparedStatement(String sql);
-
管理事务
开启事务 setAutoCommit(boolean f); f == false 则开启事务
提交事务 commit();
回滚事务 rollback();
- 释放资源
close();
Statement
- 执行DML(增删改)语句
int executeUpdate(String sql); 返回的是影响的行数
参数sql :可以执行 insert、update、delete 语句
- 执行DQL(查询)
ResultSet executeQuery(String sql); 返回的是封装的查询结果
参数sql :可以执行 select 语句
- 释放资源
close();
ResultSet
- 判断是否还有数据
boolean next(); 有数据就返回 true,索引向下移动一行
- 获取数据
XXX getXXX("列名"); XXX就是该列的数据类型
- 释放资源
close();