JdbcTemplate

JdbcTemplate

Spring为传统的jdbc API进行封装,简化持久层操作,虽然jdbcTemplate很灵活,但和ORM框架相比jdbcTemplate功能就显得力不从心了,学习jdbcTemplate是为学习ORM框架做铺垫
ORM:对象关系映射 O:对象 R:关系 M:映射

传入Jdbc API与Spring jdbcTemplate比较

//JDBC API
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select count(*) from COUNT student")
if(resultSet.next()){
    Integer count = resultSet.getInt("COUNT");
}

//JDBC Template
Integer count = jdbcTemplate.queryForObject("select count(*) from student",Integer.class);

使用Spring-jdbcTemplate准备

  • 引入jar包(Spring基础jar包、aop、jdbc、tx、MySql驱动)
  • 配置dataSource源
<!--引入本地数据库配置-->
<context:property-placeholder location="classpath:jdbc.properties" />

<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql:///selection_course?useUnicode=true&amp;characterEncoding=utf-8"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>
  • 配置JdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>

JdbcTemplate基本使用

  • execute方法
  • update与batchUpdate方法
  • query与queryXXX方法
  • call方法

execute对数据库DDR操作
update操作单个增删改

//API
int update(String sql,Object[] args)
int update(String sql,Objcet... args)

batchUpdate批量增删改

//API
int[] batchUpdate(String[] sql)
int[] batchUpdate(String sql,List<Object[]>)

单个简单查询

T queryForObjcet(String sql,Class<T> type)
T queryForObjcet(String sql,Object[] args,Class<T> type)
T queryForObjcet(String sql,Class<T> type,Object... arg)

获取多个

//API
List<T> queryForList(String sql,Class<T> type)
List<T> queryForList(String sql,Object[] args,Class<T> type)
List<T> queryForList(String sql,Class<T> type,Object... arg)

查询复杂对象(封装为Map)
获取单个

Map queryForMap(String sql)
Map queryForMap(String sql,Objcet[] args)
Map queryForMap(String sql,Object... arg)

获取多个

List<Map<String,Object>> queryForList(String sql)
List<Map<String,Object>> queryForList(String sql,Obgject[] args)
List<Map<String,Object>> queryForList(String sql,Obgject... arg)

查询复杂对象(封装为实体对象)

Spring jdbcTemplate是通过实现org.springframework.jdbc.core.RowMapper这个接口来完成对entity对象映射
获取一个

T queryForObject(String sql,RowMapper<T> mapper)
T queryForObject(String sql,object[] args,RowMapper<T> mapper)
T queryForObject(String sql,RowMapper<T> mapper,Object... arg)

获取多个

List<T> query(String sql,RowMapper<T> mapper)
List<T> query(String sql,Object[] args,RowMapper<T> mapper)
List<T> query(String sql,RowMapper<T> mapper,Object... arg)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 14,218评论 6 86
  • Spring JdbcTemplate的实现原理 JDBC已经能够满足大部分用户最基本的对数据库的需求,但是在使用...
    OzanShareing阅读 12,814评论 0 2
  • 大家好,我是IT修真院上海分院第02期学员,一枚正直善良的Java程序员。 今天给大家分享一下,修真院官网task...
    idiot丶伟伟阅读 11,069评论 0 2
  • 人生,就是一种操蛋的生活,在这种生活中,如果你不能学会去爬的更高一点,终究就会被别人给踩着,一旦你被踩着踩着踩习惯...
    燕落流沙阅读 1,432评论 0 0
  • 喝完一些酒之后,小小并没有醉。回宿舍洗了一次热水澡之后,丝毫没有睡意,反而更加清醒。因为她知道还有一些事情没有完成...
    怡萩阅读 3,251评论 0 3

友情链接更多精彩内容