Spring jdbcTemplate 查询语句预处理传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring jdbcTemplate 查询语句预处理传值相关的知识,希望对你有一定的参考价值。

小白一枚,最近刚用Spring jdbcTemplate,之前都是使用JDBC预编译传值的方式进行数据库连接,目前已经能够成功执行语句了,但是不知道预编译的情况下应该怎么传值,如下:
@Resource(name = "jdbcTemplate")
private JdbcTemplate template;
public List<Map<String, String>> met_test()
String sql = "select * from user limit ?,?";// 查询那个表?
List<Map<String, String>> result = template.query(sql,new myRowMapper());
return result;

sql语句中有两个占位符,使用template应该怎么传值啊,同时query的第二个参数(myRowMapper implements RowMapper)是干什么用的?

参考技术A JdbcTemplatetemplate=newJdbcTemplate(JdbcUtils.getDatasource());Stringsql="select*fromuser";Listlist=template.queryForList(sql,User.class);本回答被提问者和网友采纳

Spring使用JdbcTemplate对象完成查询

查询银行账户的数量
1.建立一个项目导入jar包(ioc aop dao 连接池 数据库驱动 ),拷贝容器对应的配置文件到src下
2.在配置文件中开启组件扫描
3.写一个DAO接口定义一个查询方法
4.定义一个JdbcTemplate的成员变量
4.1在类上加@Repository标注
4.2注入JdbcTemplate,JdbcTemplate创建时要使用到dataSource
4.3使用模板完成查询

技术分享图片
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:lang="http://www.springframework.org/schema/lang"
 6     xmlns:mvc="http://www.springframework.org/schema/mvc"
 7     xmlns:util="http://www.springframework.org/schema/util"
 8     xmlns:task="http://www.springframework.org/schema/task"
 9     xmlns:aop="http://www.springframework.org/schema/aop"
10     xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
11         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
12         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
13         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
14         http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.1.xsd
15         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
16         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
17     <!-- 开启组件扫描 -->
18     <context:component-scan base-package="com.xcz"></context:component-scan>
19     <!-- 开启标注形式的mvc -->
20     <mvc:annotation-driven></mvc:annotation-driven>
21     <!-- 配置视图处理器 -->
22     <bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
23         <property name="prefix" value="/WEB-INF/"></property>
24         <property name="suffix" value=".jsp"></property>
25     </bean>
26     <!-- 引入外部资源 -->
27     <context:property-placeholder location="classpath:db.properties"/>
28     <!-- 配置数据源 -->
29     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
30         <property name="driverClassName" value="${driverClassName}"></property>
31         <property name="url" value="${url}"></property>
32         <property name="username" value="${jdbc.username}"></property>
33         <property name="password" value="${jdbc.password}"></property>
34     </bean>
35     <!-- 定义一个模板 -->
36     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
37         <constructor-arg index="0" ref="dataSource"></constructor-arg>
38     </bean>
39 </beans>
xml
技术分享图片
1 driverClassName=oracle.jdbc.OracleDriver
2 url=jdbc:oracle:thin:@127.0.0.1:1521:xe
3 jdbc.username=
4 jdbc.password=
5 maxActive=20
db.properties
技术分享图片
1 package com.xcz.dao;
2 
3 public interface XdlBankAccountDao {
4     int getBankAccount();
5 }
dao
技术分享图片
 1 package com.xcz.impl;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.jdbc.core.JdbcTemplate;
 5 import org.springframework.stereotype.Repository;
 6 
 7 import com.xcz.dao.XdlBankAccountDao;
 8 
 9 @Repository("bankDao")
10 public class XdlBankAccountImpl implements XdlBankAccountDao{
11     @Autowired
12     private JdbcTemplate jdbcTemplate;
13     @Override
14     public int getBankAccount() {
15         String sql = "select count(1) from xdl_bank_account";
16         return jdbcTemplate.queryForInt(sql);
17     }
18 }
impl
技术分享图片
 1 package com.xcz.test;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 import com.xcz.dao.XdlBankAccountDao;
 7 import com.xcz.impl.XdlBankAccountImpl;
 8 
 9 public class TestXdlBankAccount {
10     public static void main(String[] args) {
11         ApplicationContext ioc = new ClassPathXmlApplicationContext("mvc.xml");
12         XdlBankAccountDao count = ioc.getBean("bankDao", XdlBankAccountImpl.class);
13         System.out.println(count.getBankAccount());
14     }
15 }
test

 








以上是关于Spring jdbcTemplate 查询语句预处理传值的主要内容,如果未能解决你的问题,请参考以下文章

Spring JdbcTemplate实例

Spring 的 JdbcTemplate 是不是在查询超时后关闭连接?

使用Spring JdbcTemplate实现数据库操作

在 Oracle 中使用 query() 方法删除 Spring JdbcTemplate

Spring

如何使用 Spring Framework 中的 JdbcTemplate 类执行 INSERT 语句