JAVA全系列 教程
3762个小节阅读:7090.6k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
需求:查询用户ID为1的用户信息他的订单信息,以及订单中所包含的商品信息。
SQL语句
xxxxxxxxxx
select * from users u,orders o, orders_items oi, items i WHERE
u.userid = o.user_id and o.orderid = oi.order_id and oi.item_id = i.itemid
and u.userid =1
UserDao接口
xxxxxxxxxx
/**
* 查询用户ID为1的用户信息他的订单信息,
* 以及订单中所包含的商品信息。
*/
Users selectUsers(int userid);
UsersDaoImpl接口实现类
xxxxxxxxxx
/**
* 查询用户ID为1的用户信息他的订单信息,
* 以及订单中所包含的商品信息。
*/
@Override
public Users selectUsers(int userid) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Users users =new Users();
try{
conn = JdbcDruidUtil.getConnection();
ps = conn.prepareStatement("select * from users u,orders o, orders_items oi, items i WHERE\n" +
"u.userid = o.user_id and o.orderid = oi.order_id and oi.item_id = i.itemid \n" +
"and u.userid =?");
ps.setInt(1,userid);
rs = ps.executeQuery();
while(rs.next()){
//Users对象的ORM映射
users.setUserid(rs.getInt("userid"));
users.setUsername(rs.getString("username"));
users.setUserage(rs.getInt("userage"));
//Orders对象的ORM映射
Orders orders = new Orders();
orders.setOrderid(rs.getInt("orderid"));
orders.setOrderprice(rs.getDouble("orderprice"));
users.getOrders().add(orders);
//Items对象的ORM映射
Items items = new Items();
items.setItemid(rs.getInt("itemid"));
items.setItemname(rs.getString("itemname"));
items.setItemprice(rs.getDouble("itemprice"));
items.setItemnum(rs.getInt("itemnum"));
orders.getItems().add(items);
}
}catch (Exception e){
e.printStackTrace();
//通过自定义异常解决异常耦合问题
throw new ApplicationException(e.getMessage());
}finally{
JdbcDruidUtil.closeResource(rs,ps,conn);
}
return users;
}
UsersService接口
xxxxxxxxxx
Users findUsers(int userid);
UsersService接口实现类
xxxxxxxxxx
@Override
public Users findUsers(int userid) {
UsersDao ud = new UsersDaoImpl();
return ud.selectUsers(userid);
}