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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                `JpaUtils.java`代碼 ~~~ package net.youworker.utils; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * 解決實體管理器工廠的浪費資源和耗時問題 * 通過靜態代碼塊的形式,當程序第一次訪問此工具類時, * 創建一個公共的實體管理器工廠對象 * * 第一次訪問getEntityManager()方法: 經過靜態代碼塊創建一個factory對象,再調用方法創建一個EntityManager對象 * 第二次訪問getEntityManager()方法: 直接通過一個已經創建好的factory對象,創建EntityManager對象 * * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com * @date: 2020-01-06 11:49 */ public class JpaUtils { private static EntityManagerFactory factory; static { //1.加載配置文件,創建entityManagerFactory factory = Persistence.createEntityManagerFactory("myJPA"); } /** * 獲取EntityManager對象 */ public static EntityManager getEntityManager() { return factory.createEntityManager(); } } ~~~ ***** 測試代碼 ` JpaTest.java` ~~~ package net.youworker; import net.youworker.domain.Customer; import net.youworker.utils.JpaUtils; import org.junit.Test; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; /** * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com * @date: 2020-01-06 1:13 */ public class JpaTest { /** * 測試jpa的保存 * 案例:保存一個客戶到數據庫中 * jpa的操作步驟: * 1.加載配置文件創建工工廠(實體管理類工廠)對象 * 2.通過實體管理類工廠獲取實體管理器 * 3.獲取事務對象,開啟事務 * 4.完成增刪改查操作 * 5.提交事務或回滾事務 * 6.釋放資源 */ @Test public void testSave() { //// 1.加載配置文件創建工工廠(實體管理類工廠)對象 // EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJPA"); //// 2.通過實體管理類工廠獲取實體管理器 // EntityManager entityManager = factory.createEntityManager(); EntityManager entityManager = JpaUtils.getEntityManager(); // 3.獲取事務對象,開啟事務 EntityTransaction transaction = entityManager.getTransaction(); //開啟事務 transaction.begin(); // 4.完成增刪改查操作: 保存一個客戶到數據庫中 Customer customer = new Customer(); customer.setCustName("有蝸殼1"); customer.setCustIndustry("教育2"); customer.setCustAddress("南寧"); customer.setCustLevel("dsds"); customer.setCustSource("sdswe"); customer.setCustPhone("18777162107"); //保存 entityManager.persist(customer); //保存操作 // 5.提交事務或回滾事務 transaction.commit(); // 6.釋放資源 entityManager.close(); // factory.close(); } /** * 根據id查詢客戶 * 使用find方法查詢 * 1.查詢的對象就是當前對象本身 * 2.在調用find方法的時候,就會發送sql語句查詢 * * 立即加載 */ @Test public void testFind(){ //1.通過工具類獲取entityManager EntityManager entityManager = JpaUtils.getEntityManager(); //2.開啟事務 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //3.增刪改查 /** * find 根據id查詢數據 * class: 查詢數據的結果需要包裝的實體類類型的字節碼 * id: 查詢的主鍵的取值 */ Customer customer = entityManager.find(Customer.class,7L); //4.提交事務 transaction.commit(); //5釋放資源 entityManager.close(); System.out.println(customer); } /** * 根據id查詢客戶 * * getReference方法 * 1.獲取的對象是一個動態代理對象 * 2.調用getReference方法不會立即發送sql語句查詢數據庫 * 當調用查詢對象的時候,才會發送查詢的sql語句:什么時候用, * 什么時候發送sql語句查詢數據庫 * * 延遲加載(懶加載) * 得到的是一個動態代理對象 * 什么時候用,什么時候才會執行sql */ @Test public void testReference(){ //1.通過工具類獲取entityManager EntityManager entityManager = JpaUtils.getEntityManager(); //2.開啟事務 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //3.增刪改查 /** * getReference 根據id查詢數據 * class: 查詢數據的結果需要包裝的實體類類型的字節碼 * id: 查詢的主鍵的取值 */ Customer customer = entityManager.getReference(Customer.class,7L); System.out.println(customer); //4.提交事務 transaction.commit(); //5釋放資源 entityManager.close(); } /** * 根據主鍵刪除 */ @Test public void testRemove(){ //1.通過工具類獲取entityManager EntityManager entityManager = JpaUtils.getEntityManager(); //2.開啟事務 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //3.增刪改查 /** * getReference 根據id查詢數據 * class: 查詢數據的結果需要包裝的實體類類型的字節碼 * id: 查詢的主鍵的取值 */ Customer customer = entityManager.getReference(Customer.class,7L); entityManager.remove(customer); //4.提交事務 transaction.commit(); //5釋放資源 entityManager.close(); } /** * 根據主鍵更新 */ @Test public void merge(){ //1.通過工具類獲取entityManager EntityManager entityManager = JpaUtils.getEntityManager(); //2.開啟事務 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //3.增刪改查 /** * getReference 根據id查詢數據 * class: 查詢數據的結果需要包裝的實體類類型的字節碼 * id: 查詢的主鍵的取值 */ Customer customer = entityManager.getReference(Customer.class,6L); customer.setCustIndustry("本科"); customer.setCustName("錢六"); entityManager.merge(customer); //4.提交事務 transaction.commit(); //5釋放資源 entityManager.close(); } } ~~~
                  <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>

                              哎呀哎呀视频在线观看