返回
《JavaWeb》JDBC实战
后端
2023-09-04 11:57:48
前言
大家好,我是[掘金昵称],一位Java开发工程师。今天我想和大家分享一下我在《JavaWeb》JDBC实战中的一些经验和心得。
JDBC简介
JDBC是Java Database Connectivity的缩写,是一种用于执行SQL语句的Java API。JDBC提供了一种统一的接口,允许Java程序访问各种数据库系统。
JDBC的基本概念包括:
- 数据库连接 :用于连接数据库的会话。
- 语句对象 :用于执行SQL语句的Java对象。
- 结果集 :执行SQL语句后返回的数据集。
JDBC提供了以下常用的方法:
connect()
:连接数据库。createStatement()
:创建语句对象。executeQuery()
:执行查询语句。executeUpdate()
:执行更新语句。close()
:关闭数据库连接。
使用JDBC进行数据库连接
以下是如何使用JDBC进行数据库连接的示例代码:
import java.sql.*;
public class JDBCExample {
public static void main(String[] args) {
// 定义数据库连接参数
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
// 加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
// 建立数据库连接
Connection connection = null;
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 创建语句对象
Statement statement = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 执行查询语句
ResultSet resultSet = null;
try {
resultSet = statement.executeQuery("select * from user");
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 处理结果集
while (resultSet.next()) {
System.out.println(resultSet.getString("name"));
}
// 关闭结果集、语句对象和数据库连接
try {
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
使用JDBC进行增删改查操作
以下是如何使用JDBC进行增删改查操作的示例代码:
import java.sql.*;
public class JDBCExample {
public static void main(String[] args) {
// 定义数据库连接参数
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
// 加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
// 建立数据库连接
Connection connection = null;
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 创建语句对象
Statement statement = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 执行增删改查操作
try {
// 插入数据
statement.executeUpdate("insert into user (name, age) values ('张三', 20)");
// 更新数据
statement.executeUpdate("update user set age = 21 where name = '张三'");
// 删除数据
statement.executeUpdate("delete from user where name = '张三'");
// 查询数据
ResultSet resultSet = statement.executeQuery("select * from user");
while (resultSet.next()) {
System.out.println(resultSet.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
// 关闭结果集、语句对象和数据库连接
try {
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
使用JDBC进行事务管理
以下是如何使用JDBC进行事务管理的示例代码:
import java.sql.*;
public class JDBCExample {
public static void main(String[] args) {
// 定义数据库连接参数
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
// 加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
// 建立数据库连接
Connection connection = null;
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 设置自动提交为false
connection.setAutoCommit(false);
// 创建语句对象
Statement statement = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 执行事务操作
try {
// 插入数据
statement.executeUpdate("insert into user (name, age) values ('张三', 20)");
// 更新数据
statement.executeUpdate("update user set age = 21 where name = '张三'");
// 删除数据
statement.executeUpdate("delete from user where name = '张三'");
// 提交事务
connection.commit();
} catch (SQLException e) {
// 回滚事务
connection.rollback();
e.printStackTrace();
}
// 关闭结果集、语句对象和数据库连接
try {
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
使用JDBC进行连接池管理
以下是如何使用JDBC进行连接池管理的示例代码:
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class JDBCExample {
public static void main(String[] args) {
// 定义数据库连接参数
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
// 创建数据源对象
DataSource dataSource = null;
try {
dataSource = DruidDataSourceFactory.createDataSource(url, username, password);
} catch (Exception e) {
e.printStackTrace();
return;
}
// 获取数据库连接
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
return;
}
// 使用数据库连接执行操作
// 释放数据库连接
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
总结
以上就是我对《JavaWeb》JDBC实战的一些经验和心得。希望对大家有所帮助。