上一章节《Spring4基础二八-AOP篇-AspectJ的注解配置》
如果文中有纰漏,请多多指正!!!
一、Spring与数据库(DAO)
前面已将讲解了Spring的两大核心技术:IoC(控制反转)和AOP(面向切面编程)。从本章节开始将讲解Spring两大核心技术的典型应用:
- Spring对JDBC模板的使用,即IoC应用,直接体现在将JDBC模板对象注入Dao层实现;
- Spring对事务的管理,即AOP的应用,直接体现在将事务作为切面织入到业务逻辑上,也就是通常说的Service层。
二、JDBC模板-JdbcTemplate
JDBC模板的出现是为了简化直接使用JDBC带来的繁琐且冗长的代码,JDBC模板大大简化了JDBC操作,并且数据源DadaSource对象与JdbcTemplate对象是可配置注入的,使用时可直接使用JdbcTemplate对象操作数据的增、删、改、查操作。
为更直观了解,下面进行伪代码比较:
1.原生JDBC编程六步曲:
//1.注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //2.获取数据库连接 Connection conn = DriverManager.getConnection("数据库连接地址","用户名","密码"); //3.获取数据库操作对象 Statement stmt = conn.createStatement(); //4.执行SQL语句:DQL语句->处理查询结果集 String sql = "SQL查询语句"; ResultSet rs = stmt.executeQuery(sql); //5.处理查询结果集 while(rs.next()){ //rs.getString("");//获取查询结果 } //6.关闭资源-倒序关闭 rs.close(); stmt.close(); conn.close();
2.Mybatis中JDBC编程
1.配置主配置文件mybatis.xml(数据源配置) 2.配置映射文件mapper.xml(Sql配置) 3.编写接口程序 //3.1加载配置文件 InputStream input = Resources.getResourceAsStream("mybatis.xml"); //3.2.创建SqlSessionFactory工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input); //3.3获取SqlSession SqlSession sqlSession = factory.openSession(); //3.4操作增删改查 sqlSession.insert("mapperId", "数据对象"); //3.5关闭资源 sqlSession.close();
3.Spring-JDBC模板
1.在配置文件中配置数据源datasource;2.数据操作类继承JdbcTemplate;3.配置数据操作类并将datasource注入;4.数据操作类直接操作JdbcTemplate,进行增删改查,无需任何其他操作。
从以上伪代码和操作步骤中可以对比看出,JDBC模板只需要简单配置,就可以达到立即使用的目的。没有中间商赚差价...
三、数据源配置
JDBC模板的使用离不开数据源的配置,下面讲解一下常用数据源的配置,以MySql为例配置
- Spring 默认数据源
- DBCP数据源
- C3P0数据源
1.Spring 默认数据源
Spring默认数据源为DriverManagerDataSource。基本配置如下
2.DBCP数据源
DBCP数据源(DBCP,DataBase Connection Pool),是apache下的项目,使用该数据源
- 首先需要引入DBCP的2个jar包
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar com.springsource.org.apache.commons.pool-1.5.3.jar
- xml基本配置
3.C3P0数据源
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用该数据源
- 首先需要引入C3P0的1个jar包
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
- xml基本配置(上述的两个数据源也一样,可自行查阅资料进行连接池配置)
5301060506030truefalse
![8e39e7dd5ee679733a212d2f731fbbbf.png](https://i-blog.csdnimg.cn/blog_migrate/be1cb8e7309762c64071960897b3f3a4.jpeg)