实现dao

简介: package com.sxt.dao.impl;import java.sql.ResultSet; import java.

package com.sxt.dao.impl;

import java.sql.ResultSet;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.sxt.bean.Goods;
import com.sxt.dao.GoodsDao;
import com.sxt.util.JDBCUtil;
import com.sxt.util.PageBean;

public class GoodsDaoImpl implements GoodsDao {

@Override
public PageBean findGoods(String gname, String pStart, String pEnd,
        String dStart, String dEnd, String gstatus,int page,int rows) throws Exception {
    String sql = "select * from goods where 1=1";
    if (null != gname && !"".equals(gname)) {
        sql += " and gname like '%" + gname + "%'";
    }
    if (null != pStart && !"".equals(pStart)) {
        sql += " and gprice >= " + pStart + "";
    }
    if (null != pEnd && !"".equals(pEnd)) {
        sql += " and gprice <= " + pEnd + "";
    }
    //注意日期格式化
    if (null != dStart && !"".equals(dStart)) {
        sql += " and DATE_FORMAT(prodate,'%Y-%m-%d') >= '" + dStart + "'";
    }
    if (null != dEnd && !"".equals(dEnd)) {
        sql += " and DATE_FORMAT(prodate,'%Y-%m-%d') <= '" + dEnd + "'";
    }
    if (null != gstatus && !"".equals(gstatus)) {
        sql += " and gstatus = " + gstatus + "";
    }
    String fysql="select count(1) from("+sql+") a";
    sql+=" order by gid desc limit "+(page-1)*rows+","+rows;
    //查询一共多条记录
    ResultSet rs = JDBCUtil.query(fysql);
    int total=0;
    if(rs.next()){
        total=rs.getInt(1);
    }
    List<Goods> gs = new BeanListHandler<Goods>(Goods.class).handle(JDBCUtil.query(sql));
    PageBean pb = new PageBean();
    pb.setTotal(total);
    pb.setRows(gs);
    JDBCUtil.close();
    return pb;
}

@Override
public boolean delGoods(String gid) throws Exception {
    String sql = "delete from goods where gid = " + gid;
    int i = JDBCUtil.update(sql);
    if (i > 0) {
        return true;
    }
    return false;
}

@Override
public boolean saveGoods(Goods g) throws Exception {
    int i = 0;
    if (g != null) {
        String sql = "";
        if (g.getGid() != null) {
            // 修改
            sql += "update goods set gname=?,gprice=?,gnum=?,prodate=?,gaddr=?,gtel=?,gstatus=?,gurl=? where gid=?";
            i = JDBCUtil.update(sql, g.getGname(), g.getGprice(),
                    g.getGnum(), g.getProdate(), 
                    g.getGaddr(), g.getGtel(), g.getGstatus(), g.getGurl(),
                    g.getGid());
        } else {
            // 新增
            sql += "insert into goods values(null,?,?,?,?,?,?,?,?)";
            i = JDBCUtil.update(sql, g.getGname(), g.getGprice(),
                    g.getGnum(), g.getProdate(),
                    g.getGaddr(), g.getGtel(), g.getGstatus(), g.getGurl());

        }
    }
    if (i > 0) {
        return true;
    }
    return false;
}

@Override
public Goods findGoodsById(String gid) throws Exception {
    String sql = "select * from goods where gid = " + gid;
    ResultSet rs = JDBCUtil.query(sql);
    BeanHandler<Goods> bh = new BeanHandler<Goods>(Goods.class);
    Goods g = bh.handle(rs);
    JDBCUtil.close();
    return g;
}

}

相关文章
|
7月前
|
存储 前端开发 Java
Java:PO、VO、BO、DO、DAO、DTO、POJO
Java:PO、VO、BO、DO、DAO、DTO、POJO
158 0
|
7月前
|
Java 数据库
使用JavaBean(DAO和VO)开发购物车
该项目使用JavaBean(DAO和VO)开发购物车功能。主要包括:1) 创建Book VO类;2) 实现BookDAO,获取数据库中所有图书;3) SelectBook.JSP页面展示图书列表,点击“添加到购物车”调用CartServlet将图书保存至session的购物车;4) CartServlet处理添加图书到购物车逻辑;5) ShowCart.jsp显示购物车内容;6) ClearCart Servlet清空购物车。代码包括Book类、BookDAO、CartServlet和ClearCart Servlet的实现。此外,JSP页面SelectBook和ShowCart用于交互。
48 0
|
7月前
|
Java 数据库连接 mybatis
MyBatis中Mapper接口和dao区别是什么?
MyBatis中Mapper接口和dao区别是什么?
198 0
|
7月前
|
Java 关系型数据库 MySQL
实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以
实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以
|
设计模式 消息中间件 开发框架
别乱分层,PO、VO、DAO、BO、DTO、POJO 到底应该用在哪里,你知道吗?
别乱分层,PO、VO、DAO、BO、DTO、POJO 到底应该用在哪里,你知道吗?
|
Java 数据库连接 mybatis
MyBatis实现基于Mapper接口代理Dao的CURD
MyBatis实现基于Mapper接口代理Dao的CURD
|
SQL 安全 Java
MyBatisPlus的CRUD 接口BaseMapper
MyBatisPlus的CRUD 接口BaseMapper
|
SQL Java 数据库连接
|
Java 数据库连接 程序员
Mybatis Mapper代理开发Dao层
Mybatis Mapper代理开发Dao层
205 0