亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

使用MyBatis進行數據庫映射的方式

2024-07-14 08:42:35
字體:
來源:轉載
供稿:網友

在Java中,MyBatis是1個支持自定義SQL的持久層框架,它可以存儲過程和高級的映射。

在正式介紹之前,我們首先通過mvn進行安裝,我們將下面的內容添加到 pom.xml 配置文件中:

<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version></dependency>

上述操作完成后,我們首先新建1個MyBatis的配置文件,使用XML的格式進行編寫:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <properties resource="db.properties"></properties> <environments default="my-config">   <environment id="my-config">    <transactionManager type="JDBC" />    <dataSource type="POOLED">     <property name="driver" value="${driver}"></property>     <property name="url" value="${url}"></property>     <property name="username" value="${user}"></property>     <property name="password" value="${pwd}"></property>    </dataSource>   </environment> </environments> <mappers>  <mapper resource="mapping.xml" /> </mappers></configuration>

我們將上述的內容寫入到 config.xml 文件中。其中environments是配置的環境,其中的environment用于對應的環境的配置。這里,我們默認使用的環境是 my-config ,其使用JDBC的方式進行連接,數據源的方式為連接池。其中,數據源可以使用:

  • UNPOOLED,每次請求時打開和關閉連接
  • POOLED,連接池
  • JNDI,主要用于EJB或應用服務器中使用

而環境通過對 db.properties 中的內容進行配置,其內容如下:

url=jdbc:oracle:thin:@xxx.xxx.xxx.xx:1521/orcluser=xxxpwd=xxxdriver=oracle.jdbc.driver.OracleDriver

更多關于MyBatis的配置,可以 參考 。其中包括別名、類型處理器typeHandler的說明,這里就不一一敘述了。

最后,我們還設置了1個匹配的資源,其支持4種方式:

resource,使用相對于類路徑的資源引用

url,使用完全限定資源定位符

class,使用映射器接口實現類的完全限定類名

name,將包內的映射器接口實現全部注冊為映射器

在這里我們使用resource的方式指定匹配的文件的名稱。其內容如下:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC    "-//mybatis.org//DTD Mapper 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="user">  <select id="es_temp" fetchSize="10" resultType="java.util.LinkedHashMap">   select ENTNAME,UNISCID,INDUSTRY,REGION,OPSTATE,ESTYEAR,SCALE from xxx where rownum <![CDATA[<=]]> 20  </select></mapper>

由于在XML中,括號具有單獨的意義,因此如果我們使用尖括號會出現解析錯誤,此時我們可以使用HTML實體轉義編碼,如 < 來進行處理,或者直接使用 <![CDATA[xxxx]]> 進行實際符號的處理。

我們通過mapper標簽中的namespace定義了映射的命名空間,其中的id用于對應語句的匹配,方便進行命名解析。

接著是對應的Java代碼的編寫:

import java.io.Reader;import java.util.*;import com.alibaba.fastjson.*;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.*;public class Demo {  public static SqlSessionFactory sessionFactory;  public static void main(String[] args) {    try {      Reader reader = Resources.getResourceAsReader("config.xml");      sessionFactory = new SqlSessionFactoryBuilder().build(reader);      SqlSession session = sessionFactory.openSession();      List<LinkedHashMap<?,?>> result = session.selectList("user.es_temp");      String json_str = JSON.toJSONString(result);      System.out.println(json_str);      session.close();    } catch (Exception e){      e.printStackTrace();    }  }}

在這里,我們通過Resources類對配置文件進行讀取,然后構建1個SqlSessionFactory,之后通過其openSession得到1個Session對象,這樣我們就可以進行對應的SQL操作了。

我們使用selectList函數進行對應SQL的執行,其使用的是 命名空間.id 的方式來進行對應的操作。另外,還有1個selectOne函數用于單個記錄的查詢,對于多個結果會直接返回異常。

其結果為:

[  {    "ENTNAME":"深圳市藍海匯裝飾設計工程有限公司",    "UNISCID":"91440300359236108Q",    "INDUSTRY":"批發和零售業",    "REGION":"深圳",    "OPSTATE":"存續(在營、開業、在冊)",    "ESTYEAR":"3年以下",    "SCALE":"小微企業"  },  {    "ENTNAME":"暴風雨(深圳)電子商務有限公司",    "UNISCID":"91440300MA5DF887XE",    "INDUSTRY":"批發和零售業",    "REGION":"深圳",    "OPSTATE":"存續(在營、開業、在冊)",    "ESTYEAR":"3年以下",    "SCALE":"小微企業"  },  ...]

可以看到,通過上述的方式,我們可以很容易的實現代碼與SQL語句的分離。但是,對應的SQL語句依賴于數據庫,可移植性差。另外,對于字段多、關聯表多時,編寫SQL語句的工作量很大。

總結

