先上一段简单示例
คลาสสาธารณะ MyTemplate {DataSource DataSource ส่วนตัว; DataSource สาธารณะ getDataSource () {ส่งคืนแหล่งข้อมูล; } โมฆะสาธารณะ setDataSource (DataSource DataSource) {this.dataSource = DataSource; } โมฆะสาธารณะแทรก (สตริง SQL) พ่น sqlexception {การเชื่อมต่อ conn = this.datasource.getConnection (); คำสั่ง stmt = conn.createstatement (); stmt.executeUpdate (SQL); stmt.close (); conn.close (); -Dao 类
Persondao ชั้นเรียนสาธารณะขยาย MyTemplate {โมฆะสาธารณะ saveperson () โยนข้อยกเว้น {this.insert ("แทรกเข้าไปในบุคคล (pid, pname) ค่า (3, 'aaa')"); -ฤดูใบไม้ผลิ配置文件
<!-引入คุณสมบัติ配置文件-> <bean> <property name = "locations"> <value> classpath: jdbc.properties </value> </property> </epean> <bean id = "DataSource" Destroy-Method = "Close"> value = "$ {jdbc.url}" /> <property name = "username" value = "$ {jdbc.username}" /> <property name = "รหัสผ่าน" value = "$ {jdbc.password}" /> < /bean> </perty> </ebean> <bean id = "persondao"> <property name = "dataSource"> <ref bean = "DataSource"/> </poreport> </ebean> </ebeans>测试类
persondaotest คลาสสาธารณะ {@test โมฆะสาธารณะ testpersondao () พ่นข้อยกเว้น {applicationcontext context = ใหม่ classpathxmlapplicationContext ("cn/qjc/jdbc/applicationcontext.xml"); persondao persondao = (persondao) บริบท getBean ("persondao"); Persondao.saveperson (); -以上代码将 DataSource 注入给 mytemplate, dataSource 注入给 persondao, 因为 persondao 继承 mytemplate, dataSource 属性。既然 persondao 继承 mytemplate, persondao 类注入可以改为
<bean id = "persondao" parent = "myTemplate"> </ebean>
以上例子中 MyTemplate 类似于设计模式中的模板模式也叫模板方法模式, 模板方法模式是所有模式中最为常见的几个模式之一, 是基于继承的代码复用的基本技术。
模板模式 = 静态代码+动态变量
在ฤดูใบไม้ผลิ中动态变量可以用注入的形式给予。这样的编程方式适合包装成模板。静态代码构成了模板, 而动态变量则是需要传入的参数。
ฤดูใบไม้ผลิ与 JDBC 结合核心类 JDBCTEMPLATE
1 、基于模板的设置(为什么可以设置成基于模板的形式)
2 、完成了资源的创建和释放的工作
3 、简化为我们对 JDBC 的操作
4 、完成了对 JDBC 的核心流程的工作, 包括 SQL 语句的创建和执行
5 、仅需要传递 แหล่งข้อมูล就可以把它实例化
6、 Jdbctemplate 只需要创建一次
7、 Jdbctemplate 是线程安全类
使用 Spring+JDBC 修改上面例子( MyTemplate (类去掉)
Persondao ชั้นเรียนสาธารณะขยาย JDBCDAOSUPPORT {โมฆะสาธารณะ SavePerson (String SQL) {this.getJdBctemplate (). Execute (SQL); -ฤดูใบไม้ผลิ配置文件改为
<bean id = "persondao"> <property name = "dataSource"> <ref bean = "DataSource"/> </porement> </ebean>
Jdbctemplate 类结构图
执行过程
说明:
1 、执行数据的操作的是 Jdbctemplate
2 、最根本的步骤就是要把 DataSource 注入到 Jdbctemplate
3 、通过给 JDBCTEMPLATE 注入 DataSource
A 、采用构造器的形式注入
B 、采用 Setter 方法进行注入
4 、可以给 Jdbcdaosupport 注入 DataSource
5 、可以给 Jdbcdaosupport 注入 Jdbctemplate
所以ฤดูใบไม้ผลิ与 jdbc 整合有三种方法, 但实际上核心类为 jdbctemplate
1 、使用 Jdbctemplate
在 dao 类中, 用 jdbctemplate 作为属性, 用สปริง对 jdbctemplate 进行注入。再对 jdbctemplate 进行 DataSource 注入。
注: 为什么只要对 jdbctemplate 注入แหล่งข้อมูล 就可以了?
2 、继承 jdbcdaosupport
在 dao 类中, 继承 jdbcdaosupport 。因为 jdbcdaosupport 已经有了 Jdbctemplate 的引用, 所以只要继承 jdbcdaosupport 就相当于有了 Jdbctemplate 属性。
3 、继承 Jdbctemplate
ฤดูใบไม้ผลิ还提供了其他 orm 框架整合模式都差不多, 完全可直接套用。
ฤดูใบไม้ผลิ+ไฮเบอร์เนต
ฤดูใบไม้ผลิ+JDO
由此可看出ฤดูใบไม้ผลิ ioc 和 di 的强大, ioc 和 di 完成了从接口到类的对应。利用ฤดูใบไม้ผลิ容器程序员很容易的在客户端实现面向接口编程,, 结构也可以设置的很灵活。因为接口是自己写的, 类也是自己写的, 配置文件也是自己写的。spring实际完成了创建对象和装配的工作, 它会自动的对应起来。它会自动的对应起来。它会自动的对应起来。它会自动的对应起来。
以上就是本文的全部内容, 希望对大家的学习有所帮助, 也希望大家多多支持武林网。