创作不易,觉得好,点赞收藏,关注博主,你的关注是博主持续更新的动力!
以下是使用 H2 Database 和阿里巴巴 Druid 连接池的示例代码:
1. 添加 H2 Database 和 Druid 依赖
确保在项目中添加 H2 Database 和 Druid 的依赖:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version> <!-- 使用最新版本 -->
</dependency>
2. 创建 Druid 连接池管理类
import com.alibaba.druid.pool.DruidDataSource;
import javax.sql.DataSource;
import java.sql.SQLException;
public class DruidDataSourceManager {
private static final String URL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
private static final DataSource dataSource;
static {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(URL);
druidDataSource.setUsername(USERNAME);
druidDataSource.setPassword(PASSWORD);
// 其他 DruidDataSource 的配置,根据需要设置
dataSource = druidDataSource;
}
public static DataSource getDataSource() {
return dataSource;
}
public static void closeDataSource() {
if (dataSource instanceof DruidDataSource) {
((DruidDataSource) dataSource).close();
}
}
}
3. 更新 UserDAO 类
import com.alibaba.druid.pool.DruidPooledConnection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDAO {
// 创建用户表
public static void createUserTable() {
try (DruidPooledConnection connection = (DruidPooledConnection) DruidDataSourceManager.getDataSource().getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, name VARCHAR(255))")) {
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 插入用户数据
public static void insertUser(int id, String name) {
try (DruidPooledConnection connection = (DruidPooledConnection) DruidDataSourceManager.getDataSource().getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO users (id, name) VALUES (?, ?)")) {
preparedStatement.setInt(1, id);
preparedStatement.setString(2, name);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询所有用户数据
public static void getAllUsers() {
try (DruidPooledConnection connection = (DruidPooledConnection) DruidDataSourceManager.getDataSource().getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users");
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
int userId = resultSet.getInt("id");
String userName = resultSet.getString("name");
System.out.println("用户 ID: " + userId + ", 姓名: " + userName);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4. 主应用程序
public class MainApplication {
public static void main(String[] args) {
// 获取数据库连接并创建用户表
UserDAO.createUserTable();
// 插入用户数据
UserDAO.insertUser(1, "张三");
UserDAO.insertUser(2, "李四");
// 查询所有用户数据
UserDAO.getAllUsers();
// 关闭数据源(在应用退出时调用)
DruidDataSourceManager.closeDataSource();
}
}
这个示例代码现在使用了 H2 Database 和阿里巴巴 Druid 连接池。确保 H2 Database 和 Druid 的版本适配,并根据项目需求配置数据库和连接池参数。
创作不易,觉得好,点赞收藏,关注博主,你的关注是博主持续更新的动力!