Spring使用JdbcTemplate操作数据库

一、前期准备

1、引入jar包,在spring配置文件中配置数据仓库数据库连接池

  
    
         
         
         
         
    

2、配置jdbcTemplate对象,注入DataSource


    

        
    

3、在A类中注入jdbcTemplate对象(通过@AutoWired注入)  (注意**在A类前记得加注解,如@service等)(所以在xml配置文件中记得组件扫描)

  //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;

配置文件部分如下


    


    
    
         
         
         
         
    

    
        
        
    

二、数据库操作(增删改查)

1.在注入jdbcTemplate的类中进行数据库添加、删除、修改操作

1)创建表中每个对象的类,包含表中各列的名称,以及get和set方法创建。如下图中的book类;

2)在A接口中创建添加、删除、修改的函数(jdbcTemplate.update( , )第一个参数sql语句,第二个参数sql语句中需要的参数),在A类中进行重写,写入具体操作;

3)在test类中进行测试,测试类编写可以参考这篇里面。

A类代码如下:

@Service
public class BookDaoImpl implements BookDao{

    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
    
    @Override
    public void add(Book book) {
        String sql = "insert into t_book values(?,?,?)";
        jdbcTemplate.update(sql,book.getUserID(),book.getUsername(),book.getUstatus());
    }

test类代码如下:

@Test
    public void testAdd() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        BookDaoImpl bookDaoImpl = context.getBean("bookDaoImpl", BookDaoImpl.class);
        Book book = new Book();
        book.setUserID("10");
        book.setUsername("heima");
        book.setUstatus("5");
        bookDaoImpl.add(book);

2.查询并返回

1)查询并返回某个值   

区别是执行sql语句的函数与增删改查不同,采用queryForObject( ,)方法,第一个参数是sql语句,第二个参数是返回类型的class(如返回int数值,则为Interger.class)。

2)查询并返回对象

与返回值所用的函数相同,但参数不同queryForObject( ,,)

第一个参数sql语句

第二个参数new BeanPropertyRowMapper< >( )  尖括号里面是返回对象类型,圆括号里是返回对象类型的class

第三个参数是需要输入的值(即sql查询语句中需要输入的值的形参)

 public Book foundone(int id) {
        String sql = "select * from t_book where user_id=?";
        Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper(Book.class), id);
        return book;

3)查询并返回对象集合( List<对象类型> )

 区别是执行sql语句的函数为query( , , ),参数与返回对象是所表示的一样(注意第二个参数的尖括号里面是返回对象类型,圆括号里是返回对象类型的class)

3.批量操作

执行sql语句的函数是batchUpdate( , ),第一个参数sql语句,第二个参数List集合,对其进行批量操作。

public void batchadd(List args) {
        String sql = "insert into t_book values(?,?,?)";
        int[] adds = jdbcTemplate.batchUpdate(sql, args);
        System.out.println(Arrays.toString(adds));
    }

你可能感兴趣的:(spring)