国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解spring與jdbc整合操作

詳解spring與jdbc整合操作

2020-06-27 13:11woonu JAVA教程

這篇文章主要為大家詳細介紹了spring與jdbc整合操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下

先上一段簡單示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MyTemplate {
 
  private DataSource dataSource;
 
  public DataSource getDataSource() {
    return dataSource;
  }
 
  public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
  }
  
  public void insert(String sql) throws SQLException{
    Connection conn = this.dataSource.getConnection();
    Statement stmt = conn.createStatement();
    stmt.executeUpdate(sql);
    stmt.close();
    conn.close();
  }
}

Dao類

?
1
2
3
4
5
6
public class PersonDao extends MyTemplate{
 
  public void savePerson() throws Exception{
    this.insert("insert into person(pid,pname) values(3,'aaa')");
  }
}

spring配置文件

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!--
    引入properties配置文件
   -->
  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
      <value>classpath:jdbc.properties</value>
    </property>
  </bean>
  
  <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
  </bean>
  
  <bean id="myTemplate" class="cn.qjc.jdbc.dao.MyTemplate">
    <!-- setter注入 -->
    <property name="dataSource">
      <ref bean="dataSource"/>
    </property>
  </bean>
  
  <bean id="personDao" class="cn.qjc.jdbc.dao.PersonDao">
    <property name="dataSource">
      <ref bean="dataSource"/>
    </property>
  </bean>
 
</beans>

測試類

?
1
2
3
4
5
6
7
8
9
public class PersonDaoTest {
 
