springjdbc-NamedParameterJdbcTemplate处理in查询

package com.test;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

import com.java.common.util.BeanFactory;
import com.java.ssmb.entity.domain.UserInfo;
/**
 * 使用NamedParameterJdbcTemplate查询条件sql中in查询和javabean查询
 * 一般spring项目中都存在JdbcTemplate,
 * 例子使用JdbcTemplate创建NamedParameterJdbcTemplate
 *
 * @author yeshun
 *
 */
public class NamedParameterJdbcTemplateTest {

	private NamedParameterJdbcTemplate namedJdbcTemplate;

	public NamedParameterJdbcTemplateTest(){
		JdbcTemplate jdbcTemplate = BeanFactory.getBean("jdbcTemplate",JdbcTemplate.class);
		this.namedJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
	}

	/*
	 * 使用map查询
	 */
	public void queryListByMap(List<String> userids){
		String sql = "select * from user_table u where u.user_id in (:userids )";

		Map<String,Object> parameters = new HashMap<String,Object>();
		parameters.put("userids", userids);

		List<Map<String,Object>> list = namedJdbcTemplate.queryForList(sql, parameters);

		for (Map<String, Object> map : list) {
			System.out.println("-------------------");
			System.out.println(map.get("user_id"));
			System.out.println(map.get("user_name"));
		}
	}

	/*
	 * 使用MapSqlParameterSource查询
	 */
	public void queryListByMapSqlParameterSource(List<String> userids){
		String sql = "select * from user_table u where u.user_id in (:userids )";

		MapSqlParameterSource parameters = new MapSqlParameterSource();
		parameters.addValue("userids", userids);

		List<Map<String,Object>> list = namedJdbcTemplate.queryForList(sql, parameters);

		for (Map<String, Object> map : list) {
			System.out.println("-------------------");
			System.out.println(map.get("user_id"));
			System.out.println(map.get("user_name"));
		}
	}

	/*
	 * 使用BeanPropertySqlParameterSource查询,javabean查询
	 */
	public void querySingleByBeanPropertySqlParameterSource(){
		//:userId -- 对应UserInfo.userId
		String sql = "select * from user_table u where u.user_id = :userId ";

		UserInfo user = new UserInfo();
		user.setUserId("user0");
		BeanPropertySqlParameterSource parameters = new BeanPropertySqlParameterSource(user);

		Map<String,Object> map = namedJdbcTemplate.queryForMap(sql, parameters);

		System.out.println(map.get("user_id"));
		System.out.println(map.get("user_name"));

	}

	/*
	 * 查询单个返回值
	 */
	public void querySingle(List<String> userids){
		String sql = "select count(*) from user_table u where u.user_id in (:userids )";
		MapSqlParameterSource parameters = new MapSqlParameterSource();
		parameters.addValue("userids", userids);

		Integer count = namedJdbcTemplate.queryForObject(sql, parameters, Integer.class);
		// queryForInt
//		Integer count = namedJdbcTemplate.queryForInt(sql, parameters);
		System.out.println(count);
	}

	/*
	 * 使用MapSqlParameterSource查询,使用RowMapper返回
	 */
	public void queryUsersByMapSqlParameterSource(List<String> userids){
		String sql = "select * from user_table u where u.user_id in (:userids )";

		MapSqlParameterSource parameters = new MapSqlParameterSource();
		parameters.addValue("userids", userids);

		List<UserInfo> userList = namedJdbcTemplate.query(sql, parameters,new RowMapper<UserInfo>(){

			@Override
			public UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
				// TODO Auto-generated method stub
				UserInfo user = new UserInfo();
				user.setUserId(rs.getString("user_id"));
				user.setUserName(rs.getString("user_name"));
				user.setPassword(rs.getString("password"));
				return user;
			}
		});

		for (UserInfo userInfo : userList) {
			System.out.println(userInfo.getUserId()+"--"+userInfo.getUserName());
		}
	}

	public static void main(String[] args) {
		NamedParameterJdbcTemplateTest test = new NamedParameterJdbcTemplateTest();
		List<String> userids= new ArrayList<String>();
		userids.add("user0");
		userids.add("user1");
		userids.add("user2");
		userids.add("user3");

//		test.queryListByMap(userids);
//		test.queryListByMapSqlParameterSource(userids);
//		test.querySingle(userids);
//		test.querySingleByBeanPropertySqlParameterSource();
		test.queryUsersByMapSqlParameterSource(userids);
	}
}

