JdbcTemplate查询BeanPropertyRowMapper返回自定义对象
JDBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤。
JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。他帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC工作流,如Statement的建立和执行,而我们只需要提供SQL语句和提取结果。
Spring源码地址:https://github.com/spring-projects/spring-framework
在JdbcTemplate中执行SQL语句的方法大致分为3类:
execute:可以执行所有SQL语句,一般用于执行DDL语句。
update:用于执行INSERT、UPDATE、DELETE等DML语句。
queryXxx:用于DQL数据查询语句。
JdbcTemplate配置连接池
org.springframework.jdbc.core.JdbcTemplate类方便执行SQL语句
public JdbcTemplate(DataSource dataSource)
创建JdbcTemplate对象,方便执行SQL语句
public void execute(final String sql)
execute可以执行所有SQL语句,因为没有返回值,一般用于执行DDL语句。
JdbcTemplate使用步骤
准备DruidDataSource连接池
导入依赖的jar包
spring-beans-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
spring-jdbc-4.1.2.RELEASE.jar
spring-tx-4.1.2.RELEASE.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
创建JdbcTemplate对象,传入Druid连接池
调用execute、update、queryXxx等方法
案例代码public class Demo04 { public static void main(String[] args) { // 创建表的SQL语句 String sql = "CREATE TABLE product(" + "pid INT PRIMARY KEY AUTO_INCREMENT," + "pname VARCHAR(20)," + "price DOUBLE" + ");"; JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource()); jdbcTemplate.execute(sql); } }
org.springframework.jdbc.core.JdbcTemplate类方便执行SQL语句
API介绍
public List query(String sql, RowMapperrowMapper)
执行查询语句,返回一个List集合,List中存放的是RowMapper指定类型的数据。
public class BeanPropertyRowMapper implements RowMapper
BeanPropertyRowMapper类实现了RowMapper接口
使用步骤
定义Product类
创建JdbcTemplate对象
编写查询的SQL语句
使用JdbcTemplate对象的query方法,并传入BeanPropertyRowMapper对象// query使用BeanPropertyRowMapper做映射返回对象 public static void test07() throws Exception { JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource()); // 查询数据的SQL语句 String sql = "SELECT * FROM product;"; List list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Product.class)); for (Product product : list) { System.out.println(product); } } JdbcTemplate查询-RowMapper返回自定义对象
org.springframework.jdbc.core.JdbcTemplate类方便执行SQL语句
API介绍
public List query(String sql, RowMapperrowMapper)
执行查询语句,返回一个List集合,List中存放的是RowMapper指定类型的数据。
1
2
使用步骤
定义Product类
创建JdbcTemplate对象
编写查询的SQL语句
使用JdbcTemplate对象的query方法,并传入RowMapper匿名内部类
在匿名内部类中将结果集中的一行记录转成一个Product对象// query使用rowMap做映射返回一个对象 public static void test06() throws Exception { JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource()); // 查询数据的SQL语句 String sql = "SELECT * FROM product;"; List query = jdbcTemplate.query(sql, new RowMapper() { @Override public Product mapRow(ResultSet arg0, int arg1) throws SQLException { Product p = new Product(); p.setPid(arg0.getInt("pid")); p.setPname(arg0.getString("pname")); p.setPrice(arg0.getDouble("price")); return p; } }); for (Product product : query) { System.out.println(product); } } 使用JdbcTemplate对象的query方法,并传入RowMapper匿名内部类 在匿名内部类中将结果集中的一行记录转成一个Product对象
JdbcTemplate查询-queryForList返回一个List集合
目标
能够掌握JdbcTemplate中queryForList方法的使用
讲解
org.springframework.jdbc.core.JdbcTemplate类方便执行SQL语句
API介绍
public List
华为nova9系列发布,华为最希望用户明白什么2021年9月23日,华为发布nova9系列手机发布了,这是个潮流系列,实事求是讲,产品定位稍差于时尚P系,价格上也能体现。废话少说,直接说说这次产品华为最想让用户知道哪些优势一外
首日涨超95,蓝领和社交能解决Boss直聘的远忧?作者小法师原创财经小锄头(chutou0325)6月11日,BOSS直聘顺利登陆纳斯达克。自5月22日向美交所提交招股书以来,有红杉资本等机构的保驾护航,BOSS直聘的上市之路比想
真实经历小米10邮寄拆字库完美解用户锁真或假笔者为了验证某大型比较宽泛的电商平台解锁小米手机的能力,特意把手中的一台小米10上用户锁,然后进行邮寄解锁看看卖家能否成功,现在分享给大家。第一家随便找了一家询问,回答是这样的小米
如无特别重要数据,可以升级华为鸿蒙系统华为鸿蒙系统近期来到了HarmonyOS3。0开发者预览版,系统也日趋进步,拥有华为手机,部分荣耀旧机型的一些用户已经率先升级了鸿蒙系统,还有很多用户也是跃跃欲试。笔者手中也有几部
对魅族2020年产品线预测1。魅族17,旗舰机,骁龙865g,6。2寸小屏超旗舰,电池4000。2。魅族17plus,屏幕6。5寸,电池达到4500。3。魅族17PRO,顶尖旗舰,1亿像素,全方面升级。4。
摄影后时代的发展国货主力军将会花落谁家?历史上的今天,对摄影圈来说是一个特别的日子,1907年6月10日,摄影界的先驱奥古斯特和卢米埃尔兄弟表示,他们研制出一种制作彩色照片的可行方法。在过于那个还停留在黑白照片的时代,这
嗡嗡嗡!小米冲击高端可行吗?出路在哪里?刚才随便搜了一下,小米10能抢占华为用户吗?出来的内容大同小异,现在我们理性分析一下。小米会抢华为用户吗?小米怎么做高端产品?1。什么样的人买华为mate系列,大部分是30岁以上的
成功不是一蹴而就,看看华为是如何一步步冲击高端的!成功不是一蹴而就,谁都想冲击高端,但堆硬件并不就是高端,本文将回顾一下华为是如何一步步走向高端的,希望小米不骄不躁,做好产品,人生路远,慢慢来。1987年,任正非集资21000元人
回顾小米数字系列,看看价格到底是怎么涨起来的。2010年,正是中国智能手机刚刚开始普及,市场起飞的阶段。雷军召集了和他一样志同道合的8位创始人,几个人一起喝了一碗小米粥,创办了小米公司。小米手机于2011年10月正式发布,售价
永诺要转行卖家具了?相机镜头跟灯都不卖了吗?众所周知,永诺是一家摄影器材厂商,从一个老灯厂逐渐全方位发展成为了一家覆盖了各个领域的摄影器材厂商,先后推出了闪光灯镜头LED灯美妆灯直播云台以及最近新推出的直播相机,但你知道吗?
如何拍摄出让人怦然心动的猫片?蓝眼外籍模特众所周知,拍摄小动物也是摄影圈中很受欢迎的题材之一,可是怎么拍好这种题材却是也让人烦恼的事情,今天我们就请到了来自美国的几位蓝眼睛的仙女仙男模特,让他们来配合我们拍照吧。事前准备工