package cn.service.dao;
import java.util.List;
import cn.entity.NeProducts;
/*
* 商品表 DAO 接口
* */
public interface NeProductsDao {
//商品列表
public List<NeProducts> neProductsList();
//商品分页
public List<NeProducts> getNeProductsLisByPage(int pageIndex,
int pageSize, int classifyId ,int brandId ,String bewrite, int statusNum);
//根据分类,品牌和描述来获取商品数量
public int getNeProductsLisByCount(int classifyId ,int brandId ,String bewrite);
//上架和下架
public int updateGrounding(int id, String grounding);
//修改价格
public int updatePrice(int id, double price);
//修改数量
public int updateNumber(int id, int number);
//根据 id 查找商品的数据
public NeProducts select(int id);
//根据id修改内容
public int updateById(int id, String model,String introduce,String bewrite,
double price, int number, int statusId);
//根据 id 修改内容
public int updateById(int id, int classifyId,int brandId,
String model,String introduce,String bewrite,
double price, int number, int statusId,int grounding);
//判断些id是否存在
public int selectId(int id);
//根据id 更新小图和中图
public int update(int id,String print, String picture);
//插入一条商品数据
public int insert( int classifyId,int brandId,
String model,String introduce,String bewrite,
double price, int number, int statusId,int grounding);
}
package cn.service.dao.impl;
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 cn.entity.NeProducts;
import cn.service.dao.BaseDao;
import cn.service.dao.NeProductsDao;
/*
* 商品表 DAO 实现
* */
public class NeProductsDaoImpl extends BaseDao implements NeProductsDao {
Connection conn = null;//数据库连接
PreparedStatement pstmt = null;//数据库操作
ResultSet rs = null;//保存查询结果
//商品列表
public List<NeProducts> neProductsList() {
List<NeProducts> neProductsList = new ArrayList<NeProducts>();
NeProducts item = null;
String sql = "select ne_products_id, ne_classify_id, ne_brand_id," +
"ne_model, ne_introduce, ne_bewrite, ne_print, ne_picture," +
"ne_price, ne_number, ne_time, ne_status_id," +
"ne_grounding from ne_products";
conn = this.getConnection();
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
neProductsList.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return neProductsList;
}
//商品分页
public List<NeProducts> getNeProductsLisByPage(int pageIndex,
int pageSize, int classifyId ,int brandId ,String bewrite, int statusNum){
int start = (pageIndex - 1) * pageSize; // 上限
int end = pageIndex * pageSize; // 下限
if(start>=1){
start++;
}
List<NeProducts> list = new ArrayList<NeProducts>();
NeProducts item = null;
conn = this.getConnection();
if(statusNum==1){
if(classifyId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_classify_id=? " +
" order by ne_products.ne_time desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, classifyId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(brandId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_brand_id=? " +
" order by ne_products.ne_time desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, brandId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(bewrite != null){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_introduce like ? " +
" order by ne_products.ne_time desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+bewrite+"%");
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else{
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products " +
" order by ne_products.ne_time desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}
}else if(statusNum==2){
if(classifyId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_classify_id=? " +
" order by ne_products.ne_number desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, classifyId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(brandId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_brand_id=? " +
" order by ne_products.ne_number desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, brandId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(bewrite != null){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_introduce like ? " +
" order by ne_products.ne_number desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+bewrite+"%");
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else{
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products " +
" order by ne_products.ne_number desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}
}else{
if(classifyId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_classify_id=? " +
" order by ne_products.ne_price desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, classifyId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(brandId>0){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_brand_id=? " +
" order by ne_products.ne_price desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, brandId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(bewrite != null){
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products where ne_introduce like ? " +
" order by ne_products.ne_price desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+bewrite+"%");
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else{
String sql= "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_products " +
" order by ne_products.ne_price desc) A) WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}
}
}
//根据分类,品牌和描述来获取商品数量
public int getNeProductsLisByCount(int classifyId ,int brandId ,String bewrite){
int count = 0;
conn = this.getConnection();
if(classifyId>0){
String sql = "SELECT count(*) FROM ne_products where ne_classify_id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, classifyId);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else if(brandId>0){
String sql = "SELECT count(*) FROM ne_products where ne_brand_id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, brandId);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else if(bewrite != null){
String sql = "SELECT count(*) FROM ne_products where ne_introduce like ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+bewrite+"%");
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else{
String sql = "SELECT count(*) FROM ne_products";
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}
}
//上架和下架
public int updateGrounding(int id, String grounding){
String sql ="update ne_products " +
" set ne_grounding = ? " +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
grounding,
id
}
);
}
//修改价格
public int updatePrice(int id, double price){
String sql ="update ne_products " +
" set ne_price = ? " +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
price,
id
}
);
}
//修改数量
public int updateNumber(int id, int number){
String sql ="update ne_products " +
" set ne_number = ? " +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
number,
id
}
);
}
//根据 id 查找商品的数据
public NeProducts select(int id){
NeProducts item = null;
String sql = "select ne_products_id, ne_classify_id, ne_brand_id, ne_model, ne_introduce," +
" ne_bewrite, ne_print, ne_picture, ne_price, ne_number, ne_time," +
" ne_status_id, ne_grounding from ne_products where ne_products_id =?";
conn = this.getConnection();
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
if(rs.next()){
item = new NeProducts(
rs.getInt(1),
rs.getInt(2),
rs.getInt(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getDouble(9),
rs.getInt(10),
rs.getString(11),
rs.getInt(12),
rs.getString(13)
);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return item;
}
//根据id修改内容
public int updateById(int id, String model,String introduce,String bewrite,
double price, int number, int statusId){
String sql = "update ne_products" +
" set ne_model = ?," +
" ne_introduce = ?," +
" ne_bewrite = ?," +
" ne_price = ?," +
" ne_number = ?," +
" ne_status_id = ?" +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
model,
introduce,
bewrite,
price,
number,
statusId,
id
}
);
}
//根据 id 修改内容
public int updateById(int id, int classifyId,int brandId,
String model,String introduce,String bewrite,
double price, int number, int statusId,int grounding){
String sql =
"update ne_products " +
" set ne_classify_id = ?, " +
" ne_brand_id = ?, " +
" ne_model = ?, " +
" ne_introduce = ?, " +
" ne_bewrite = ?, " +
" ne_price = ?, " +
" ne_number = ?, " +
" ne_status_id = ?, " +
" ne_grounding = ? " +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
classifyId,
brandId,
model,
introduce,
bewrite,
price,
number,
statusId,
grounding,
id
}
);
}
//判断些id是否存在
public int selectId(int id){
String sql = "select ne_products_id from ne_products where ne_products_id=?";
conn = this.getConnection();
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
if(rs.next()){
rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return id;
}
//根据id 更新小图和中图
public int update(int id,String print, String picture){
String sql = "update ne_products " +
" set ne_print = ?, " +
" ne_picture = ? " +
" where ne_products_id = ?";
return this.executeUpdate(sql, new Object[]{
print,
picture,
id
}
);
}
//插入一条商品数据
public int insert( int classifyId,int brandId,
String model,String introduce,String bewrite,
double price, int number, int statusId,int grounding){
String sql =
"insert into ne_products " +
" (ne_products_id, ne_classify_id, " +
" ne_brand_id, ne_model, ne_introduce, " +
" ne_bewrite, ne_print, ne_picture, ne_price, " +
" ne_number, ne_time, ne_status_id, ne_grounding) " +
"values " +
" (ne_products_seq.nextval, ?, " +
" ?, ?, ?, " +
" ?, 'xxxm.jpg', 'xxxt.jpg', ?, " +
" ?, sysdate, ?, ?)";
return this.executeUpdate(sql, new Object[]{
classifyId,
brandId,
model,
introduce,
bewrite,
price,
number,
statusId,
grounding
}
);
}
}