package rcm.dao;
import java.sql.Connection;
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 rcm.entity.Classify;
import rcm.entity.Frequency;
import rcm.entity.Product;
import rcm.entity.User;
/**
*商品数据库操作类
*/
public class ProductDao {
//查找所有商品
public List<Product> findAllProduct(){
List<Product> list = new ArrayList<Product>();
String sql = "select * from product";
Connection conn = DataBaseUtils.getConnection();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){//将查询结果转换成Product类实例
Product p = new Product();
p.setId(rs.getInt("id"));
p.setProductName(rs.getString("product_name"));
p.setClassify(rs.getInt("classify"));
p.setPicPath(rs.getString("pic"));
p.setDescrib(rs.getString("describ"));
p.setPrice(rs.getDouble("price"));
list.add(p);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{//关闭数据库链接
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
//查找该用户的商品点击频率
public List<Frequency> findFrequency(int userid){
List<Frequency> list = new ArrayList<Frequency>();
String sql = "select * from frequency where user_id=? order by times desc";
Connection conn = DataBaseUtils.getConnection();
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, userid);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
Frequency f = new Frequency();
f.setId(rs.getInt("id"));
f.setUserId(rs.getInt("user_id"));
f.setProductId(rs.getInt("product"));
f.setTimes(rs.getInt("times"));
list.add(f);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
/**
* 将点击频率高的分类商品排在前面
* @param products
* @param frequency
* @return
*/
public List<Product> sort(List<Product> products, List<Frequency> frequency){
List<Product> ret = new ArrayList<Product>();
List<Integer> classify = new ArrayList<Integer>();
for (Frequency frq : frequency) {
for(Product p : products){
if(p.getId().equals(frq.getProductId())){
if(!classify.contains(p.getClassify())){
classify.add(p.getClassify());//以访问频率为条件按顺序将分类放入集合中
}
}
}
}
//按顺序将高频分类下的商品从数据库中查出来
for(Integer c:classify){
String sql = "select * from product where classify="+c;
Connection conn = DataBaseUtils.getConnection();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
Product p = new Product();
p.setId(rs.getInt("id"));
p.setProductName(rs.getString("product_name"));
p.setClassify(rs.getInt("classify"));
p.setPicPath(rs.getString("pic"));
p.setDescrib(rs.getString("describ"));
p.setPrice(rs.getDouble("price"));
ret.add(p);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
return ret;
}
//根据查找商品ID查找商品,用于显示商品详情
public Product findProduct(int pid){
String sql = "select * from product where id="+pid;
Connection conn = DataBaseUtils.getConnection();
Product p = null;
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
p = new Product();
p.setId(rs.getInt("id"));
p.setProductName(rs.getString("product_name"));
p.setClassify(rs.getInt("classify"));
p.setPicPath(rs.getString("pic"));
p.setDescrib(rs.getString("describ"));
p.setPrice(rs.getDouble("price"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return p;
}
//点击量增长
public void addClickTimes(String pid, User user){
if(user == null){
return ;
}
String sql0 = "select * from frequency where user_id=? and product=?";
String sql = "insert into frequency(user_id,product,times) values(?,?,?)";
Connection conn = DataBaseUtils.getConnection();
try {
PreparedStatement pstmt = conn.prepareStatement(sql0);
pstmt.setInt(1, user.getId());
pstmt.setInt(2, Integer.valueOf(pid));
ResultSet rs0 = pstmt.executeQuery();
int times = 0, id=0;
while(rs0.next()){
times = rs0.getInt("times");
id = rs0.getInt("id");
}
if(times == 0){//第一次点击该商品,新插入一条记录
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, user.getId());
pstmt.setInt(2, Integer.valueOf(pid));
pstmt.setInt(3, 1);
pstmt.executeUpdate();
}else{//多次点击该商品,更新现有记录
String sql2 = "update frequency set times=? where id=?";
pstmt = conn.prepareStatement(sql2);
pstmt.setInt(1, ++times);
pstmt.setInt(2, id);
pstmt.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
完整版 基于javaweb实现的简单购物商城.rar
共124个文件
jpg:34个
java:14个
class:14个
3星 · 超过75%的资源 需积分: 50 78 下载量 45 浏览量
2019-12-24
15:42:53
上传
评论 17
收藏 7.96MB RAR 举报
温馨提示
亲测好用,挺不错的资源,大家快来下载吧!挺有用的!需要的话可以来下载哦!基于javaweb的购物商城,简单,适合新手练手,导入项目即可运行
资源推荐
资源详情
资源评论
收起资源包目录
完整版 基于javaweb实现的简单购物商城.rar (124个子文件)
ProductDao.class 6KB
DataBaseUtils.class 3KB
FindAllProducts.class 3KB
Product.class 2KB
UserDao.class 2KB
ProductDetailServlet.class 2KB
LoginServlet.class 2KB
Frequency.class 2KB
RegistServlet.class 2KB
LogoutServlet.class 1KB
IndexServlet.class 1KB
Classify.class 971B
User.class 947B
ClassfiyProduct.class 924B
.classpath 2KB
org.eclipse.wst.common.component 535B
org.eclipse.wst.jsdt.ui.superType.container 49B
T2_common.css 15KB
shopping_vehicle.css 9KB
order.css 4KB
T2_main.css 4KB
datepicker.css 4KB
datepicker.css 4KB
context.css 991B
WdatePicker.css 158B
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
loading.gif 781B
add_1.gif 318B
Access_JDBC30.jar 2.17MB
ojdbc14-10g.jar 1.48MB
jsf-impl.jar 1.15MB
mysql-connector-java-5.1.7-bin.jar 693KB
sqljdbc4.jar 525KB
jstl-1.2.jar 405KB
jsf-api.jar 314KB
servlet-api.jar 141KB
ProductDao.java 5KB
DataBaseUtils.java 2KB
FindAllProducts.java 2KB
Product.java 2KB
ProductDetailServlet.java 1KB
UserDao.java 1KB
LoginServlet.java 1KB
RegistServlet.java 1KB
IndexServlet.java 1023B
LogoutServlet.java 1020B
Frequency.java 922B
ClassfiyProduct.java 506B
Classify.java 488B
User.java 456B
569a046bN74da4012.jpg 79KB
45eytgsfr.jpg 26KB
69542_cpt.jpg 24KB
jklfdnsaoi3209r.jpg 24KB
vsaf435875g.jpg 21KB
kdosa9320js.jpg 20KB
43rfweaf.jpg 19KB
98081_mba.jpg 19KB
862_dell.jpg 19KB
kiyu86i876.jpg 18KB
ewqf32r3ajyu.jpg 18KB
8798iyijytd43.jpg 18KB
iofwelq932.jpg 17KB
90jof32q09jd.jpg 17KB
dsafewq32432.jpg 17KB
mklf902q93urj.jpg 17KB
fdsafe32zd.jpg 16KB
vsae3wf3.jpg 16KB
32r43wqf32q.jpg 15KB
743_monitor.jpg 15KB
dsafea32r3q.jpg 15KB
69542_mx3.jpg 14KB
80_QMvEjQAAexB002.jpg 13KB
mklsa0e09fdwq.jpg 12KB
fewqf09ewjq.jpg 12KB
4362t5fewaf.jpg 12KB
kuyt6757u5.jpg 12KB
870_lyq2.jpg 10KB
659_lyq.jpg 9KB
18_dtl_lyq.jpg 9KB
mjytkuyt767.jpg 9KB
jofi09032jq.jpg 8KB
buybtn.jpg 970B
bg.jpg 307B
jquery.js 268KB
calendar.js 22KB
WdatePicker.js 9KB
order.js 1KB
cart.js 1KB
zh-cn.js 1KB
zh-tw.js 1KB
en.js 644B
.jsdtscope 500B
product_detail.jsp 4KB
regist.jsp 4KB
index.jsp 4KB
index_products.jsp 2KB
login.jsp 2KB
共 124 条
- 1
- 2
资源评论
- 9997的蝼蚁2020-12-29不是很完整,少了很多东西
weixin_38746387
- 粉丝: 332
- 资源: 1308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功