<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                相信有了前面的基礎,對接C層就相對簡單了吧。 編碼前先畫圖,圖畫明白了,編碼也就自然明白了。時序圖如下: ![](https://box.kancloud.cn/c341554f86559602175467638c2895ec_797x513.png) ## 代碼 ``` package teacher; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import com.sun.xml.internal.txw2.TXW; public class Save { private String username; private String password; private String sex; private String name; private String email; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } // 該execute方法將被自動調用, 方法的返回類型必須為String public String execute() { // 實例化并加載數據庫配置文件 Configuration configuration = new Configuration().configure(); // 構造服務注冊對象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); // 創建會話工廠(session factory)) SessionFactory sessionFactory = configuration .buildSessionFactory(serviceRegistry); // 創建會話(這里的session也是會話的意思,我們以前接觸的http中的session,處理的是用戶與服務器的對話) Session session = sessionFactory.getCurrentSession(); // 開啟事務(使用緩沖池進行數據庫的連接) Transaction transaction = session.beginTransaction(); // 在這里,必須使用try catch finally語句。來確定會話正常關閉. // 否則,當操作數據庫產生錯誤時,你可能需要重啟mysql服務 try { // 初例化 賦值 entity.Teacher teacher = new entity.Teacher(); teacher.setName(name); teacher.setUsername(username); teacher.setEmail(email); teacher.setPassword(password); session.save(teacher); // 提交事務 transaction.commit(); // 捕獲異常 } catch (HibernateException e) { } finally { // 如果session處于開啟狀態,則關閉session if (session.isOpen()) { // 關閉會話 session.close(); } } return "success"; // 返回字符串success } } ``` # 測試 對C層的測試,我們放在瀏覽器上進行。進行表單的填寫后,點擊提交。然后查看數據庫中是否生成的新的記錄。 在前期的實體開發中,我們還可以將hibernate中的hbm2ddl.auto一項,配置為create,這樣每次數據表都會被重新建立,這會使得測試更加簡單一些。 ![](https://box.kancloud.cn/dcd0e391a1809a8697ed938e35d8b766_549x222.gif) # 解決BUG 細心的你一定發現了,我們并沒有設置sex的值,這是由于,我們在實體Teacher中,將字段sex的類型設置為布爾型,而在C層中,sex的類型卻是String,下面,我們進行一個簡單的處理,來解決這個小的問題。 ``` teacher.setPassword(password); // 由于sex的類型是String對象,所以需要使用equals()來判等 if (sex.equals("0")) { teacher.setSex(false); } else { teacher.setSex(true); } session.save(teacher); ``` 在這里,我們并沒有使用 == 來進行判斷。這是由于String并不是java的基本類型,而只有基本類型,才能夠使用== 來進行判等 JAVA的基本類型為: byte:8位,最大存儲數據量是255,存放的數據范圍是-128~127之間。 short:16位,最大數據存儲量是65536,數據范圍是-32768~32767之間。 int:32位,最大數據存儲容量是2的32次方減1,數據范圍是負的2的31次方到正的2的31次方減1。 long:64位,最大數據存儲容量是2的64次方減1,數據范圍為負的2的63次方到正的2的63次方減1。 float:32位,數據范圍在3.4e-45~1.4e38,直接賦值時必須在數字后加上f或F。 double:64位,數據范圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。 boolean:只有true和false兩個取值。 char:16位,存儲Unicode碼,用單引號賦值。 加入了對sex的賦值后,再測試,發現性別的數據已經被成功寫入到數據表中。
                  <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>

                              哎呀哎呀视频在线观看