package dao;
import dao.db.Builder;
import util.Info;
import util.StringUtil;
import java.sql.*;
import java.util.*;
public class Query {
protected String mName = "";
protected HashMap mOption = null;
protected String pk = "id";
protected HashMap mData = null;
protected Builder builder = null;
public static HashMap tableFields = new HashMap();
public Query()
{
reset();
}
public Query(String name)
{
reset();
setName(name);
}
protected Query reset()
{
mName = "";
mOption = null;
mOption = new HashMap();
mData = new HashMap();
builder = Builder.make(new CommDAO().getConn());
if(tableFields == null)
{
tableFields = new HashMap();
}
return this;
}
public Query inc(String field , int step)
{
if(step<1)step = 1;
ArrayList list = new ArrayList();
list.add("inc");
list.add(step);
mData.put(field , list);
return this;
}
public Query dec(String field , int step)
{
if(step<1)step = 1;
ArrayList list = new ArrayList();
list.add("dec");
list.add(step);
mData.put(field , list);
return this;
}
public boolean setInc(String field)
{
return setInc(field ,1);
}
public boolean setInc(String field , String step)
{
return inc(field , Integer.valueOf(step).intValue()).update();
}
public boolean setInc(String field , int step)
{
return inc(field , step).update();
}
public boolean setDec(String field )
{
return setDec(field , 1);
}
public boolean setDec(String field , String step)
{
return dec(field , Integer.valueOf(step).intValue()).update();
}
public boolean setDec(String field , int step)
{
return dec(field , step).update();
}
public boolean setField(String field , Object step)
{
mData.put(field , step);
return update();
}
public HashMap getData()
{
return mData;
}
public boolean update()
{
return update(null);
}
public boolean update( HashMap updateData )
{
if(updateData != null){
mData.putAll(updateData);
}
String sql = builder.buildUpdate(this);
executeInsert(sql);
return true;
}
public Query data(Map data)
{
mData.putAll(data);
return this;
}
public Query data(String name , String value)
{
mData.put(name , value);
return this;
}
public Query data(String name , int value)
{
mData.put(name , value);
return this;
}
public Query data(String name , long value)
{
mData.put(name , value);
return this;
}
public Query data(String name , float value)
{
mData.put(name , value);
return this;
}
public Query data(String name , double value)
{
mData.put(name , value);
return this;
}
public Query data(String name , boolean value)
{
mData.put(name , value ? 1 : 0);
return this;
}
public int insert(HashMap insertData ){ return insert(insertData , false); }
public int insert(HashMap insertData , boolean replace)
{
if(insertData != null){
mData.putAll(insertData);
}
String sql = builder.buildInsert(this , replace);
return executeInsert(sql);
}
public String getPk() {
return pk;
}
public void setPk(String pk) {
this.pk = pk;
}
protected void finalize()
{
//Statement st = conn.createStatement();
//System.out.print(sql);
//ResultSet rs
//super.finalize();
free();
}
/**
* 释放资源
*/
public void free()
{
// 释放rs
for(int i=0;i<resultSetList.size();i++){
Object os = resultSetList.get(i);
try{
if(os instanceof Statement){
Statement st = ((Statement) os);
st.close();
}else if(os instanceof ResultSet){
((ResultSet) os).close();
}
}catch (SQLException e){
}
}
resultSetList.clear();
}
public Query setName(String name)
{
mName = name;
return this;
}
public String getName()
{
return mName;
}
public Query setAttribute(String name , Object value)
{
getOptionHashMap("data").put(name , value);
return this;
}
public Object getAttribute(String name)
{
return getOptionHashMap("data").get(name);
}
public Query field()
{
return field("*");
}
public Query field(String field)
{
getOptionArrayList("field").add(field);
return this;
}
public Query table(String nTable)
{
getOptionArrayList("table").add(nTable);
return this;
}
public Query table(String nTable , String alias)
{
getOptionArrayList("table").add(nTable+" "+alias);
return this;
}
public Query limit(int nLimit)
{
//getOptionHashMap("limit").put("limit" , String.valueOf(nLimit));
return limit(String.valueOf(nLimit));
}
public Query limit(int offset , int nLimit)
{
return limit(String.valueOf(offset) , String.valueOf(nLimit));
}
public Query lock(boolean lock )
{
return this.lock(lock ? " FOR UPDATE " : "");
}
public Query lock(String lock)
{
getOption().put("lock" , lock);
return this;
}
public Query limit(String nLimit)
{
if(nLimit.indexOf(",") != -1){
String[] list = nLimit.split(",");
return limit(list[0] , list[1]);
}
getOptionHashMap("limit").put("limit" , nLimit);
return this;
}
public Query limit(String offset , String nLimit)
{
HashMap map = getOptionHashMap("limit");
map.put("limit" , nLimit);
map.put("offset" , offset);
return this;
}
public HashMap find(int id)
{
where(pk , String.valueOf(id));
return find();
}
public HashMap find(String id)
{
where(pk , id);
return find();
}
public HashMap find()
{
//limit(1);
String sql = builder.buildSelect(this);
ResultSet rs = query(sql);
QueryData data = fetch(rs);
return data;
}
protected double total(String f , String func)
{
String ifnull = builder.parseIfNull(func+"("+f+")" , "0");
String field = ifnull+" count";
if(mOption.containsKey("field")){
getOptionArrayList("field").clear();
}
getOptionArrayList("field").add(field);
HashMap data = find();
if(data.containsKey("count")){
String count = data.get("count").toString();
return Double.valueOf(count).doubleValue();
}
return 0;
}
public double sum(String field)
{
return total(field , "SUM");
}
public double avg(String field)
{
return total(field , "AVG");
}
public double max(String field){
return total(field , "MAX");
}
public double min(String field)
{
return total(field , "MIN");
}
public long count()
{
return count(null);
}
public long count( String field )
{
if(field == null){
if(mOption.containsKey("alias")){
field = "count("+mOption.get("alias")+".id) count";
}else{
field = "count(*) count";
}
}else{
field = "count("+field+") count";
}
if(mOption.containsKey("field")){
mO
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java的在线电影院售票平台设计源码
共778个文件
gif:124个
java:105个
class:105个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 156 浏览量
2024-03-28
17:36:16
上传
评论 1
收藏 77.92MB ZIP 举报
温馨提示
这是一个基于Java语言开发的在线电影院售票平台,包含776个文件,其中主要文件类型包括124个GIF图片文件、105个Java类文件、105个Java源文件、103个PNG图片文件、73个JAR包、73个JSP文件、66个JavaScript文件、42个XML文件和40个CSS文件。该项目提供了电影院售票的功能,包括电影信息展示、场次选择、座位预订、在线支付等,为用户提供了便捷的电影票购买体验。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java的在线电影院售票平台设计源码 (778个子文件)
Query.class 21KB
Builder.class 14KB
CommDAO.class 13KB
Info.class 12KB
Execl.class 10KB
GoupiaoController.class 9KB
YingpiaotuidingController.class 8KB
Uploader.class 8KB
DianyingchangciController.class 8KB
Collect.class 8KB
DianyingxinxiController.class 8KB
PingjiafankuiController.class 7KB
ZhuceyonghuController.class 6KB
AdminsController.class 5KB
FangyingtingController.class 5KB
UserController.class 5KB
YingpianfenleiController.class 5KB
LunbotuController.class 5KB
YouqinglianjieController.class 5KB
Goupiao.class 5KB
DownloadRemoteImage.class 5KB
Yingpiaotuiding.class 5KB
Dianyingxinxi.class 4KB
Dianyingchangci.class 4KB
CommonController.class 4KB
ShoucangjiluController.class 4KB
CaptchaController.class 4KB
SqlServer.class 3KB
CommentController.class 3KB
ServiceBase.class 3KB
Zhuceyonghu.class 3KB
StringUtil.class 3KB
GenMain.class 3KB
Pingjiafankui.class 2KB
BaseController.class 2KB
Shoucangjilu.class 2KB
Fangyingting.class 2KB
DxController.class 2KB
Pinglun.class 2KB
LocalRequestContextHolder.class 2KB
LocalRequestContext.class 2KB
QuerySql.class 2KB
Request.class 2KB
Lunbotu.class 2KB
Timer.class 2KB
ZhuceyonghuServiceImpl.class 2KB
AuthInterceptor.class 2KB
AdminsServiceImpl.class 2KB
Youqinglianjie.class 2KB
Admins.class 2KB
Dx.class 2KB
Md5.class 2KB
Yingpianfenlei.class 1KB
UploadController.class 1KB
CustomExceptionResolver.class 1KB
ContentFilter.class 1KB
QueryData.class 1KB
DianyingchangciServiceImpl.class 969B
YingpiaotuidingServiceImpl.class 969B
YingpianfenleiServiceImpl.class 960B
YouqinglianjieServiceImpl.class 960B
DianyingxinxiServiceImpl.class 951B
PingjiafankuiServiceImpl.class 951B
FangyingtingServiceImpl.class 942B
Response.class 935B
ShoucangjiluServiceImpl.class 921B
LunbotuServiceImpl.class 897B
GoupiaoServiceImpl.class 897B
PinglunServiceImpl.class 876B
DxServiceImpl.class 857B
IServiceBase.class 819B
IndexController.class 617B
IfTag.class 596B
MapperBase.class 584B
ResponseException.class 536B
PageCollect.class 516B
ZhuceyonghuMapper.class 421B
ZhuceyonghuService.class 400B
AdminsMapper.class 396B
AdminsService.class 380B
DianyingchangciMapper.class 350B
YingpiaotuidingMapper.class 350B
YingpianfenleiMapper.class 347B
YouqinglianjieMapper.class 347B
DianyingxinxiMapper.class 344B
PingjiafankuiMapper.class 344B
ShoucangjiluMapper.class 341B
FangyingtingMapper.class 341B
LunbotuMapper.class 326B
PinglunMapper.class 326B
GoupiaoMapper.class 326B
Mysql.class 322B
DxMapper.class 311B
DianyingchangciService.class 274B
YingpiaotuidingService.class 274B
YingpianfenleiService.class 271B
YouqinglianjieService.class 271B
PingjiafankuiService.class 268B
DianyingxinxiService.class 268B
ShoucangjiluService.class 265B
共 778 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
沐知全栈开发
- 粉丝: 4777
- 资源: 4143
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- 基于Javascript的结婚请帖设计源码 - Invitation
- mysql语句大全及用法
- mysql语句大全及用法
- mysql语句大全及用法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功