先上一段简单示例
public class mytemplate {private DataSource -DataSource; public DataSource getDataSource () {return DataSource; } public void setDataSource (DataSource DataSource) {this.dataSource = DataSource; } public void Insert (String SQL) löst SQLEXception {Connection conn = this.dataSource.getConnection () aus; Anweisung STMT = Conn.CreateStatement (); stmt.executeUpdate (SQL); stmt.close (); conn.close (); }}Dao 类
öffentliche Klasse Persondao erweitert MyTemplate (public void SavePerson () Ausnahme (this.insert ("in Person (pid, pName) Werte (3, 'aaa')"); }}Frühling 配置文件
<!-引入 Eigenschaften 配置文件-> <bean> <Eigenschaft name = "Standorte"> <wert> classPath: jdbc.properties </value> </property> </bean> <bean id = "dataSource" destroy-method = "close"> <Property name = "thrableClassname" < value = "$ {jdbc.url}" /> <Eigenschaft name = "userername" value = "$ {jdbc.username}" /> <Eigenschaft name = "password" value = "$ {jdbc.password}" /> < /bean> <bean id = "mytemplate" <! bean = "dataSource"/> </property> </bean> <bean id = "persondao"> <Eigenschaft name = "dataSource"> <ref bean = "dataSource"/> </property> </bean> </beans>测试类
public class penondaotest {@test public void TestPersondao () löst Ausnahme aus {applicationContext context = new classPathXMLApplicationContext ("cn/qjc/jdbc/applicationContext.xml"); Persondao persondao = (persondao) context.getbean ("persondao"); persondao.saveperson (); }}以上代码将 DataSource 注入给 MyTemplate , 再把 DataSource 注入给 PERONDAO , 因为 PERONDAO 继承 MYTEMPLATE , 所以拥有 DataSource 属性。既然 persondao 继承 mytemplate , 所以 persondao 类注入可以改为
<bean id = "persondao" parent = "mytemplate"> </bean>
以上例子中 MyTemplate 类似于设计模式中的模板模式也叫模板方法模式 , 模板方法模式是所有模式中最为常见的几个模式之一 , 是基于继承的代码复用的基本技术。 是基于继承的代码复用的基本技术。
模板模式 = 静态代码+动态变量
在 Feder 中动态变量可以用注入的形式给予。这样的编程方式适合包装成模板。静态代码构成了模板 , 而动态变量则是需要传入的参数。 而动态变量则是需要传入的参数。
Feder 与 JDBC 结合核心类 JDBCTEMPLATE
1 、基于模板的设置(为什么可以设置成基于模板的形式)
2 、完成了资源的创建和释放的工作
3 、简化为我们对 JDBC 的操作
4 、完成了对 JDBC 的核心流程的工作 , 包括 sql 语句的创建和执行
5 、仅需要传递 DataSource 就可以把它实例化
6 、 Jdbctemplate 只需要创建一次
7 、 Jdbctemplate 是线程安全类
使用 Spring+JDBC 修改上面例子( MyTemplate 类去掉)
öffentliche Klasse Persondao erweitert JDBCDAOSUPPORT {public void SavePerson (String SQL) {this.getJdbctemplate (). Execute (SQL); }}Frühling 配置文件改为
<bean id = "persondao"> <Eigenschaft name = "dataSource"> <ref bean = "dataSource"/> </property> </bean>
Jdbctemplate 类结构图
执行过程
说明 :
1 、执行数据的操作的是 Jdbctemplate
2 、最根本的步骤就是要把 DataSource 注入到 Jdbctemplate
3 、通过给 Jdbctemplate 注入 DataSource
a 、采用构造器的形式注入
B 、采用 Setter 方法进行注入
4 、可以给 JDBCDAOSUPPORT 注入 DataSource
5 、可以给 JDBCDAOSUPPORT 注入 JDBCTEMPLATE
所以 FRINDE 与 JDBC 整合有三种方法 , 但实际上核心类为 JDBCTEMPLATE
1 、使用 Jdbctemplate
在 dao 类中 , 用 Jdbctemplate 作为属性 , 用 fing 对 jdbctemplate 进行注入。再对 jdbctemplate 进行 DataSource 注入。
注 : 为什么只要对 Jdbctemplate 注入 DataSource 就可以了?
2 、继承 JDBCDAOSUPPORT
在 Dao 类中 , 继承 Jdbcdaosupport 。因为 Jdbcdaosupport 已经有了 Jdbctemplate 的引用 , 所以只要继承 Jdbcdaosupport 就相当于有了 Jdbctemplate 属性。
3 、继承 Jdbctemplate
Feder 还提供了其他 orm 框架整合模式都差不多 , 完全可直接套用。
Frühling+Hibernate
Frühling+JDO
由此可看出 Feder ioc 和 di 的强大 , ioc 和 di 完成了从接口到类的对应。利用 feder 容器程序员很容易的在客户端实现面向接口编程 而且很容易给接口装配 而且很容易给接口装配 结构也可以设置的很灵活。因为接口是自己写的 , 类也是自己写的 , 配置文件也是自己写的。 配置文件也是自己写的。spring 实际完成了创建对象和装配的工作 , 它会自动的对应起来。
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。 也希望大家多多支持武林网。