美文网首页
Spring和数据库编程

Spring和数据库编程

作者: 起名字是很难的一件事 | 来源:发表于2018-11-21 11:21 被阅读0次

    传统JDBC代码的弊端:

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

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

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

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

      <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

          <property name="dataSource" ref="dataSource"/>

      </bean>

    这样就为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和数据库编程

          本文链接:https://www.haomeiwen.com/subject/rgbqqqtx.html