  @Test
  public void testPersonDao() throws Exception{
    ApplicationContext context = new ClassPathXmlApplicationContext("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" class="cn.qjc.jdbc.dao.PersonDao" parent="myTemplate"></bean>

以上例子中MyTemplate類似于設計模式中的模板模式也叫模板方法模式,模板方法模式是所有模式中最為常見的幾個模式之一,是基于繼承的代碼復用的基本技術。

  模板模式 = 靜態(tài)代碼+動態(tài)變量

在spring中動態(tài)變量可以用注入的形式給予。這樣的編程方式適合包裝成模板。靜態(tài)代碼構成了模板,而動態(tài)變量則是需要傳入的參數(shù)。

spring與jdbc結合核心類JdbcTemplate

  1、基于模板的設置(為什么可以設置成基于模板的形式)

  2、完成了資源的創(chuàng)建和釋放的工作

  3、簡化為我們對JDBC的操作

  4、完成了對JDBC的核心流程的工作,包括SQL語句的創(chuàng)建和執(zhí)行

  5、僅需要傳遞DataSource就可以把它實例化

  6、JdbcTemplate只需要創(chuàng)建一次

  7、JdbcTemplate是線程安全類

使用spring+jdbc修改上面例子(myTemplate類去掉)

?
1
2
3
4
5
public class PersonDao extends JdbcDaoSupport {
  public void savePerson(String sql){
    this.getJdbcTemplate().execute(sql);
  }
}

spring配置文件改為

?
1
2
3
4
5
<bean id="personDao" class="cn.qjc.jdbc.dao.PersonDao">
    <property name="dataSource">
      <ref bean="dataSource"/>
    </property>
</bean>

JdbcTemplate類結構圖

詳解spring與jdbc整合操作

執(zhí)行過程

詳解spring與jdbc整合操作

說明:

    1、執(zhí)行數(shù)據(jù)的操作的是JdbcTemplate

    2、最根本的步驟就是要把dataSource注入到JdbcTemplate

    3、通過給JdbcTemplate注入dataSource

           a、采用構造器的形式注入

           b、采用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已經有了JdbcTemplate的引用,所以只要繼承JdbcDaoSupport就相當于有了JdbcTemplate屬性。

 3、繼承JdbcTemplate

spring還提供了其他ORM框架整合模式都差不多,完全可直接套用。

spring+hibernate

詳解spring與jdbc整合操作

spring+Jdo

詳解spring與jdbc整合操作

由此可看出spring IOC 和 DI 的強大,IOC和DI 完成了從接口到類的對應。利用spring容器程序員很容易的在客戶端實現(xiàn)面向接口編程,而且很容易給接口裝配,結構也可以設置的很靈活。因為接口是自己寫的,類也是自己寫的,配置文件也是自己寫的。spring實際完成了創(chuàng)建對象和裝配的工作,它會自動的對應起來。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
  • JAVA教程java的arrays數(shù)組排序示例分享

    java的arrays數(shù)組排序示例分享

    排序算法,基本的高級語言都有一些提供。C語言有qsort()函數(shù),C++有sort()函數(shù),java語言有Arrays類(不是Array)。用這些排序時,都可以寫自己的排序規(guī)則 ...

    java教程網4492019-11-11
  • JAVA教程java線程并發(fā)semaphore類示例

    java線程并發(fā)semaphore類示例

    Java 5.0里新加了4個協(xié)調線程間進程的同步裝置,它們分別是Semaphore, CountDownLatch, CyclicBarrier和Exchanger,本例主要介紹Semaphore,Semaphore是用來管理一個資源池的工...

    java教程網4872019-10-31
  • JAVA教程簡介Java的Spring框架的體系結構以及安裝配置

    簡介Java的Spring框架的體系結構以及安裝配置

    這篇文章主要介紹了Java的Spring框架的體系結構以及安裝配置,Spring框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下 ...

    goldensun3592020-03-08
  • JAVA教程Java中Map的用法詳解

    Java中Map的用法詳解

    將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口 ...

    java教程網1572020-04-25
  • JAVA教程java開發(fā)微信分享到朋友圈功能

    java開發(fā)微信分享到朋友圈功能

    這篇文章主要為大家詳細介紹了java開發(fā)微信發(fā)送給朋友和分享到朋友圈功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ...

    u0132921602672020-05-28
  • JAVA教程java獲取各種路徑的基本方法

    java獲取各種路徑的基本方法

    這篇文章主要為大家詳細介紹了java獲取各種路徑的基本方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    浪漫逆風1892020-06-22
  • JAVA教程Java中常用的6種排序算法詳細分解

    Java中常用的6種排序算法詳細分解

    這篇文章主要介紹了Java中常用的6種排序算法詳細分解,著重說明每個算法的計算過程分解,是探究實現(xiàn)原理級的文章,對于深入理解這些算法有很大幫助,需要...

    junjie1342019-11-25
  • JAVA教程Java中使用BigDecimal進行浮點數(shù)運算

    Java中使用BigDecimal進行浮點數(shù)運算

    這篇文章主要介紹了Java中使用BigDecimal進行浮點數(shù)運算,需要的朋友可以參考下 ...

    Java教程網2422019-11-24
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产资源在线免费观看 | 久久h| 国产另类ts人妖一区二区 | 交视频在线观看国产 | 国产高清视频在线 | 亚洲一区二区精品视频 | 天天干人人| 亚洲人人爱 | 日本高清中文字幕 | 久久av网 | 午夜tv | 欧美va视频 | 国产精品第一国产精品 | 毛片区| 91亚洲国产 | 欧美日韩中文字幕在线 | 91尤物网站网红尤物福利 | 欧美 中文字幕 | 日韩成人影院 | 亚洲精品一区二区在线观看 | 国产一区二区久久久 | 无码日韩精品一区二区免费 | 欧美天堂在线观看 | 日韩免费在线 | 成人免费视频网站 | 国内精品视频在线观看 | 成人午夜精品一区二区三区 | 国产日韩一区二区三区 | 亚洲一区中文字幕 | 亚洲精品一区二区三区精华液 | 国产毛片毛片 | 色官网 | 欧美日韩久久精品 | 久久久精品久久久 | 欧美久久久久 | 91午夜在线 | 隔壁老王国产在线精品 | 日韩中文字幕在线观看 | 成av在线 | 综合久久网 | 日本不卡视频 |