Содержание
Вот несколько примеров, чтобы показать, как использовать SimpleJdbcTemplate query()
методы для запроса или извлечения данных из базы данных. В JdbcTemplate query()
Вам нужно вручную привести возвращаемый результат к желаемому типу объекта и передать массив Object в качестве параметров. В SimpleJdbcTemplate это более удобно и просто.
jdbctemplate vesus simplejdbctemplate
Пожалуйста, сравните этот пример SimpleJdbcTemplate с этим примером JdbcTemplate .
1. Запросы для одной строки
Вот два способа показать вам, как запросить или извлечь одну строку из базы данных и преобразовать ее в класс модели.
1.1 Пользовательский RowMapper
В общем, всегда рекомендуется реализовывать интерфейс RowMapper для создания пользовательского RowMapper в соответствии с вашими потребностями.
package com.csharpcoderr.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
В SimpleJdbcTemplate вам нужно использовать «ParameterizedBeanPropertyRowMapper» вместо «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. Запросы для нескольких строк
Запрос или извлечение нескольких строк из базы данных и преобразование его в список.
2.1 ParameterizedBeanPropertyRowMapper
public List findAll(){
String sql = "SELECT * FROM CUSTOMER";
List customers =
getSimpleJdbcTemplate().query(sql,
ParameterizedBeanPropertyRowMapper.newInstance(Customer.class));
return customers;
}
3. Запросы для одного значения
Запрос или извлечение значения одного столбца из базы данных.
3.1 Название одного столбца
Он показывает, как запросить имя одного столбца как String.
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 Общее количество строк
Он показывает, как запросить общее количество строк из базы данных.
public int findTotalCustomer(){
String sql = "SELECT COUNT(*) FROM CUSTOMER";
int total = getSimpleJdbcTemplate().queryForInt(sql);
return total;
}
Запустить его
package com.csharpcoderr.common;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.csharpcoderr.customer.dao.CustomerDAO;
import com.csharpcoderr.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 customerAs = customerSimpleDAO.findAll();
for(Customer cust: customerAs){
System.out.println("Customer As : " + customerAs);
}
List 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);
}
}
Заключение
SimpleJdbcTemplate не является заменой JdbcTemplate, это просто java5-дружественное дополнение к нему.
Скачать исходный код
Загрузить его — Spring-SimpleJdbcTemplate-Querying-Example.zip (15 КБ) jdbc spring
0.00 (0%) 0 votes