以上所述是小編給大家介紹的使用MyBatis進行數據庫映射,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区欧美亚洲| 亚洲色图日韩av| 久久亚洲春色中文字幕| 国产精品成人久久久久| 成人免费自拍视频| 亚洲福利视频网| 中日韩午夜理伦电影免费| 亚洲国产99精品国自产| 欧美亚洲另类制服自拍| 国产精品一区二区三区久久久| 国产精品久久久精品| 91精品在线国产| 久久久国产影院| 日韩在线视频免费观看| 国产精品69久久久久| 91禁外国网站| 热99在线视频| 日本成人黄色片| 美女国内精品自产拍在线播放| 欧美理论电影在线播放| 亚洲一区二区黄| 欧美国产精品va在线观看| 成人网页在线免费观看| 日韩欧美一区二区三区| 久久久这里只有精品视频| 在线精品国产成人综合| 欧美激情精品久久久久久黑人| 欧美人交a欧美精品| 国产一区二区av| 欧美视频在线观看免费网址| 97国产真实伦对白精彩视频8| 久久精品91久久久久久再现| 在线免费观看羞羞视频一区二区| 欧美亚州一区二区三区| 久久久久久久影院| 亚洲精品福利免费在线观看| 91久久久久久国产精品| 在线观看精品国产视频| 欧美日韩中文字幕在线视频| 欧美一区二区三区免费观看| 色偷偷偷综合中文字幕;dd| 欧美日韩不卡合集视频| 亚洲第一天堂无码专区| 成人美女免费网站视频| 自拍视频国产精品| 97精品伊人久久久大香线蕉| 成人动漫网站在线观看| 精品久久久久久国产91| 91精品免费视频| 欧美成人精品不卡视频在线观看| 色悠悠久久88| 久久久久国产精品免费网站| 亚洲综合在线播放| 日韩在线免费观看视频| 日韩欧美在线免费观看| 久久伊人免费视频| 国产免费一区二区三区在线能观看| 日韩hd视频在线观看| 久久久黄色av| 97在线精品国自产拍中文| 91精品久久久久久久久久另类| 亚洲精品在线不卡| 国产香蕉一区二区三区在线视频| 91免费观看网站| 国产精品免费网站| 亚洲a∨日韩av高清在线观看| 国产精品久久久av久久久| 亚洲一区二区三区乱码aⅴ| 欧美成人久久久| 欧美另类在线播放| 欧美大片大片在线播放| 亚洲日本aⅴ片在线观看香蕉| 麻豆国产va免费精品高清在线| 亚洲国产91精品在线观看| 成人欧美在线视频| 亚洲区免费影片| 国产精品成av人在线视午夜片| 日韩麻豆第一页| 日韩精品中文字幕视频在线| 国产日本欧美在线观看| 国产欧美va欧美va香蕉在线| 欧美视频在线视频| 久久国产精品久久久久| 成人午夜高潮视频| 国产欧美欧洲在线观看| 国产精自产拍久久久久久| 91精品国产网站| 日韩中文字幕亚洲| 美女999久久久精品视频| 欧美激情视频网址| 97在线精品国自产拍中文| 国产亚洲欧洲在线| 午夜精品久久久久久久久久久久| 97在线日本国产| 日韩精品中文字幕在线| 日韩精品一区二区三区第95| 国产精品中文在线| 亚洲女人天堂色在线7777| 久久视频在线视频| 欧美性生交xxxxxdddd| 亚洲视频在线播放| 国产成人一区二区三区| 亚洲色图13p| 欧美性生交大片免网| 午夜精品久久久久久久久久久久久| 91国语精品自产拍在线观看性色| 91久久国产婷婷一区二区| 亚洲第一av网| 成人黄色激情网| 91在线观看免费高清完整版在线观看| 尤物yw午夜国产精品视频| 国产一区二区免费| 91超碰中文字幕久久精品| 欧美日韩国产综合新一区| 69久久夜色精品国产69乱青草| 精品在线欧美视频| 最近2019年日本中文免费字幕| 2024亚洲男人天堂| 国产91网红主播在线观看| 亚洲精品美女在线| 久久亚洲电影天堂| 琪琪亚洲精品午夜在线| 欧美性猛交xxxx乱大交3| 中文字幕免费精品一区高清| 亚洲欧洲日本专区| 国产91ⅴ在线精品免费观看| 91青草视频久久| 精品免费在线视频| 国产精品亚洲片夜色在线| 亚洲欧美资源在线| 国产视频丨精品|在线观看| 亚洲国产天堂久久综合网| 亚洲精品综合精品自拍| 亚洲一品av免费观看| 中文字幕久热精品视频在线| 日本精品视频在线观看| 久久人人爽人人爽人人片亚洲| 高跟丝袜欧美一区| 高清在线视频日韩欧美| 91色视频在线导航| 国产精品自产拍在线观看中文| 欧美精品18videos性欧| 北条麻妃99精品青青久久| 成人精品视频在线| 日韩激情第一页| 另类图片亚洲另类| 国产中文欧美精品| 国产ts人妖一区二区三区| 国产日本欧美一区二区三区在线| 欧美视频在线视频| 久久97久久97精品免视看| 国产精品久久久久久网站| 亚洲色图美腿丝袜| 欧美精品18videosex性欧美| 91精品国产综合久久香蕉922| 亚洲第一页中文字幕| 亚州欧美日韩中文视频| 国产午夜精品久久久| 亚洲黄色av网站| 亚洲a级在线观看| 中文字幕欧美日韩精品| 91在线精品播放| 亚洲福利精品在线| 成人伊人精品色xxxx视频|