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();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
可二次开发MYSQLjsp小网上商城购物系统.zip
共124个文件
jpg:34个
java:14个
class:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 189 浏览量
2024-04-16
00:07:11
上传
评论
收藏 8.16MB ZIP 举报
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
可二次开发MYSQLjsp小网上商城购物系统.zip (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
LoginServlet.java 1KB
UserDao.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
资源评论
CrMylive.
- 粉丝: 1w+
- 资源: 4万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java语言的Zzyl-Together合作智慧养老项目设计源码
- 基于Thinkphp5框架的Java插件设计源码
- 基于Python、JavaScript和Vue的“大道无形,生育天地”主题网站设计源码
- 基于Netty4与Spring、MyBatis等流行框架的轻量级RESTful HTTP服务器设计源码
- 基于Jupyter Notebook的Python与Shell脚本分享设计源码
- 基于Java的Android平台Ecg绘图设计源码
- 基于中国大学MOOC《机器人操作系统入门》的ROS-Academy-for-Beginners设计源码
- open3d-0.15.2-cp38-cp38-win-amd64.whl
- Open3D-v0.17.0-cuda11.1-msvc2019-win64.zip
- IMG_20241105_235746.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功