Spring和数据库编程

传统JDBC代码的弊端:

    在传统的JDDBC代码中使用了大量的Try catch 语句,这样做造成了代码泛滥,执行一条很简单的Sql语句都

显得十分的复杂,并且还要执行很多次的数据库资源打开和关闭,为此Spring提供了JdbcTemplate来解决此问题。

  此时可以在Spring的配置文件中,配置一个DataSource(数据源),这里可以使用DBCP数据源,使用该数据源的时

候需要配置的类是:BasicDataSource类,为这个类注入一些必要的数据库信息。

 

     

 

这样就为JdbcTemplate这个类注册成一个bean,并且注入了dataSource属性,就是刚才定义的dbcp数据源。

这样就可以获取这个定义好的JdbcTemplate的bean了。然后就可以来调用JdbcTemplate对象的query()方法

来进行查询了或者是调用update()方法来进行增删改操作。需要注意的是,使用query()或者queryForObject()

进行查询的时候要对结果集进行处理,一般的做法是,实现RowMapper接口的匿名内部类并覆盖原来的方法 mapRow

创建一个 封装类对象,通过该对象的set方法来将获取到的ResultSet类型的对象各个字段的值封装进去,并返回

该封装类对象。  或者是,使用lambda表达式的方式,即query(sql,(ResultSet rs,int rownum)->{

                                  封装类对象

                                    调用set方法设置从rs对象中获取的值

                                    return 封装类对象     

                                          });

目前流行的方式是MyBatis-Spring组合的形式,因为Spring Ioc可以有效的管理各种Java资源,通过Aop框架,数据

库事务可以委托给Spring管理,消除了一大部分事务代码,配合MyBatis的高灵活,可配置,可优化sql等特性完全

可以构建高性能大型网站。

使用之前需要先导入MyBatis-Spring.jar包,然后在Spring的配置文件中配置dataSource,配置完数据源后,再来

配置SqlSessionFactoryBean,并且为他注入两个属性,一个是dataSource  另一个就是Mybatis的配置文件。

我们然后就可以配置SqlSessionTemplate了,需要注入SqlSessionFactory。

然后可以获取SqlSessionTemplate对象来直接调用增删改查,但是我们希望通过接口的方式来操作数据库,这时可以配置一个

bean就是,MapperScannerConfigurer,来扫描接口所在的包,注入basePackage属性,和SqlSessionFactory

还有注解的类annotationClass,意思是带有这个注解接口可以被扫描成Mapper对象,存放在容器中。

你可能感兴趣的:(Spring和数据库编程)