package com.system.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.beanutils.BeanUtils;
/**
* 数据库操作辅助类
*/
public class BaseDao {
// 四个常量 driver url username password
private static final String URL = "jdbc:oracle:thin:@192.168.11.210:1521:orcl";
private static final String USER = "db_hotel";
private static final String PASSWORD = "123456";
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
/**
* 获取连接对象
*
* @return 连接对象
*/
public static Connection getConn() {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (Exception e) {
throw new RuntimeException("数据库连接失败!", e);
}
return conn;
}
/**
* 释放资源
*
* @param rs
* 结果集
* @param pstmt
* 命令处理对象
* @param conn
* 连接对象
*/
public static void close(ResultSet rs, PreparedStatement pstmt,
Connection conn) {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException("释放资源失败!", e);
}
}
/**
* 设置参数
*
* @param sql
* @param conn
* @param pstmt
* @param param
* @return
* @throws SQLException
*/
private static PreparedStatement setPstmt(String sql, Connection conn,
PreparedStatement pstmt, Object... param) throws SQLException {
pstmt = conn.prepareStatement(sql);
if (param != null) {
for (int i = 0; i < param.length; i++) {
pstmt.setObject(i + 1, param[i]);
}
}
return pstmt;
}
/**
* 通用的数据库(增,删,改)操作方法ͨ
*
* @param sql
* sql语句
* @param param
* sql参数
* @return 受影响行数
*/
public static int execute(String sql, Object... param) {
Connection conn = getConn();
try {
return execute(sql, conn, param);
} finally {
close(null, null, conn);
}
}
/**
*通用的数据库增删改(事务访问)
*
* @param sql
* @param conn
* @param param
* @return
*/
public static int execute(String sql, Connection conn, Object... param) {
PreparedStatement pstmt = null;
try {
pstmt = setPstmt(sql, conn, pstmt, param);
return pstmt.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException("数据库操作失败!", e);
} finally {
close(null, pstmt, null);
}
}
/**
*通用的查询方法
*
* @param sql
* sql语句
* @param cla
* 类对象(Class类对象)如 Student.class
* @param param
* 可变参数
* @return
*/
public static Object select(String sql, Class cla, Object... param) {
Connection conn = getConn();
try {
return select(sql, conn, cla, param);
} finally {
close(null, null, conn);
}
}
/**
* 带事务的查询方法
*
* @param sql
* @param conn
* @param cla
* @param param
* @return
*/
public static Object select(String sql, Connection conn, Class cla,
Object... param) {
ResultSet rs = null;
PreparedStatement pstmt = null;
List<Object> list = new ArrayList<Object>();
try {
pstmt = setPstmt(sql, conn, pstmt, param);
// executeQuery
rs = pstmt.executeQuery();
while (rs.next()) {
// ?rs 结果集 cla Class对象
Object object = convert(rs, cla);
list.add(object);
}
return list;
} catch (SQLException e) {
throw new RuntimeException("数据库查询失败!", e);
} finally {
close(rs, pstmt, null);
}
}
/**
* 获取单个记录值,是单个记录注意
*
* @param sql
* @param param
* @return
*/
public static Object getFirst(String sql, Object... param) {
Connection conn = getConn();
try {
return getFirst(sql, conn, param);
} finally {
close(null, null, conn);
}
}
/**
* 获取单个记录值 事务
*
* @param sql
* @param conn
* @param param
* @return
*/
public static Object getFirst(String sql, Connection conn, Object... param) {
List list = (List) select(sql, conn, Object.class, param);
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
/**
* 事务处理操作
*
* @param tran
* @return
*/
// public static Object transaction(ITransaction tran) {
// Connection conn = getConn();
// try {
// conn.setAutoCommit(false);
// Object obj = tran.execute(conn);
// conn.commit();
// return obj;
// } catch (SQLException e) {
// try {
// conn.rollback();
// } catch (SQLException e1) {
// throw new RuntimeException("�ع�ʧ��!", e);
// }
// throw new RuntimeException("����ִ��ʧ��", e);
// } finally {
// close(null, null, conn);
// }
// }
/**
* ��ѯ����ת��
*
* @param rs
* ���resultSet
* @param cla
* ij�������
* @return
*/
public static Object convert(ResultSet rs, Class cla) {
try {
if (cla.getName().equals("java.lang.Object")) {
return rs.getObject(1);
}
Object object = cla.newInstance(); // ����ʵ�����ʵ��
ResultSetMetaData metaData = rs.getMetaData();// ���ͷ��Ϣ����
for (int i = 1; i <= metaData.getColumnCount(); i++) {// ѭ��Ϊʵ�����ʵ������Ը�ֵ
String name = metaData.getColumnLabel(i);// ��ȡ����
// object ��ʵ������� �е����� �ͱ����������һ����
BeanUtils.setProperty(object, name, rs.getObject(i));// ע�����������������һ�¡�
}
return object;
} catch (Exception e) {
throw new RuntimeException("��������ʧ��!", e);
}
}
/**
* ��ҳ���� mysql;
*
* @param sql
* ��ѯsql���
* @param page
* ��ǰҳ��
* @param pageSize
* ÿҳ��ʾ�ļ�¼��
* @param cla
* Ҫ��ѯ�������
* @param param
* �����б�
* @return PageData����
*/
// public static PageData getPage(String sql, Integer page, Integer pageSize,
// Class cla, Object... param) {
//
// // ���贫�ݹ�����sql���
// // select * from tbl_emp
// // ��ѯ���еļ�¼��
// String selSql = "select count(*) from (" + sql + ") t";
// if (page == null) {
// page = 1;
// }
// if (pageSize == null) {
// pageSize = 5;
// }
// Integer count = Integer.parseInt(getFirst(selSql, param).toString());
// // �õ���ʼλ�ü��㷨
// int start = (page - 1) * pageSize;
// // selSql ���¸��ƵĽ����� ��ҳ��ѯ�����
// selSql = sql + " limit " + start + "," + pageSize;
// // �ΰ���select���� ��ѯ
// List list = (List) select(selSql, cla, param);
// // ?
// PageData data = new PageData(list, count, pageSize, page);
// return data;
// }
/**
* ��ҳ���� sqlserver
*
* @param page
* @param pageSize
* @param cla
* @param identity
* @return
*/
// public static PageData getPage(Integer page, Integer pageSize, Class cla,
// String identity) {
// String name = cla.getName().substring(
// cla.getName().lastIndexOf(".") + 1);// ����������������ȡ��ݿ����
// String selSql = "select count(*) from " + name;// ��ȡ����
// if (page == null) {
// page = 1;
// }
// if (pageSize == null) {
// pageSize = 20;
// }
// int start = (page - 1) * pageSize;
// Integer count = Integer.parseInt(getFirst(selSql, null).toString())
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于jsp+servlet+Oracle技术,结合html+css+js的酒店预订系统源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于jsp+servlet+Oracle技术,结合html+css+js的酒店预订系统源码.zip (695个子文件)
OrderServlet.class 5KB
BaseDao.class 5KB
JDBCUORtils.class 5KB
JDBCUtils.class 5KB
AfterServlet.class 5KB
PaymentUtil.class 4KB
NewReserve.class 4KB
Order.class 4KB
OwnJDBCUtils.class 4KB
RegisterServlet.class 4KB
LoginIndexServlet.class 3KB
ForgetServlet.class 3KB
Rooms_dao.class 3KB
PayServlet.class 3KB
LoginServlet.class 3KB
IndexJDBCUtils.class 3KB
Room_Class.class 3KB
HotelServlet.class 3KB
RegisterDao.class 2KB
BackServlet.class 2KB
Rooms.class 2KB
RandomCodeServlet.class 2KB
Hotel.class 2KB
Reserve_dao.class 2KB
ForgetDao.class 2KB
SuperQuery.class 2KB
CheckLoginFilter.class 2KB
OrderQuery.class 2KB
hotel_dao.class 2KB
PageData.class 2KB
Order_dao.class 2KB
OrderDao.class 2KB
IndexJDBCtest.class 2KB
ReserveQuery.class 2KB
IndexSearchServlet.class 1KB
RoomQuery.class 1KB
LoginIndexDao.class 1KB
GotoOrderServlet.class 1KB
IndexExitServlet.class 1KB
StringToDate.class 1KB
StringUtils.class 573B
Register.class 285B
ITransaction.class 184B
.classpath 1KB
org.eclipse.wst.common.component 550B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 143KB
bootstrap.min.css 118KB
bootstrap.min.css 97KB
style.css 68KB
style.css 68KB
font-awesome.min.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
styleindex.css 8KB
Hotel.css 7KB
laydate.css 6KB
order.css 5KB
index.css 4KB
._bootstrap.css 4KB
._bootstrap-theme.min.css 4KB
._bootstrap-theme.css 4KB
._bootstrap.min.css 4KB
laydate.css 3KB
common.css 3KB
hotel2.css 3KB
demo.css 3KB
lrtk.css 3KB
welcome.css 2KB
slicebox.css 2KB
custom.css 2KB
loginupdown.css 1KB
jquery.slider.css 1KB
login.css 1KB
aboutUS.css 1005B
forget.css 614B
main.css 317B
wc.db 313KB
Thumbs.db 139KB
entries 3B
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
._glyphicons-halflings-regular.eot 4KB
format 3B
consult_icon.gif 3KB
validate.gif 1KB
float_top.gif 371B
.gitignore 272B
ojdbc14.jar 1.47MB
commons-lang3-3.4.jar 424KB
fastjson-1.2.7.jar 407KB
commons-collections.jar 161KB
json-lib-2.3-jdk15.jar 148KB
commons-beanutils.jar 116KB
commons-logging.jar 37KB
BaseDao.java 8KB
JDBCUtils.java 6KB
PaymentUtil.java 5KB
JDBCUORtils.java 5KB
OrderServlet.java 5KB
共 695 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
土豆片片
- 粉丝: 1556
- 资源: 5641
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现 powell算法 用matlab实现,使用方法内附详细说明.rar
- 基于matlab的手写字体识别程序,并对结果进行保存.rar
- 基于c语言指纹识别demo代码 包括了指纹图像方向图计算、频率计算、gabor滤波器增强,细化,特征点提取,特征点匹配.rar
- 基于c++NSGA-2思想的多目标优化程序,采用进化算法处理多目标实值优化问题.rar
- Linux系统中常用权限管理命令
- Coello Coello等人提出了MOPSO 该程序基于matlab实现针对测试函数matlab程序
- Linux系统中常用权限管理命令
- AIR-AP1815-K9-ME-8-5-182-0.tar For Cisco AP1815
- 实验七.zip
- ESP8266刷固件软件flash-download-tools-v3.6.5,AT固件,机智云固件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功