老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

使用Java如何將SQL腳本文件執行到數據庫中

使用Java如何將SQL腳本文件執行到數據庫中?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創新互聯服務項目包括鶴峰網站建設、鶴峰網站制作、鶴峰網頁制作以及鶴峰網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,鶴峰網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到鶴峰省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!

方式一:直接讀取SQL腳本文件的內容,然后傳遞到SQL中。

代碼:RunSqlService:

  @Autowired
  private RunSqlDao runSqlDao;
  
  /**
   * 讀取文件內容到SQL中執行
   * @param sqlPath SQL文件的路徑:如:D:/TestProject/web/sql/腳本.Sql
   */
  public void runSqlByReadFileContent(String sqlPath) throws Exception {
    try {
       
      String sqlStr = readFileByLines(sqlPath);
      // System.out.println("獲得的文本:" + sqlStr);
      if (sqlStr.length() > 0) {
        runSqlDao.runSqlBySqlStr(sqlStr);
      }
    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    }
  }
  
  /**
   * 以行為單位讀取文件,常用于讀面向行的格式化文件
   */
  private String readFileByLines(String filePath) throws Exception {
    StringBuffer str = new StringBuffer();
    BufferedReader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(
          new FileInputStream(filePath), "UTF-8"));
      String tempString = null;
      int line = 1;
      // 一次讀入一行,直到讀入null為文件結束
      while ((tempString = reader.readLine()) != null) {
        // 顯示行號
        // System.out.println("line " + line + ": " + tempString);

        str = str.append(" " + tempString);
        line++;
      }
      reader.close();
    } catch (IOException e) {
      e.printStackTrace();
      throw e;
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e1) {
        }
      }
    }

    return str.toString();
  }

RunSqlDao : 

  /**
   * @param sqlStr
   */
  public void runSqlBySqlStr(String sqlStr) {
    Map map=new HashMap();
    map.put("sqlStr", sqlStr);
    sqlSessionTemplate.selectList("runSql.runSqlBySqlStr", map);
  }

SQLMap:





這種寫法:只支持數據的變化(新增、修改、刪除),且SQL文件內容以begin開始,以end結束。無法更新表字段修改等操作。

方式二;使用ScriptRunner

代碼:RunSqlService:

  /**
   * 執行sql腳本文件 使用ScriptRunner
   * @param sqlPath SQL文件的路徑:如:D:/TestProject/web/sql/腳本.Sql
   */
  public void runSqlByScriptRunner(String sqlPath) throws Exception {
    try {
      SqlSession sqlSession = sqlSessionFactory.openSession();
      Connection conn = sqlSession.getConnection();
      ScriptRunner runner = new ScriptRunner(conn);
      runner.setEscapeProcessing(false);
      runner.setSendFullScript(true);      
      runner.runScript(new InputStreamReader(new FileInputStream(sqlPath), "UTF-8"));
    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    }
  }


這種寫法:只能有一行SQL,即一次執行一個SQL語句,否則就會報錯。

方式三:使用ScriptUtils

代碼:RunSqlService:(以下兩種方式:腳本.Sql 和RunSqlService 在同一目錄下)

方法(1)

  /**
   * 執行sql腳本文件 使用Spring工具類
   */
  public void runSqlBySpringUtils() throws Exception {
    try {
      SqlSession sqlSession = sqlSessionFactory.openSession();
      Connection conn = sqlSession.getConnection();
      ClassPathResource rc = new ClassPathResource("腳本.Sql", RunSqlDao.class);
      ScriptUtils.executeSqlScript(conn, rc);
    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    }
  }

方法(2)

  /**
   * 執行sql腳本文件 使用Spring工具類
   */
  public void runSqlBySpringUtils() throws Exception {
    try {
      SqlSession sqlSession = sqlSessionFactory.openSession();
      Connection conn = sqlSession.getConnection();
      ClassPathResource rc = new ClassPathResource("腳本.Sql", RunSqlDao.class);
      EncodedResource er = new EncodedResource(rc, "utf-8");
      ScriptUtils.executeSqlScript(conn, er);
    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    }
  }

方法(1),腳本.Sql文件必須是ANSI的,否則執行到數據中漢字是亂碼。

方法(2)解決了方法(1)的問題,完美了,喜歡的小伙伴們快拿去享用吧。

關于使用Java如何將SQL腳本文件執行到數據庫中問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯行業資訊頻道了解更多相關知識。


文章名稱:使用Java如何將SQL腳本文件執行到數據庫中
URL網址:http://www.xueling.net.cn/article/gipijh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 色婷婷香蕉在线一区二区 | 国产精品伦理久久久久久 | 天天躁日日躁狠狠躁性色AV | 久久高清片 | 欧美乱大交aaaa片if | 亚洲精品一区二区四区 | 99久久精品国产一区 | av黄色成人 | 成人午夜看片网址 | 婷婷午夜剧场 | 免费无码一级成年片在线观看 | 亚洲国产欧美在线人成最新 | 国产精品久久免费看 | 97无码免费古代 | 亚洲欧美日韩成人综合一区 | 日韩成人无码中文字幕 | 欧美又粗又大色情hd堕落街传奇 | 绝世武魂短剧免费观看 | 91在线观看免费视频 | www.黄色免费网站 | 人妻系列综合第一页 | 久在线观看福利视频69 | 调教魔盒 | 最新免费av在线观看 | 日韩精品久久 | 蜜桃av鲁一鲁一鲁一鲁 | 国产精品去看片 | 林深见鹿在线观看 | 亚洲无吗一区 | 久久久亚洲欧洲日产AV | 亚洲国内自拍愉拍 | 色国产精品一区在线观看 | 亚洲成A人片在线观看无码 luxu在线 | 人妻少妇无码精品视频区 | 日韩a一区二区 | 日本不卡在线观看视频 | 欧美激情一区二区三区在线 | 国产成年无码a影片在线观看 | caoprom最新国产免费地址 | 久久精品国波多野结衣 | 亚洲av日韩av高潮无码专区 |