springjdbc-NamedParameterJdbcTemplate处理in查询

时间: 2024-07-29 15:01:41

springjdbc-NamedParameterJdbcTemplate处理in查询的相关文章

springJdbc in 查询,Spring namedParameterJdbcTemplate in查询

springJdbc in 查询,Spring namedParameterJdbcTemplate in查询, SpringJdbc命名参数in查询,namedParameterJdbcTemplate in查询 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 201

springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询

springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询, SpringJdbc命名参数like模糊查询,namedParameterJdbcTemplate like模糊查询 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copy

springJDBC实现mysql简单分页

效果图: 前台jsp代码如下: <div class="listNav"> <div class="instruction"> 您正在查看${result }个结果中的第${start+1 }-${limit }项结果. </div> <fieldset><legend>首页</legend> <input type="button" name="eventS

spring 整合JDBC

使用Spring提供的三个JDBC模板类(JdbcTemplate.NamedParameterJdbcTemplate.SimpleJdbcTemplate)操作数据库 一.JdbcTemplate是Spring中最主要的JDBC模板, 利用JDBC和简单的索引參数查询对数据库进行简单訪问 二.NamedParameterJdbcTemplate可以在查询的时候把值绑定到SQL里的命名參数,而不是索引參数 NamedParameterJdbcTemplate内部包括了一个JdbcTemplat

springJDBC实现查询

其实在Spring这个框架中,提供了一些对JDBC访问数据库的封装,其中JdbcTemplate就是一个很好用的类,下面来 演示一下这个类的一些用法.首先需要导入commons-logging.jar,和spring.jar这两个包.然后使用他的功能就可以了, 可以说,Spring框架对JDBC的封装是非常强大的,只需要一个数据源,建立完成连接后,对于连接的处理,连接池的 创建和维护,语句的发送和大数据的访问和返回,都提供了最好的支持,程序员不需要去关注这些,使用极为方便 [java] pack

SpringMVC,采用的是SpringJDBC

上一次复习搭建了SpringMVC+Mybatis,这次搭建一下SpringMVC,采用的是SpringJDBC,没有采用任何其他的ORM框 架,SpringMVC提供了一整套的WEB框架,所以如果想搭建纯的SpringMVC的话,而且不必映入别的任何框架,SpringMVC都给我们提 供了,下面试Spring + SpringMVC的详细搭建过程. 项目包含:数据库mysql(其实那个数据库都无所谓),连接池采用的是c3p0. 1.创建数据表 数据表很简单,user_info 2.搭建Mave

spring--JDBC的支持--7

7.1  概述 7.1.1  JDBC回顾 传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示: java代码: //cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception { Connection conn = null; PreparedStatement pstmt = null; try { conn = getConnection(); //1.获取JDBC

springJDBC学习笔记和实例

前言:相对于Mybatis(ibatis),个人感觉springJDBC更灵活,主要实现类JdbcTemplate:它替我们完成了资源的创建以及释放工作,从而简化了我们对JDBC的使用.它还可以帮助我们避免一些常见的错误,比如忘记关闭数据库连接.JdbcTemplate将完成JDBC核心处理流程,比如SQL语句的创建.执行,而把SQL语句的生成以及查询结果的提取工作留给我们的应用代码.它可以完成SQL查询.更新以及调用存储过程,可以对ResultSet进行遍历并加以提取.它还可以捕获JDBC异常

SPRING IN ACTION 第4版笔记-第十章Hitting the database with spring and jdbc-004-使用NamedParameterJdbcTemplate

为了使查询数据库时,可以使用命名参数,则要用NamedParameterJdbcTemplate 1.Java文件配置 1 @Bean 2 public NamedParameterJdbcTemplate jdbcTemplate(DataSource dataSource) { 3 return new NamedParameterJdbcTemplate(dataSource); 4 } 2.在Dao层中使用 1 private static final String INSERT_SPI

由SpringJdbc引发的一点思考

本来项目中使用的是Hibernate,后来换Mybatis,但由于项目中很多sql语句是动态的,无实体,参数不固定,列也不固定,Mybatis显得太重量了,所以我又选择用spring jdbc这种更轻量的封转替换掉原来的jdbc,更换dao层真心让我想吐了. 其实,无论Spring jdbc,Hibernate,还是mybatis都是对jdbc的封装,封装不变的部分,留下可变的部分让我们自己写. 使用 Spring jdbc,其实最主要的是使用它的三个模板,Spring的JdbcTemplate