JdbcTemplate 详解二

使用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 queryForObject(String sql,Class<T> type)
T queryForObject(String sql,Object[] args,Class<T> type)
T queryForObject(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)

 实例

复制代码
public String getInsCharacter(String productId, String companyId, String abicfundId, String inscharacterId) {  
  try {  
    Object[] params = new Object[] { productId, companyId, abicfundId, inscharacterId};  
    String stinscharactername = getJdbcTemplate().queryForObject(SQL_SELECT_INSCHARACTER, params, String.class);  
    if(!StringUtil.isEmpty(stinscharactername)){  
      return stinscharactername;  
    }  
  } catch (DataAccessException e) {  
    return "保証利率(%)";  
  }  
  return "保証利率(%)";  
}  
复制代码

 

posted @   Bonnie_ξ  阅读(109)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示