通过commons-DBUtils和commons-BeanUtils操作数据库以及根据返回集赋值给bean对象及其外键
2022/6/25 2:21:03
本文主要是介绍通过commons-DBUtils和commons-BeanUtils操作数据库以及根据返回集赋值给bean对象及其外键,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通过commons-DBUtils和commons-BeanUtils操作数据库以及根据返回集赋值给bean对象及其外键
需要用到的jar包:
我在这里遇到一些问题,使用beanutils的beanutil.populate()方法,报缺少commons-collections.FastHashMap类,
原因解释:
解决方法:
根据官方描述,如果使用的时1.7.x版本或者1.8.x版本的话,下载下来就是内含三个主要jar包的,所以,导入直接就可使用。但是,由于我所使用的时1.9.x(我用的1.9.4版本)的,所以,下载下来只有一个jar包,因此,时缺少所依赖的collections的jar包的,我们根据官方提供的连接进行下载。另外,一定要注意beanutils和依赖包collections的版本对应问题。我们可以查看官网:找到dependencies依赖一栏,可以看到beanutils所依赖的两个jar包及其所对应的版本,我们点击对应链接进行下载即可(BeanUtils 1.9.4下载collections包的3.2.2版本)。(一定要下载指定版本!!!!)
官网网址:https://commons.apache.org/proper/commons-beanutils/
collections3.2.2:https://commons.apache.org/proper/commons-collections/
logging1.2:https://commons.apache.org/proper/commons-logging/download_logging.cgi
daoImpl中的代码:
package com.gec.store.service.impl; import java.lang.reflect.InvocationTargetException; import java.sql.SQLException; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.MapHandler; import org.junit.Test; import com.gec.store.bean.CartItem; import com.gec.store.bean.Product; import com.gec.store.dao.CartItemDao; import com.gec.store.util.C3P0Util; import com.gec.store.util.DBUtil; /** * @author: Lemon E-mail:1027880379@qq.com * @version: * @Since: Created in 2022年6月24日 上午12:07:44 * @Description: */ public class CartItemDaoImpl extends DBUtil<CartItem> implements CartItemDao { /** * 购物车表中是否有uid、pid对应的商品记录 * * @throws SQLException */ @Override public CartItem hasCartItem(String uid, String pid) throws SQLException { String sql = "SELECT" + " c.id," + " c.uid," + " c.pid," + " c.c_total AS total," + " c.c_count AS count," + " p.pname," + " p.market_price," + " p.shop_price," + " p.pimage," + " p.pdate," + " p.is_hot," + " p.pdesc," + " p.pflag," + " p.cid " + "FROM " + " cart c " + " JOIN product p ON c.pid = p.pid " + "WHERE " + " c.uid = ?" + " AND c.pid = ?"; QueryRunner runner = new QueryRunner(C3P0Util.getDs_poole()); // 根据sql的列字段,返回一个map结果集,Map<字段名,属性> Map<String, Object> resultMap = runner.query(sql, new MapHandler(), uid, pid); if (resultMap == null) { return null; } try { // 首先把结果集中的购物车信息,填充到cartItem对象中, CartItem cartItem = new CartItem(); BeanUtils.populate(cartItem, resultMap); // 从结果集中,把商品的信息,填充到product对象中, Product product = new Product(); BeanUtils.populate(product, resultMap); // 将填充玩的product对象赋值给cartItem的外键 cartItem.setProduct(product); return cartItem; } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); return null; } } }
这篇关于通过commons-DBUtils和commons-BeanUtils操作数据库以及根据返回集赋值给bean对象及其外键的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!