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())
没有合适的资源?快使用搜索试试~ 我知道了~
酒店预订系统 运用了jsp+servlet+Oracle技术,结合html+css+js.zip
共695个文件
svn-base:399个
png:54个
java:43个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 6 浏览量
2023-12-30
10:24:40
上传
评论
收藏 30.68MB ZIP 举报
温馨提示
酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系统。运用了jsp+servlet+Oracle技术,结合html+css+js 酒店预订系
资源推荐
资源详情
资源评论
收起资源包目录
酒店预订系统 运用了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.min.css 4KB
._bootstrap-theme.css 4KB
._bootstrap-theme.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
资源评论
- Setemer2024-03-16感谢资源主的分享,很值得参考学习,资源价值较高,支持!
辣椒种子
- 粉丝: 3321
- 资源: 5724
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功