先上一段简单示例
الفئة العامة mytemplate {private dataSource DataSource ؛ بيانات البيانات العامة getDataSource () {return dataSource ؛ } public void setDataSource (dataSource dataSource) {this.datasource = dataSource ؛ } إدراج الفراغ العام (سلسلة SQL) يلقي sqlexception {connection conn = this.datasource.getConnection () ؛ بيان stmt = conn.createstatement () ؛ stmt.executeupdate (SQL) ؛ stmt.close () ؛ conn.close () ؛ }}داو
الطبقة العامة persondao يمتد mytemplate {public void savePerson () يلقي الاستثناء {this.insert ("insert in person (pid ، pname) (3 ، 'aaa')") ؛ }}الربيع 配置文件
<!-properties 配置文件-> <bean> <property name = "socations"> <value> classpath: jdbc.properties </value> </sopperation> </bean> <bean id = "dataSource" destroy-method = "close"> <property name = "driverClassName" value = "$ {jdbc.driverclame} value = "$ {jdbc.url}" /> <property name = "username" value = "$ {jdbc.userName}" /> <property name = "password" value = "$ {jdbc.password}" /> </bean id = "myTemplate"> <!-setter 注入- </property> </bean> <bean id = "persondao"> <property name = "datasource"> <ref bean = "datasource"/> </propert测试类
فئة عامة persondaotest {test public void testpersondao () يلقي استثناء {ApplicationContext Context = new ClassPathxMlicationContext ("CN/QJC/JDBC/ApplicationContext.xml") ؛ persondao persondao = (persondao) context.getBean ("persondao") ؛ persondao.saveperson () ؛ }}以上代码将 DataSource 注入给 mytemplate , 再把 dataSource 注入给 persondao , 因为 persondao 继承 mytemplate , 所以拥有 dataSource 属性。既然 persondao 继承 mytemplate , 所以 persondao 类注入可以改为
<bean id = "persondao" parent = "myTemplate"> </bean>
以上例子中 mytemplate 类似于设计模式中的模板模式也叫模板方法模式 , 模板方法模式是所有模式中最为常见的几个模式之一 , 是基于继承的代码复用的基本技术。
模板模式 = 静态代码+动态变量
在 الربيع 中动态变量可以用注入的形式给予。这样的编程方式适合包装成模板。静态代码构成了模板 , 而动态变量则是需要传入的参数。
الربيع 与 jdbc 结合核心类 jdbctemplate
1 、基于模板的设置 (为什么可以设置成基于模板的形式)
2 、完成了资源的创建和释放的工作
3 、简化为我们对 JDBC 的操作
4 、完成了对 jdbc 的核心流程的工作 , 包括 sql 语句的创建和执行
5 、仅需要传递 بيانات البيانات 就可以把它实例化
6 、 jdbctemplate 只需要创建一次
7 、 jdbctemplate 是线程安全类
使用 Spring+JDBC 修改上面例子 (MyTemplate 类去掉)
الطبقة العامة persondao يمتد jdbcdaosupport {public void savePerson (String sql) {this.getjdbctemplate (). execute (sql) ؛ }}الربيع 配置文件改为
<bean id = "persondao"> <property name = "dataSource"> <ref bean = "datasource"/> </property> </bean>
jdbctemplate 类结构图
执行过程
: :
1 、执行数据的操作的是 jdbctemplate
2 、最根本的步骤就是要把 DataSource 注入到 jdbctemplate
3 、通过给 jdbctemplate 注入 dataSource
أ 、采用构造器的形式注入
ب 、采用 setter 方法进行注入
4 、可以给 JDBCDAOSUPPORT 注入 DataSource
5 、可以给 jdbcdaosupport 注入 jdbctemplate
所以 Spring 与 JDBC 整合有三种方法 , 但实际上核心类为 jdbctemplate
1 、使用 jdbctemplate
在 dao 类中 用 用 jdbctemplate 作为属性 , 用 spring 对 jdbctemplate 进行注入。再对 jdbctemplate 进行 dataSource 注入。
: : 为什么只要对 jdbctemplate 注入 dataSource 就可以了?
2 、继承 jdbcdaosupport
在 dao 类中 , 继承 jdbcdaosupport 。因为 jdbcdaosupport
3 、继承 jdbctemplate
الربيع 还提供了其他 orm 框架整合模式都差不多 , 完全可直接套用。
الربيع+السبات
الربيع+JDO
由此可看出 الربيع IOC 和 di 的强大 IOC 和 di 完成了从接口到类的对应。利用 spring 容器程序员很容易的在客户端实现面向接口编程 , 而且很容易给接口装配 , , 类也是自己写的 , 配置文件也是自己写的。spring 实际完成了创建对象和装配的工作 , 它会自动的对应起来。
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。