上一篇文章讲述了什么是JDBC,大家可以去看一下,这一篇我们主要通过对实现JDBC增删查改的功能,来进一步对JDBC的用法做进一步了解和学习!!!
使用步骤 :
第一步:搭建JDBC的开发环境
第二步:导入 java.sql包
import java.sql.*;
第三步::注册driver驱动
Class.forName("com.mysql.cj.jdbc.Driver");
第四步:连接数据库:
这里用到 Connection类 需要我们定义一个Connection类的变量
Connection connection = DriverManager.getConnection(url, user, password);
其中的url,user,password在上一篇文章中有解释
第五步:创建所需的语句对象(插入)
String selectSql = "SELECT * FROM UserData";
第六步:用ResultSet处理结果集
ResultSet resultSet = preparedStatement.executeQuery(selectSql);
while (resultSet.next()) {
String name = resultSet.getString("name");
String pwd = resultSet.getString("pwd");
System.out.println("NAME: " + name + ", PWD: " + pwd);
}
第七步:使用PreparedStatement预处理SQl语句(插入、删除、更新,不包括查询),并设置占位符,然后执行sql语句
String deleteSql = "DELETE FROM UserData WHERE name = ?";
//预处理sql语句
preparedStatement = connection.prepareStatement(deleteSql);
preparedStatement.setString(1, "张三");
//设置占位符第一个问号值为1,以此类推
preparedStatement.executeUpdate();
//执行sql语句
最后一步:释放资源
resultSet.close();
preparedStatement.close();
connection.close();
完整代码:
package JDBC;
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost/userdatabase?";
String user = "root";
String password = "123456";
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加载并注册JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
connection = DriverManager.getConnection(url, user, password);
// 插入数据
String insertSql = "INSERT INTO UserData (name, pwd) VALUES (?, ?)";
preparedStatement = connection.prepareStatement(insertSql);
preparedStatement.setString(1, "张三");
preparedStatement.setString(2, "asdf");
preparedStatement.executeUpdate();
// 查询数据
String selectSql = "SELECT * FROM UserData";
preparedStatement = connection.prepareStatement(selectSql);
resultSet = preparedStatement.executeQuery(selectSql);
while (resultSet.next()) {
String name = resultSet.getString("name");
String pwd = resultSet.getString("pwd");
System.out.println("NAME: " + name + ", PWD: " + pwd);
}
// 更新数据
String updateSql = "UPDATE UserData SET pwd = ? WHERE name = ?";
preparedStatement = connection.prepareStatement(updateSql);
preparedStatement.setString(1, "zxcv");
preparedStatement.setString(2, "张三");
preparedStatement.executeUpdate();
// 删除数据
String deleteSql = "DELETE FROM UserData WHERE name = ?";
preparedStatement = connection.prepareStatement(deleteSql);
preparedStatement.setString(1, "张三");
preparedStatement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (resultSet != null) resultSet.close();
if (preparedStatement != null) preparedStatement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
运行结果: