<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # MyBatis 概述 ## 什么是 MyBatis ? MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。 這里相信大家都使用過原生JDBC來操作過數據庫, 你的代碼可能是下面這個樣子的: ``` Goddess g = null; Connection con = DBUtil.getConnection();//首先拿到數據庫的連接 String sql = "" + "select * from imooc_goddess "+ "where id=?";//參數用?表示,相當于占位符;用mysql的日期函數current_date()來獲取當前日期 //預編譯sql語句 PreparedStatement psmt = con.prepareStatement(sql); //先對應SQL語句,給SQL語句傳遞參數 psmt.setInt(1, id); //執行SQL語句 /*psmt.execute();*///execute()方法是執行更改數據庫操作(包括新增、修改、刪除);executeQuery()是執行查詢操作 ResultSet rs = psmt.executeQuery();//返回一個結果集 //遍歷結果集 while(rs.next()) { g = new Goddess(); g.setId(rs.getInt("id")); g.setUserName(rs.getString("user_name")); g.setAge(rs.getInt("age")); g.setSex(rs.getInt("sex")); //rs.getDate("birthday")獲得的是java.sql.Date類型。注意:java.sql.Date類型是java.util.Date類型的子集,所以這里不需要進行轉換了。 g.setBirthday(rs.getDate("birthday")); g.setEmail(rs.getString("email")); g.setMobile(rs.getString("mobile")); g.setCreateUser(rs.getString("create_user")); g.setCreateDate(rs.getDate("create_date")); g.setUpdateUser(rs.getString("update_user")); g.setUpdateDate(rs.getDate("update_date")); g.setIsDel(rs.getInt("isdel")); } ``` 這一部分代碼就是用來根據 ```imooc_goddess``` 表的```id```進行查詢, 然后遍歷結果集, 手動封裝成 ```Goddess``` 對象. 如果我們這樣做, 那么就需要做大量的費時費力的操作, 所以MyBatis來幫我們解決了 JDBC 代碼和手動設置參數以及獲取結果集的問題. > 上面部分代碼摘抄自 [這篇文章](https://www.cnblogs.com/Qian123/p/5339164.html#_label4) ## XML 映射文件 在這一章的最前面我們說過 > MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄. 我們已經知道了 MyBatis 框架可以將結果集自動封裝成對象, 那么 MyBatis 是怎么知道, 表中的字段是和類中的哪個屬性對應的呢? 它們的對應關系就是依靠 ```XML 映射文件```. 當然在 MyBatis 中 ```XML 映射文件``` 不只是做字段和屬性的映射, 還有做接口中方法的映射, 當你調用方法后會執行你所編寫的SQL語句. > 注意: ```XML 映射文件``` 也被稱為元數據. ## ORM 映射 說道字段和屬性的映射就不得不說一說 ```ORM 映射```, 當然你可能在看這篇筆記之前已經在網上了解過 MyBatis, 你也可能看到過類似的文章說: MyBatis 是基于ORM 映射的框架, 有的說它不是. 那么不管它是不是基于ORM 映射的框架, 我們也應該對ORM有所了解. ORM: (Object/Relation Mapping): 對象/關系映射, 是一種設計模式. 幾乎所有的程序里面, 都存在對象和關系數據庫. 它們的對應關系如下: | 類 | 表 | | --- | --- | | 對象 | 表中的一條記錄 | | 屬性 | 表中的字段 | 比如Hibernate, 它就是實現了ORM的框架, Hibernate完全可以通過對象關系模型實現對數據庫的操作, 擁有完整的JavaBean對象與數據庫的映射結構來自動生成sql. 而MyBatis僅有基本的字段映射, 對象數據以及對象實際關系仍然需要通過手寫sql來實現和管理. 所以有的人也說Hibernate是全自動, 而MyBatis是半自動.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看