首页>代码>java servlet实现简单oracle三表联查+分层分页>/haha/src/www/zsj/DAO/impl/OrderDaoImpl.java
package www.zsj.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 www.zsj.DAO.IOrderDao;
import www.zsj.entity.Food;
import www.zsj.entity.Order;
import www.zsj.utils.JDBCUtil;

public class OrderDaoImpl implements IOrderDao{

	@Override
	public List<Order> findList(int currentPage, int pageSize) {
		// TODO Auto-generated method stub
		ArrayList<Order> list = new ArrayList<Order>();
		Connection conn = JDBCUtil.getConnection();
		try {
			PreparedStatement ps = conn.prepareStatement("select b.oid,b.oname,b.status,b.fn,b.rn from (select a.*,rownum rn from (select o.oid,o.oname,o.status,wm_concat(f.fname) fn from tb_order o,order_foods fo,tb_foods f  where fo.oid=o.oid and f.fid=fo.fid group by o.oid,o.oname,o.status) a where rownum<?) b where rn>?");
			ps.setInt(1,pageSize*currentPage+1);
			ps.setInt(2,pageSize*(currentPage-1));
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Order o = new Order(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getString(4));
				list.add(o);
			}
			JDBCUtil.close(rs, ps, conn);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

	public static List<Food> findFoodList(int oid) {
		// TODO Auto-generated method stub
		List<Food> list = new ArrayList<Food>();
		Connection conn = JDBCUtil.getConnection();
		try {
			PreparedStatement ps = conn.prepareStatement("select f.fid,f.fname,f.fprice from order_foods fo left join tb_foods f on fo.fid=f.fid where fo.oid=?");
			ps.setInt(1, oid);
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Food f = new Food(rs.getInt(1), rs.getString(2), rs.getDouble(3));
				list.add(f);
			}
			JDBCUtil.close(rs, ps, conn);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		int count=0;
		Connection conn = JDBCUtil.getConnection();
		try {
			PreparedStatement ps = conn.prepareStatement("select count(*) from tb_order");
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				count = rs.getInt(1);
			}
			JDBCUtil.close(rs, ps, conn);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return count;
	}

	@Override
	public List<Food> showFoods() {
		// TODO Auto-generated method stub
		Connection conn = JDBCUtil.getConnection();
		List<Food> list = new ArrayList<Food>();
		try {
			PreparedStatement ps = conn.prepareStatement("select * from tb_foods");
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Food f = new Food(rs.getInt(1), rs.getString(2), rs.getDouble(3));
				list.add(f);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

	@Override
	public int addO(String oid,String oname){
		// TODO Auto-generated method stub
		Connection conn = JDBCUtil.getConnection();
		int i=0;
		try {
			PreparedStatement ps = conn.prepareStatement("insert into tb_order values(?,?,?,'1')");
			ps.setString(1, oid);
			ps.setString(2, oname);
			ps.setInt(3, 10);
			i = ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return i;
	}

	@Override
	public int addOF(String oid, String fid) {
		// TODO Auto-generated method stub
		Connection conn = JDBCUtil.getConnection();
		String[] s = fid.split(",");
		int i = 0;
		try {
			for (int j = 0; j < s.length; j++) {
				PreparedStatement ps = conn.prepareStatement("insert into order_foods values(myseq.nextval,?,?)");
				ps.setString(1, oid);
				ps.setString(2, s[j]);
				i = ps.executeUpdate();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return i;
	}

	@Override
	public ArrayList<Food> xq(String oid) {
		// TODO Auto-generated method stub
		Connection conn = JDBCUtil.getConnection();
		ArrayList<Food> list = new ArrayList<Food>();
		try {
			PreparedStatement ps = conn.prepareStatement("select * from tb_foods where fid in (select fid from order_foods where oid=?)");
			ps.setString(1, oid);
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Food f = new Food(rs.getInt(1), rs.getString(2), rs.getDouble(3));
				list.add(f);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}


}
最近下载更多
2017143155  LV12 2023年2月9日
978806986  LV16 2022年3月26日
空心菜4  LV9 2022年1月12日
飘忽的茶树  LV9 2021年8月27日
cenj12700  LV5 2021年4月21日
能不能不存在  LV13 2021年1月29日
朱文灯下逢刘倩  LV1 2020年12月21日
V03022  LV5 2020年6月20日
berbeyong  LV12 2020年6月2日
adminxu  LV13 2020年5月4日
最近浏览更多
wuge123  LV8 2023年6月12日
sjl821120  LV6 2023年5月19日
lironggang  LV38 2023年3月28日
2017143155  LV12 2023年2月9日
Java开发工程师_初心  LV1 2022年12月10日
呵呵哈哈哈  LV10 2022年9月24日
swl731372388  LV3 2022年5月26日
978806986  LV16 2022年3月26日
空心菜4  LV9 2022年1月12日
wanglinddad  LV55 2021年12月21日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友