Справочник по C#

    Исходники по языку программирования CSharp

    Spring SimpleJdbcTemplate Запрос примеров

    /
    /
    /
    264 Views

    Вот несколько примеров, чтобы показать, как использовать 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

    Spring SimpleJdbcTemplate Запрос примеров

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9