最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析Mybatis 在CS程序中的應(yīng)用

 更新時(shí)間:2013年07月19日 11:58:19   作者:  
如果是自己用的Mybatis,不需要考慮對(duì)配置文件加密,如果不是,那就需要考慮加密,這篇文章主要講如何配置CS的Mybatis

因?yàn)閙ybatis好使,所以幾乎需要操作數(shù)據(jù)庫(kù)的時(shí)候,我都會(huì)使用mybatis,而且在一個(gè)正式的項(xiàng)目中,同時(shí)存在BS和CS的程序,都使用的Mybatis,使用的相同mapper文件。

Mybatis的XML配置文件正常如下:

復(fù)制代碼 代碼如下:

<?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>
 <environments default="development">
  <environment id="development">
   <transactionManager type="JDBC" />
   <dataSource type="POOLED">
    <property name="driver" value="driver" />
    <property name="url" value="url" />
    <property name="username" value="username" />
    <property name="password" value="password" />
   </dataSource>
  </environment>
 </environments>

 <mappers>
  <mapper resource="com/isea/dao/YouMapper.xml" />
 </mappers>
</configuration>

為了防止數(shù)據(jù)庫(kù)用戶(hù)名密碼泄漏,我將XML進(jìn)行雙向加密,變成了一個(gè)字節(jié)文件,而且文件名后綴隨意。
例如:basic.data,內(nèi)容局部如下:

根據(jù)XML生成Mybatis的SqlSessionFactory,代碼如下:

復(fù)制代碼 代碼如下:

public class MyBatis {
 private static final String CONFIG = "basic.data";
 private SqlSessionFactory sqlSessionFactory;

 private static MyBatis instance = new MyBatis();

 private MyBatis(){
  InputStream inputStream = null;
  try {
   inputStream = getXMLIS();
   if(inputStream==null){
    throw new RuntimeException("數(shù)據(jù)庫(kù)信息配置失敗!");
   }
   sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  } finally{
   try {
    inputStream.close();
   } catch (Exception e) {
   }
  }
 }

 public static InputStream getXMLIS(){
  InputStream inputStream = null;
  try {
   //對(duì)資源進(jìn)行加密,解密后處理
   BufferedReader reader = new BufferedReader(new FileReader(new File(Config.LOCATION+"/"+CONFIG)));
   String str = null;
   StringBuffer sbBuffer = new StringBuffer();
   while((str=reader.readLine())!=null){
    sbBuffer.append(str);
   }
   EncrypDES encrypDES = new EncrypDES();
   String result = encrypDES.Decryptor(sbBuffer.toString());
   inputStream = new ByteArrayInputStream(result.getBytes());
   return inputStream;
  } catch (Exception e) {
  }
  return null;
 }

 public SqlSessionFactory getSqlSessionFactory(){
  return sqlSessionFactory;
 }

 public static MyBatis getInstance(){
  return instance;
 }
}

這里的data文件是在src下。
代碼中的EncrypDES是一個(gè)使用DES的加密解密類(lèi)。
代碼中的Config.LOCATION代碼如下:
復(fù)制代碼 代碼如下:

public static String getRealPath() throws Exception {
  String realPath = Config.class.getClassLoader().getResource("").getFile();
  java.io.File file = new java.io.File(realPath);
  realPath = file.getAbsolutePath();
  realPath = java.net.URLDecoder.decode(realPath, "utf-8");
  return realPath;
 }

getRealPath()返回的值賦給LOCATION.

上面代碼的主要流程:讀取data文件,解密,以流的形式返回給mybatis.
通過(guò)Mybatis類(lèi)就可以在程序的任意地方進(jìn)行調(diào)用了。

除了使用XML方式配置Mybatis外,還可以完全使用JAVA代碼進(jìn)行配置,這種方式比較麻煩,需要?jiǎng)?chuàng)建一個(gè)DataSource,然后用Mybatis配置類(lèi)加載所有需要的mapper.class,這里就不詳細(xì)介紹了(除非有需要)。

相關(guān)文章

  • Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析

    Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • MyBatis中的配置文件詳解

    MyBatis中的配置文件詳解

    在?MyBatis?中,配置文件分為?全局配置文件(核心配置文件)和映射配置文件,本文給大家介紹MyBatis中的配置文件相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-10-10
  • 關(guān)于Poi讀取Excel引發(fā)內(nèi)存溢出問(wèn)題的解決方法

    關(guān)于Poi讀取Excel引發(fā)內(nèi)存溢出問(wèn)題的解決方法

    這篇文章主要給大家介紹了關(guān)于Poi讀取Excel引發(fā)內(nèi)存溢出問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Java中BM(Boyer-Moore)算法的圖解與實(shí)現(xiàn)

    Java中BM(Boyer-Moore)算法的圖解與實(shí)現(xiàn)

    本文主要介紹了兩個(gè)大的部分,第一部分通過(guò)圖解的方式講解BM算法,第二部分則代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)易的BM算法,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-05-05
  • SpringBoot中的@CacheEvict 注解的實(shí)現(xiàn)

    SpringBoot中的@CacheEvict 注解的實(shí)現(xiàn)

    本文主要介紹了SpringBoot中的@CacheEvict注解的實(shí)現(xiàn),@CacheEvict 注解用于清空緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構(gòu)建)

    springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構(gòu)建)

    這篇文章主要介紹了springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構(gòu)建),需要的朋友可以參考下
    2020-08-08
  • Spring-ImportSelector接口功能使用案例

    Spring-ImportSelector接口功能使用案例

    ImportSelector接口是至spring中導(dǎo)入內(nèi)部類(lèi)或者外部類(lèi)的核心接口,只需要其定義的方法內(nèi)返回需要?jiǎng)?chuàng)建bean的class字符串就好了,這篇文章主要介紹了Spring-ImportSelector接口功能介紹,需要的朋友可以參考下
    2023-09-09
  • java制作仿微信視頻播放控件

    java制作仿微信視頻播放控件

    這篇文章主要介紹了java制作仿微信視頻播放控件的方法和代碼分享,控件繼承自SurfaceView,十分的實(shí)用,小伙伴們可以自由擴(kuò)展。
    2015-04-04
  • 利用Spring IOC技術(shù)實(shí)現(xiàn)用戶(hù)登錄驗(yàn)證機(jī)制

    利用Spring IOC技術(shù)實(shí)現(xiàn)用戶(hù)登錄驗(yàn)證機(jī)制

    這篇文章主要為大家詳細(xì)介紹了Spring IOC技術(shù)實(shí)現(xiàn)用戶(hù)登錄驗(yàn)證機(jī)制的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • java單例模式使用及注意事項(xiàng)

    java單例模式使用及注意事項(xiàng)

    這篇文章主要介紹了java單例模式使用及注意事項(xiàng),需要的朋友可以參考下
    2014-04-04

最新評(píng)論

黄石市| 柳河县| 潜江市| 安阳市| 阜城县| 五大连池市| 都昌县| 随州市| 通化市| 石屏县| 冕宁县| 望谟县| 浙江省| 荃湾区| 芒康县| 永年县| 南漳县| 美姑县| 松阳县| 自贡市| 连南| 乌拉特后旗| 大冶市| 临武县| 阿瓦提县| 伊金霍洛旗| 昭平县| 太保市| 周至县| 吉木萨尔县| 六安市| 衡南县| 东明县| 曲沃县| 新竹市| 集安市| 江津市| 永嘉县| 白沙| 徐闻县| 龙井市|