package com.example.webdemo.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* 数据库连接与操作工具类。
*/
public class DBUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
private static Connection conn = null;
private static PreparedStatement pst = null;
private static ResultSet rs = null;
static {
try {
//静态代码快,在类加载的时候执行
init();
} catch (Exception ex) {
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* 初始化连接参数,从配置文件里获得
*
* @throws IOException
*/
public static void init() throws Exception {
Properties params = new Properties();
String configFile = "com/example/webdemo/database.properties";
//加载配置文件到输入流中
InputStream is
= DBUtil.class.getClassLoader().getResourceAsStream(configFile);
//从输入流中读取属性列表
params.load(is);
//根据指定的获取对应的值
driver = params.getProperty("driver");
url = params.getProperty("url");
username = params.getProperty("username");
password = params.getProperty("password");
Class.forName(driver);
}
/**
* 获取数据库连接对象
*
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public static void getConnection() throws Exception {
conn = DriverManager.getConnection(url, username, password);
}
/**
* 执行SQL语句,可以进行查询
*/
public static ResultSet executeQuery(String preparedSql, Object... param) throws
Exception {
getConnection();
pst = conn.prepareStatement(preparedSql);
if (param != null) {
for (int i = 0; i < param.length; i++) {
//为预编译sql设置参数
pst.setObject(i + 1, param[i]);
}
}
rs = pst.executeQuery();
return rs;
}
/**
* 执行SQL语句,可以进行增、删、改的操作,不能执行查询
*/
public static int executeUpdate(String preparedSql, Object... param) throws
Exception {
int num;
getConnection();
try (Connection connection = conn;
PreparedStatement pstmt = connection.prepareStatement(preparedSql)) {
if (param != null) {
for (int i = 0; i < param.length; i++) {
pstmt.setObject(i + 1, param[i]);//为预编译sql设置参数
}
}
num = pstmt.executeUpdate();
return num;
}
}
public static void closeAll() throws Exception {
//如果rs不空,关闭rs
if (rs != null) {
rs.close();
}
//如果pstmt不空,关闭pstmt
if (pst != null) {
pst.close();
}
//如果conn不空,关闭conn
if (conn != null) {
conn.close();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
实现用户登录系统的前后端开发实验一
共27个文件
xml:5个
class:5个
java:5个
0 下载量 156 浏览量
2024-01-23
11:31:49
上传
评论
收藏 315.02MB ZIP 举报
温馨提示
Tomcat10压缩包、PostgreSQL(数据库)、驱动程序postgresql-42.5.0.jar、webdemo项目
资源推荐
资源详情
资源评论
收起资源包目录
资料(实验一).zip (27个子文件)
资料(实验一)
postgresql-42.5.0.jar 1022KB
postgresql-15.2-1-windows-x64.exe 303.76MB
webdemo
src
com
example
webdemo
controller
LoginController.java 1KB
dao
UserDaoImpl.java 707B
UserDao.java 219B
model
User.java 377B
database.properties 109B
util
DBUtil.java 3KB
out
production
webdemo
com
example
webdemo
controller
LoginController.class 3KB
dao
UserDao.class 361B
UserDaoImpl.class 1KB
model
User.class 678B
database.properties 109B
util
DBUtil.class 3KB
web
js
login.js 272B
css
login.css 285B
login.html 753B
result.jsp 245B
.idea
.name 11B
dbnavigator.xml 25KB
libraries
jsp_api.xml 312B
workspace.xml 3KB
misc.xml 284B
modules.xml 261B
.gitignore 50B
webdemo.iml 499B
tomcat10 .zip 13.58MB
共 27 条
- 1
资源评论
一起努力学习吧!
- 粉丝: 158
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功