Spring SimpleJdbcTemplate Querying examples
2015-08-23 22:15
344 查看
Here are few examples to show how to use
Please compare this
1.1 Custom
In general, It’s always recommend to implement the
2.1
Run it
SimpleJdbcTemplate
query()methods to query or extract data from database. In
JdbcTemplate
query(), you need to manually cast the returned result to desire object type, and pass an
Objectarray as parameters. In
SimpleJdbcTemplate, it is more user friendly and simple.
jdbctemplate
vesus simplejdbctemplate
Please compare this SimpleJdbcTemplateexample with this
JdbcTemplateexample.
1. Querying for Single Row
Here’s two ways to show you how to query or extract a single row from database, and convert it into a model class.1.1 Custom RowMapper
In general, It’s always recommend to implement the RowMapperinterface to create a custom
RowMapperto suit your needs.
package com.mkyong.customer.model; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; public class CustomerRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Customer customer = new Customer(); customer.setCustId(rs.getInt("CUST_ID")); customer.setName(rs.getString("NAME")); customer.setAge(rs.getInt("AGE")); return customer; } } public Customer findByCustomerId(int custId){ String sql = "SELECT * FROM CUSTOMER WHERE CUST_ID = ?"; Customer customer = getSimpleJdbcTemplate().queryForObject( sql, new CustomerParameterizedRowMapper(), custId); return customer; }
1.2 BeanPropertyRowMapper
In SimpleJdbcTemplate, you need to use ‘ParameterizedBeanPropertyRowMapper’ instead of ‘BeanPropertyRowMapper’. public Customer findByCustomerId2(int custId){ String sql = "SELECT * FROM CUSTOMER WHERE CUST_ID = ?"; Customer customer = getSimpleJdbcTemplate().queryForObject(sql, ParameterizedBeanPropertyRowMapper.newInstance(Customer.class), custId); return customer; }
2. Querying for Multiple Rows
Query or extract multiple rows from database, and convert it into aList.
2.1 ParameterizedBeanPropertyRowMapper
public List<Customer> findAll(){ String sql = "SELECT * FROM CUSTOMER"; List<Customer> customers = getSimpleJdbcTemplate().query(sql, ParameterizedBeanPropertyRowMapper.newInstance(Customer.class)); return customers; }
3. Querying for a Single Value
Query or extract a single column value from database.3.1 Single column name
It shows how to query a single column name asString.
public String findCustomerNameById(int custId){ String sql = "SELECT NAME FROM CUSTOMER WHERE CUST_ID = ?"; String name = getSimpleJdbcTemplate().queryForObject( sql, String.class, custId); return name; }
3.2 Total number of rows
It shows how to query a total number of rows from database.public int findTotalCustomer(){ String sql = "SELECT COUNT(*) FROM CUSTOMER"; int total = getSimpleJdbcTemplate().queryForInt(sql); return total; }
Run it
package com.mkyong.common; import java.util.ArrayList; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.mkyong.customer.dao.CustomerDAO; import com.mkyong.customer.model.Customer; public class SimpleJdbcTemplateApp { public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Customer.xml"); CustomerDAO customerSimpleDAO = (CustomerDAO) context.getBean("customerSimpleDAO"); Customer customerA = customerSimpleDAO.findByCustomerId(1); System.out.println("Customer A : " + customerA); Customer customerB = customerSimpleDAO.findByCustomerId2(1); System.out.println("Customer B : " + customerB); List<Customer> customerAs = customerSimpleDAO.findAll(); for(Customer cust: customerAs){ System.out.println("Customer As : " + customerAs); } List<Customer> customerBs = customerSimpleDAO.findAll2(); for(Customer cust: customerBs){ System.out.println("Customer Bs : " + customerBs); } String customerName = customerSimpleDAO.findCustomerNameById(1); System.out.println("Customer Name : " + customerName); int total = customerSimpleDAO.findTotalCustomer(); System.out.println("Total : " + total); } }
Conclusion
TheSimpleJdbcTemplateisn’t a replacement for
JdbcTemplate, it’s just a java5-friendly supplement to it.
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- java实现简单美女拼图游戏
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- 基于Spring框架的Shiro配置方法
- Spring MVC中上传文件实例
- 实例讲解Java的Spring框架中的AOP实现
- 解析Java中如何获取Spring中配置的bean
- Spring的注解配置与XML配置之间的比较
- java Spring整合Freemarker的详细步骤
- Java 二维码,QR码,J4L-QRCode 的资料整理
- java当中的定时器的4种使用方式
- java中 spring 定时任务 实现代码