package com.sxt.utils;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* 调用JDBC的公共类
* @author Administrator
*
*/
public class SxtJdbcUtil {
//声明一些变量存放配置信息
private static String className = "";
private static String url = "";
private static String user = "";
private static String password = "";
/**
* 在类被加载的时候执行,而且只执行一次
*/
static {
try {
//获取配置文件信息
Properties properties = new Properties();
properties.load(SxtJdbcUtil.class.getClassLoader().getResourceAsStream("sxtJdbcUtil.properties"));
//开始获取配置的初始值
String datatype = properties.getProperty("datatype");
className = properties.getProperty(datatype + "Driver");
url = properties.getProperty(datatype + "Url");
user = properties.getProperty(datatype + "User");
password = properties.getProperty(datatype + "Password");
//加载驱动
Class.forName(className);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 创建一个连接
* @return
*/
public static Connection createConnection() {
//声明一个连接
Connection connection = null;
try {
//获取一个连接
connection = DriverManager.getConnection(url, user, password);
//将事务的自动提交关闭,每次都需要手动提交
connection.setAutoCommit(false);
} catch (SQLException e) {
System.err.println("创建连接失败,请检查连接参数:url[" + url + "]user[" + user + "]password[" + password + "]");
e.printStackTrace();
}
return connection;
}
/**
* 创建发送器
* @param connection
* @return
*/
public static Statement createStatement(Connection connection) {
Statement statement = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return statement;
}
/**
* 创建预处理发送器
* @param connection
* @param sql
* @return
*/
public static PreparedStatement createPreparedStatement(Connection connection, CharSequence sql) {
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement(sql.toString());
} catch (SQLException e) {
e.printStackTrace();
}
return preparedStatement;
}
/**
* 关闭连接释放资源
* @param connection
* @param statement
* @param resultSet
*/
public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 将结果集合里面的数据存放至对象
* @param resultSet
* @param clazz
*/
public static <T> List<T> resultSet2List(ResultSet resultSet, Class<T> clazz) {
//声明一个List
List<T> list = new ArrayList<T>();
try {
//获取当前类所有的属性
Field[] dfields = clazz.getDeclaredFields();
//首先遍历resultSet
while (resultSet.next()) {
//创建一个对象
T bean = clazz.getConstructor().newInstance();
//遍历属性
for (int i = 0; i < dfields.length; i++) {
//获取属性的名字
String fieldName = dfields[i].getName();
//获取属性对应的值
Object fieldValue = resultSet.getObject(fieldName);
//获取属性的set方法
String methodName = "set" + fieldName.toUpperCase().substring(0, 1) + fieldName.substring(1);
//获取方法
Method setMethod = clazz.getMethod(methodName, dfields[i].getType());
//要将值设置给对象
setMethod.invoke(bean, fieldValue);
}
//然后将对象添加到List
list.add(bean);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 将结果集合里面的数据存放至对象
* @param resultSet
* @param clazz
*/
public static <T> T resultSet2bean(ResultSet resultSet, Class<T> clazz) {
//声明一个List
List<T> list = resultSet2List(resultSet, clazz);
if (list != null && list.size() >= 1) {
return list.get(0);
}
return null;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
jsp+servlet+mysql登录注册记住密码功能
共36个文件
class:9个
java:9个
jsp:4个
需积分: 49 35 下载量 198 浏览量
2017-03-16
17:16:37
上传
评论 3
收藏 710KB ZIP 举报
温馨提示
本案例采用MVC模式,结合jsp和servlet实现登录和注册功能,可以记住密码,三天免登陆 本案例使用到,配置文件,jdbc数据库连接,Session,cookie,反射,servlet等。期待同学们下载学习
资源推荐
资源详情
资源评论
收起资源包目录
login.zip (36个子文件)
login
login
.project 1KB
src
sxtJdbcUtil.properties 306B
com
sxt
service
UserServiceImpl.java 642B
IUserService.java 179B
utils
SxtJdbcUtil.java 5KB
controller
LoginOutServlet.java 626B
LoginServlet.java 3KB
RegistServlet.java 2KB
dao
UserDaoImp.java 2KB
IUserDao.java 179B
entry
User.java 2KB
WebRoot
sql
demo.sql 1KB
WEB-INF
classes
sxtJdbcUtil.properties 306B
com
sxt
service
IUserService.class 241B
UserServiceImpl.class 888B
utils
SxtJdbcUtil.class 6KB
controller
LoginServlet.class 3KB
LoginOutServlet.class 1KB
RegistServlet.class 3KB
dao
IUserDao.class 238B
UserDaoImp.class 3KB
entry
User.class 2KB
lib
mysql-connector-java-5.1.8-bin.jar 707KB
web.xml 1KB
regist.jsp 1KB
index.jsp 829B
success.jsp 788B
META-INF
MANIFEST.MF 39B
login.jsp 2KB
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 412B
org.eclipse.jdt.core.prefs 364B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.component 480B
.jsdtscope 522B
.classpath 1KB
共 36 条
- 1
资源评论
半醉半醒i
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于spark和kafka的新闻案例+源代码+文档说明
- greenplum-cc-web-6.2.0-gp6-rhel7-x86-64.7z
- 电机控制霍尔传感器和反电动势的关系分析
- 计算机生产实习:OA后台管理(web前端+Java后端)压缩文件包
- greenplum6.10安装时缺失的fpm包
- 缺陷检测-轻量化PCB表面缺陷检测算法实现-工业视觉+六大缺陷检出-优质项目实战.zip
- JAVA 中的Spring框架介绍包括起源、体系结构、核心部分、特点等
- 2024年小米汽车产业链分析及新品上市全景洞察报告
- 基于Qt和C++实现的偏3D风格的异型窗体界面操作+源码(期末大作业&课设&项目开发)
- 基于yolov8的花卉分类系统,包含训练好的权重和推理代码,GUI界面,支持图片、视频、摄像头输入,支持检测结果导出
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功