• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      淺談Spring數(shù)據(jù)庫開發(fā)的基本方法

      2022-05-30 16:45:01翟高粵
      客聯(lián) 2022年8期

      翟高粵

      摘 要:Spring是當(dāng)今流行的Java Web開發(fā)框架,它能解決大部分企業(yè)應(yīng)用開發(fā)的復(fù)雜性問題。對于Java開發(fā)人員來說,掌握Spring框架數(shù)據(jù)庫開發(fā)的基本方法,是進(jìn)行編寫應(yīng)用軟件的必備技能之一。本文主要介紹Spring框架數(shù)據(jù)庫開發(fā)的基本方法及應(yīng)用,并通過一個實(shí)例說明Spring框架數(shù)據(jù)庫編程的基本使用方法,從而感受Spring數(shù)據(jù)庫編程的便利。

      關(guān)鍵詞:Spring框架;MySQL;JDBC;數(shù)據(jù)庫編程

      Spring 是在2003年興起的一個輕量級的Java應(yīng)用開發(fā)框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring框架降低了Java EE API的使用難度,特別是數(shù)據(jù)庫編程方面,Spring集成了JDBC,JDBC是Spring數(shù)據(jù)訪問/集成中的重要模塊,它負(fù)責(zé)數(shù)據(jù)庫資源管理和錯誤處理,大大簡化了開發(fā)人員對數(shù)據(jù)庫的操作,使得開發(fā)人員可以從煩瑣的數(shù)據(jù)庫操作中解脫出來,從而將更多的精力投入到編寫業(yè)務(wù)邏輯中。

      1.相關(guān)理論

      1.1 SpringJDBC

      Spring JDBC是對傳統(tǒng)JDBC訪問的簡單封裝,使用Spring JDBC之后,可以省去一部分以前需要開發(fā)人員編寫的訪問數(shù)據(jù)的底層操作,比如注冊驅(qū)動、獲得連接、執(zhí)行查詢等等。Spring JDBC相當(dāng)于一個簡單封裝的持久層框架,原始功能比較簡單,使用起來也比較簡單,如果開發(fā)一些小型項(xiàng)目,是可以直接使用的,如果是一些大型項(xiàng)目,由于它并不是真正的orm框架,因此需要自己封裝一些工具,如果有能力封裝的話,那么Spring JDBC用起來是非常舒服的,性能也很強(qiáng),不比mybatis差。

      1.2 MySQL

      MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件之一。

      MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

      MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。

      MySQL和Spring JDBC進(jìn)行配合使用,兼容性好,開發(fā)效率高。

      2.SpringJDBC模塊詳解

      2.1 Spring JdbcTemplate

      針對數(shù)據(jù)庫的操作,Spring框架提供了JdbcTemplate類,該類是Spring框架數(shù)據(jù)抽象層的基礎(chǔ),其他更高層次的抽象類卻是構(gòu)建于JdbcTemplate類之上。也就是說JdbcTemplate類是SpringJDBC的核心類。JdbcTemplate類的繼承關(guān)系如圖1所示。

      從圖1可以看出,JdbcTemplate繼承自抽象類JdbcAccessor,同時(shí)實(shí)現(xiàn)了JdbcOperations接口。其中JdbcTemplate類的直接父類是JdbcAccessor,該類為子類提供了一些訪問數(shù)據(jù)庫時(shí)使用的公共屬性,具體如下。

      (1)DataSource屬性

      其主要功能是獲取數(shù)據(jù)庫連接,具體實(shí)現(xiàn)時(shí)還可以引入對數(shù)據(jù)庫連接的緩沖池和分布式事務(wù)的支持,它可以作為訪問數(shù)據(jù)庫資源的標(biāo)準(zhǔn)接口。

      (2)SQLExceptionTranslator屬性

      其主要功能通過必要的設(shè)置或者獲取SQLExceptionTranslator中的方法,可以使JdbcException在需要處理SQLException時(shí),委托SQLExceptionTranslator的實(shí)現(xiàn)類來完成相關(guān)的轉(zhuǎn)譯工作。

      (3)JdbcOperations接口

      該接口定義了在JdbcTemplate類中可以使用的操作集合,包括添加、修改、查詢和刪

      除等操作。

      2.2 Spring JDBC的配置

      Spring JDBC模塊主要由4個包組成,分別是core、dataSource、object和support包。Spring對數(shù)據(jù)庫的操作都封裝在這幾個包中,所以要想使用JDBC,就需要對其進(jìn)行配置。

      具體含義見表1所示。

      定義JdbcTemplate時(shí),需要將dataScource注入到JdbcTemplate中,而其他需要使用JdbcTemplate的Bean,也需要將JdbcTemplate注入到該Bean中。

      3.SpringJDBC編程實(shí)現(xiàn)

      在前面講到的JdbcTemplate類中,提供了大量的更新和查詢數(shù)據(jù)庫的方法,接下來本文使用這些方法來演示如何操作數(shù)據(jù)庫。

      3.1 execute()方法

      execute(String sql)方法能夠完成執(zhí)行SQL語句的功能。

      (1)首先我們先在MySQL中創(chuàng)建一個名為spring的數(shù)據(jù)庫,如圖1所示。

      (2)在MyEclipse中,創(chuàng)建一個名為firstDataBase的Web項(xiàng)目,將運(yùn)行Spring框架所需的5個基礎(chǔ)JAR包以及Spring事務(wù)處理的JAR包復(fù)制到項(xiàng)目的lib目錄并發(fā)布到類路徑中。

      (3)在src目錄下,創(chuàng)建配置文件applicationContext.xml,在該文件中配置id為dataSource的數(shù)據(jù)源Bean和id為jdbcTemplate的JDBC模板Bean,并將數(shù)據(jù)源注入到JDBC模板中,具體代碼如下所示。

      "org.springframework.jdbc.datasource.DriverManagerDataSource">

      <!--數(shù)據(jù)庫驅(qū)動 -->

      <!--連接數(shù)據(jù)庫的url -->

      <!--連接數(shù)據(jù)庫的用戶名 -->

      <!--連接數(shù)據(jù)庫的密碼 -->

      <!-- 2配置JDBC模板 -->

      class="org.springframework.jdbc.core.JdbcTemplate">

      <!-- 默認(rèn)必須使用數(shù)據(jù)源 -->

      (4)在src目錄下,創(chuàng)建一個com.szjm.jdbc包,在該包中創(chuàng)建測試類JdbcTemplateTest。在該類的main()方法中通過Spring容器獲取在配置文件中定義的JdbcTemplate實(shí)例,然后用該實(shí)例的execute方法執(zhí)行創(chuàng)建數(shù)據(jù)表的SQL語句,具體代碼如下。

      @Test

      public void mainTest() {

      ApplicationContext applicationContext =

      new ClassPathXmlApplicationContext("applicationContext.xml");

      JdbcTemplate jdTemplate =

      (JdbcTemplate) applicationContext.getBean("jdbcTemplate");

      jdTemplate.execute("create table account(" +

      "id int primary key auto_increment," +

      "username varchar(50)," +

      "balance double)");

      System.out.println("創(chuàng)建成功”);

      }

      3.2 update方法

      update方法可以完成插入、更新和刪除數(shù)據(jù)的操作。在JdbcTemplate類中,根據(jù)不同的參數(shù),提供了一系列update方法,接下來本文使用這些方法來演示如何進(jìn)行數(shù)據(jù)庫更新。

      (1)創(chuàng)建實(shí)體類Account,在該類中定義id、username和balance屬性,以及其對應(yīng)的getter/setter方法。

      (2)創(chuàng)建接口AccountDao,并在接口中定義添加、更新和刪除賬戶的方法,部分代碼如下所示。

      public interface AccountDao {

      public int addAccount(Account account);

      public int updateAccount(Account account);

      public int deleteAccount(int id);

      public Account findAccountById(int id);

      public List findAllAccount();

      }

      (3)創(chuàng)建AccountDao接口的實(shí)現(xiàn)類AccountDaoImpl,并在類中實(shí)現(xiàn)添加、更新和刪除賬戶的方法。

      public class AccountDaoImpl implements AccountDao {

      private JdbcTemplate jdbcTemplate;

      public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

      this.jdbcTemplate = jdbcTemplate;

      }

      public int addAccount(Account account) {

      String sql = "insert into account(username,balance) value(?,?)";

      Object[] obj = new Object[] {

      account.getUsername(),

      account.getBalance()

      };

      int num = this.jdbcTemplate.update(sql, obj);

      return num;

      }}

      (4)在applicationContext.xml中,定義一個id為accountDao的Bean,該Bean用于將jadcTemplate注入到accountDao實(shí)例中,代碼如下所示。

      <!-- 將jdbcTemplate注入到accountDao實(shí)例中 -->

      4.結(jié)論

      本文對Spring框架中使用JDBC進(jìn)行數(shù)據(jù)操作的理論、方法和步驟進(jìn)行詳細(xì)說明。首先了解了Spring JDBC中的核心類以及如何在Spring中配置JDBC,然后通過案例講解了Spring JDBC核心類JdbcTemplate中常用方法的使用,通過本文的學(xué)習(xí),讀者能夠?qū)W會使用Spring框架進(jìn)行數(shù)據(jù)庫開發(fā),并能深切地體會到Spring框架進(jìn)行數(shù)據(jù)庫編程的強(qiáng)大。

      參考文獻(xiàn):

      [1]沃爾斯. Spring實(shí)戰(zhàn) [M]. 人民郵電出版社,2016.

      [2]卡內(nèi)爾. Spring開發(fā)三劍客[M],人民郵電出版社, 2020.

      [3] 陳恒等. Spring Boot從入門到實(shí)戰(zhàn)[M]. 清華大學(xué)出版社出版社,2020.

      治县。| 重庆市| 蕲春县| 扎赉特旗| 彭州市| 洞头县| 金华市| 垫江县| 奉贤区| 红河县| 齐齐哈尔市| 科技| 四会市| 新疆| 清流县| 建水县| 延庆县| 莱州市| 峨眉山市| 翼城县| 蓬莱市| 门源| 新郑市| 河源市| 鲁甸县| 巴林右旗| 繁昌县| 武穴市| 四川省| 图片| 顺义区| 彝良县| 庆安县| 平度市| 安化县| 塘沽区| 寻甸| 通道| 个旧市| 十堰市| 长泰县|