这里写自定义目录标题
一 记一下整体运作流程
1.导入驱动jar包
2.注册驱动
3.获取数据库连接对象 (connection)
4.定义SQL语句
5.获取执行SQL语句的对象 (statement)
6.执行SQL语句,如有返回结果则需接受返回结果
7.处理结果集
8.释放资源
二 代码示范
只有如图所示的几个步骤
import java.sql.*;
public class Test3 {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/shop?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
String user = "root";
String pas = "root";
// 获取连接对象
connection = DriverManager.getConnection(url,user,pas);
// 编写SQL语句
String sql = "SELECT * FROM t_person";
// 获取SQL执行对象 createStatement
statement = connection.createStatement();
// 执行SQL语句
resultSet = statement.executeQuery(sql);
// 处理结果集
while (resultSet.next()){
// 如果有下一个就为真(一行一行的取出)
System.out.println(resultSet.getInt("person_id")+"\t"+
resultSet.getString("person_name")+
resultSet.getInt("age")+"\t"+
resultSet.getString("sex")+"\t"+
resultSet.getString("mobile")+"\t"+
resultSet.getString("address")+"\t"
);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
// 释放资源
if (resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
三 基本概念
最关键的是,获取一个链接
DriverManager,驱动管理对象
1.注册驱动
2.获取数据库连接
静态方法:getconnection(URL,用户名,密码)
URL:指定连接路径
jdbc:mysql://ip地址(域名):端口号//数据库名称
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
1 Connection connection = null;
链接对象connection
1、获取执行SQL语句的对象 Statement createStatement()
创建一个Statement对象,用于将SQL语句发送到数据库。 PreparedStatement
prepareStatement(String
sql)创建一个PreparedStatement对象,用于将参数化的SQL语句发送到数据库。(这种方式用于解决SQL注入问题)
2、管理事务 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
提交事务:commit() 回滚事务:rollback()
2 Statement statement = null;
执行sql语句的对象(Statement:用于执行静态SQL语句并返回其生成的结果的对象。 常用的方法:
int executeUpdate(String sql):执行DML(表中记录的操作)语句,返回一个int值这个int值代表的就是这个SQL语句生效后,该表中受这句SQL语句影响的记录的行数。如果返回值>0,则表示执行成功,反之则失败。执行DDL语句,不会返回任何内容(因为返回值类型是int,所以会返回值0),当然在实际开发中我们很少会通过Java语言去操作DDL语句。
ResultSet executeQuery(String sql):执行DQL(查询)语句,返回单个ResultSet对象。扫描二维码关注公众号,回复: 16372491 查看本文章
3 ResultSet resultSet = null;
执行DQL语句时,需要用Statement对象中的executeQuery()方法,该方法返回一个ResultSet集合。这个方法将查询到的结果放到ResultSet集合中,集合里有个光标,默认情况下光标指向字段行。使用next()方法后,光标会移动到当前行的下一行。读一个
get数据类型(参数)方法,用来获取当前行中某一列的值。
既可以通过列的编号(从1开始)来获取,也可以通过列的字段名来获取值参数int表示通过列的编号来取值,参数String表示通过列的字段名来获取值
while(resultset.next){
get方法();
// 参数有两种一种是通过下标获取,一种通过名称获取
}