-
组装SQL并调用执行的API(相当于在mysql客户端输入了aql命令,并执行了回车操作)
-
关闭资源(关闭mysql客户端)
3.2.1 获得数据源
数据源是 MysqlDataSource,获取⽅式如下,需要输⼊数据库连接的 MySQL 服务器地址、⽤户名和密 码:
// 1.创建数据源
MysqlDataSource dataSource = new MysqlDataSource();
// 1.1 设置连接的 MySQL 服务器
dataSource.setURL("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
// 1.2 设置⽤户名
dataSource.setUser("root");
// 1.3 设置密码
dataSource.setPassword("root");
3.2.2 获得连接
连接对象是 Connection,注意此步骤操作容易出错,⼀定是 com.mysql.jdbc 包下的 Connection 对象:
// 2.得到连接 Connection
Connection connection = (Connection) dataSource.getConnection();
3.2.3 获得执行器
执⾏器是⽤来执⾏ SQL 命令的,执⾏器有三种:
-
Statement
-
PreparedStatement
-
CallableStatement
实际开发中最常⽤的是 PreparedStatement 对象。
实现:
// 3.获得执⾏器
PreparedStatement statement = connection.prepareStatement("select * from student where username=?");
// 3.1 占位符赋值
statement.setString(1, "王五");
3.3.4 查询或操作数据库
查询数据库使⽤ PreparedStatement.executeQuery ⽅法,返回⼀个 ResultSet 对象,具体实现代码 如下:
// 4.获得结果集
ResultSet resultSet = statement.executeQuery();
// 4.1 获得结果并打印
while (resultSet.next()) {
String sn = resultSet.getString("sn");
String username = resultSet.getString("username");
String mail = resultSet.getString("mail");
System.out.println(String.format("SN:%s,UserName:%s,Mail:%s", sn,
username, mail));
}
ResultSet 对象它被称为结果集,它代表符合 SQL 语句条件的所有⾏,并且它通过⼀套 getXXX ⽅法提供了对这些行中数据的访问。
ResultSet ⾥的数据⼀⾏⼀⾏排列,每⾏有多个字段,并且有⼀个记录指针,指针所指的数据⾏ 叫做当前数据⾏,我们只能来操作当前的数据⾏。我们如果想要取得某⼀条记录,就要使⽤ ResultSet 的 next() ⽅法 ,如果我们想要得到 ResultSet ⾥的所有记录,就应该使⽤ while 循环。
3.3.5 关闭数据库连接
关闭数据库连接是为了不浪费 MySQL 服务器端的资源,最终实现代码:
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class App {
public static void main(String[] args) throws SQLException,SQLException {
// 1.创建数据源
MysqlDataSource dataSource = new MysqlDataSource();
// 1.1 设置连接的 MySQL 服务器
dataSource.setURL("jdbc:mysql://127.0.0.1:3306/java characterEncoding=utf8&useSSL=false");
// 1.2 设置⽤户名
dataSource.setUser("root");
// 1.3 设置密码
dataSource.setPassword("root");
// 2.创建连接
Connection connection = (Connection) dataSource.getConnection();
// 3.获得执⾏器
PreparedStatement statement = connection.prepareStatement("select
* from student where username=?");
// 3.1 占位符赋值
statement.setString(1, "王五");
// 4.获得结果集
ResultSet resultSet = statement.executeQuery();
// 4.1 获得结果并打印
while (resultSet.next()) {
String sn = resultSet.getString("sn");
String username = resultSet.getString("username");
String mail = resultSet.getString("mail");
System.out.println(String.format("SN:%s,UserName:%s,Mail:
%s", sn, username, mail));
}
// 5. 关闭资源
resultSet.close();
connection.close();
}
}
读者福利
分享一份自己整理好的Java面试手册,还有一些面试题pdf
不要停下自己学习的脚步
resultSet.close();
connection.close();
}
}
# **读者福利**
分享一份自己整理好的Java面试手册,还有一些面试题pdf
**不要停下自己学习的脚步**
[外链图片转存中...(img-lvDp7qLU-1714394332821)]
[外链图片转存中...(img-yU3YZ6SB-1714394332821)]
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**