package com.talkweb.dao.impl;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.talkweb.dao.GoodsDao;
import com.talkweb.model.Page;
import com.talkweb.model.TGoodsinfo;
import com.talkweb.util.DBUtil;
public class GoodsDaoImpl extends BaseDaoImpl implements GoodsDao{
private Connection conn;
private ResultSet rs;
private PreparedStatement ps;
public Page getGoodsPage(int pageId) {
Page page=new Page();
if(pageId<1)
{
pageId=1;
}
page.setPageId(pageId);
conn=DBUtil.getConn();
int num=0;
try {
ps=conn.prepareStatement("select * from t_goodsinfo", ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=ps.executeQuery();
rs.last();
num=rs.getRow();
rs.first();
page.setTotalNum(num);
page.setPageNum(num/Page.pageSize+(num%Page.pageSize>0?1:0));
page.setPagePre(pageId-1);
if(page.getPagePre()<1)
{
page.setPagePre(1);
}
page.setPageNext(pageId+1);
if(page.getPageNext()>page.getPageNum())
{
page.setPageNext(page.getPageNum());
}
if(pageId>page.getPageNum())
{
page.setPageId(page.getPageNum());
}
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return page;
}
public List<TGoodsinfo> queryGoodsByPage(Page page) {
List<TGoodsinfo> list=new ArrayList<TGoodsinfo>();
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("select * from t_goodsinfo", ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=ps.executeQuery();
rs.first();
for(int i=0;i<(page.getPageId()-1)*Page.pageSize;i++)
{
rs.next();
}
if(page.getPageNum()>0)
{
for(int i=0;i<Page.pageSize;i++)
{
TGoodsinfo goods=new TGoodsinfo();
goods.setCostprice(rs.getDouble("costprice"));
goods.setGoodsid(new BigDecimal(rs.getInt("goodsid")));
goods.setGoodsname(rs.getString("goodsname"));
goods.setPrice(rs.getDouble("price"));
goods.setStock((long)rs.getInt("stock"));
list.add(goods);
if(!rs.next())
{
break;
}
}
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public TGoodsinfo queryGoodsById(int goodsid) {
conn=DBUtil.getConn();
TGoodsinfo goods=new TGoodsinfo();
try {
ps=conn.prepareStatement("select * from t_goodsinfo where goodsid=?");
ps.setInt(1,goodsid);
rs=ps.executeQuery();
while(rs.next())
{
goods.setGoodsid(new BigDecimal(rs.getInt("goodsid")));
goods.setCostprice(rs.getDouble("costprice"));
goods.setGoodsname(rs.getString("goodsname"));
goods.setPrice(rs.getDouble("price"));
goods.setStock((long)rs.getInt("stock"));
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return goods;
}
public double queryCardBalance(int cardid, String pwd) {
double bal=-1;
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("select balance from t_cardinfo where cardid=? and pwd=?");
ps.setInt(1,cardid);
ps.setString(2, pwd);
rs=ps.executeQuery();
while(rs.next())
{
bal=rs.getDouble("balance");
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return bal;
}
public boolean buyGoods(int goodsid, int num,
int cardid) {
boolean flag=false;
conn=DBUtil.getConn();
try {
conn.setAutoCommit(false);
ps=conn.prepareStatement("insert into t_orderinfo values(seq_orderid.nextval,?,sysdate,?,?)");
ps.setInt(1,num);
ps.setInt(2,goodsid);
ps.setInt(3,cardid);
int n=ps.executeUpdate();
ps=conn.prepareStatement("update t_goodsinfo set stock=stock-? where goodsid=?");
ps.setInt(1,num);
ps.setInt(2,goodsid);
int n1=ps.executeUpdate();
if(n==1&&n1==1)
{
flag=true;
conn.commit();
}
else
{
conn.rollback();
}
conn.setAutoCommit(true);
ps.close();
conn.close();
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return flag;
}
public List<TGoodsinfo> queryGoodsByName(String text) {
List<TGoodsinfo> list=new ArrayList<TGoodsinfo>();
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("select * from t_goodsinfo where goodsname like ?");
ps.setString(1, text+"%");
rs=ps.executeQuery();
while(rs.next())
{
TGoodsinfo goods=new TGoodsinfo();
goods.setCostprice(rs.getDouble("costprice"));
goods.setGoodsid(new BigDecimal(rs.getInt("goodsid")));
goods.setGoodsname(rs.getString("goodsname"));
goods.setPrice(rs.getDouble("price"));
goods.setStock((long)rs.getInt("stock"));
list.add(goods);
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public boolean updateGoods(TGoodsinfo goods) {
boolean flag=false;
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("update t_goodsinfo set goodsname=?,price=?,costprice=?,stock=? where goodsid=?");
ps.setString(1,goods.getGoodsname());
ps.setDouble(2, goods.getPrice());
ps.setDouble(3, goods.getCostprice());
ps.setLong(4, goods.getStock());
ps.setBigDecimal(5, goods.getGoodsid());
int n=ps.executeUpdate();
if(n==1)
flag=true;
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public boolean deleteGoodsById(int parseInt) {
boolean flag=false;
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("delete from t_goodsinfo where goodsid=?");
ps.setInt(1, parseInt);
int n=ps.executeUpdate();
if(n==1)
flag=true;
ps.close();
conn.close();
} catch (SQLException e) {
// e.printStackTrace();
}
return flag;
}
public boolean insertGoodsInfo(String goodsName, double costPrice,
double price, long stock) {
boolean flag=false;
conn=DBUtil.getConn();
try {
ps=conn.prepareStatement("insert into t_goodsinfo values(seq_goodsid.nextval,?,?,?,?)");
ps.setString(1, goodsName);
ps.setDouble(2, costPrice);
ps.setDouble(3, price);
ps.setLong(4, stock );
int n=ps.executeUpdate();
if(n==1)
flag=true;
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public boolean insertAndUpdateGoodsOrder(String[] goodsid, String[] num,
int cardid) {
boolean flag=true;
conn=DBUtil.getConn();
try {
conn.setAutoCommit(false);
for(int i=0;i<goodsid.length;i++){
ps=conn.prepareStatement("insert into t_orderinfo values(seq_orderid.nextval,?,sysdate,?,?)");
ps.setInt(1,Integer.parseInt(num[i]));
ps.setInt(2,Integer.parseInt(goodsid[i]));
ps.setInt(3,cardid);
int n=ps.executeUpdate();
ps=conn.prepareStatement("update t_goodsinfo set stock=stock-? where goodsid=?");
ps.setInt(1,Integer.parseInt(num[i]));
ps.setInt(2,Integer.parseInt(goodsid[i]));
int n1=ps.executeUpdate();
if(n!=1||n1!=1)
{
flag=false;
}
}
if(flag){
conn.commit();
}
else{
conn.rollback();
}
conn.setAutoCommit(true);
ps.close();
conn.close();
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return flag;
}
public void insertGoodsInfo(TGoodsinfo goods) {
this.openConnection().save(goods);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
自动售货系统(SSH框架)
共205个文件
svn-base:46个
java:24个
class:24个
需积分: 11 34 下载量 67 浏览量
2016-11-14
21:01:18
上传
评论
收藏 2.35MB ZIP 举报
温馨提示
简单的自动售货系统的SSH框架项目案例,使用Spring3.0+Struts2.1+Hibernate3.3搭建的。适合初学SSH者参考。页面没修饰。
资源推荐
资源详情
资源评论
收起资源包目录
自动售货系统(SSH框架) (205个子文件)
all-wcprops 922B
all-wcprops 790B
all-wcprops 568B
all-wcprops 544B
all-wcprops 520B
all-wcprops 506B
all-wcprops 496B
all-wcprops 406B
all-wcprops 398B
all-wcprops 386B
all-wcprops 375B
all-wcprops 336B
all-wcprops 248B
all-wcprops 232B
all-wcprops 226B
all-wcprops 198B
all-wcprops 108B
all-wcprops 100B
all-wcprops 92B
GoodsDaoImpl.class 8KB
GoodsMaintainAction.class 8KB
DayProfitDaoImpl.class 5KB
CardDaoImpl.class 4KB
CardMaintainAction.class 3KB
DayProfitAction.class 2KB
TGoodsinfo.class 2KB
GoodsBizImpl.class 2KB
TOrderinfo.class 2KB
TCardinfo.class 2KB
Profit.class 2KB
DateTimeConvertor.class 2KB
CardBizImpl.class 2KB
Page.class 2KB
DayProfitBizImpl.class 1KB
DBUtil.class 1KB
BaseDaoImpl.class 938B
GoodsDao.class 890B
GoodsBiz.class 801B
CardDao.class 528B
CardBiz.class 528B
DayProfitDao.class 416B
DayProfitBiz.class 416B
BaseDao.class 259B
.classpath 1KB
datepicker.css 4KB
datepicker.css 4KB
WdatePicker.css 192B
entries 955B
entries 936B
entries 599B
entries 593B
entries 577B
entries 571B
entries 558B
entries 498B
entries 497B
entries 472B
entries 469B
entries 459B
entries 336B
entries 334B
entries 323B
entries 319B
entries 251B
entries 212B
entries 210B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
format 2B
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
ojdbc14.jar 1.12MB
struts2-spring-plugin-2.1.8.1.jar 16KB
GoodsDaoImpl.java 8KB
GoodsMaintainAction.java 6KB
DayProfitDaoImpl.java 5KB
CardDaoImpl.java 3KB
TGoodsinfo.java 2KB
CardMaintainAction.java 2KB
TOrderinfo.java 2KB
TCardinfo.java 2KB
DateTimeConvertor.java 2KB
DayProfitAction.java 2KB
共 205 条
- 1
- 2
- 3
资源评论
getitnow
- 粉丝: 21
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
- FirstFilterOrderCompare
- Screenshot_2024-03-28-19-17-25-020_com.ss.android.lark.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功