日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springdata学习笔记-01-helloworld-(暂时不全223)

發布時間:2024/7/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springdata学习笔记-01-helloworld-(暂时不全223) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一天

orm思想和hibernate以及jpa的概述和jpd的基本操作

傳統jdbc操作

  • 獲取鏈接
  • 創建statement對象
  • 可以對占位符賦值
  • 發送查詢
    • 操作繁瑣
    • 占位符賦值麻煩
  • orm思想

    • 主要目的:操作實體類就相當于操作數據庫表
    • 建立兩個映射關系
      • 實體類和表的映射關系
      • 實體類中屬性和表中字段的映射關系
    • 不再重點關注sql語句
    • 實現了ORM思想的框架mybatis,htibernate
  • hibernate框架介紹

    • hibernate是一個開源的對象關系映射框架
    • 它對jdbc進行了非常輕量級的對象封裝
    • 它將pojo與數據庫表建立映射關系,是一個全自動的orm框架
  • jpa規范

    • jpa規范,實現jpa規范,內部是由接口和抽象類組成
  • jpa的基本操作

  • 搭建環境的過程

    • 創建maven工程導入坐標

    • 需要配置jpa的核心配置文件

      • 配置到類路徑下的一個叫做META-INF的文件夾下

      • 命名:persistence.xml

        <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"><!--需要配置persistence-unit節點持久化單元:name:持久化單元名稱transaction-type:事務管理的方式JTA:分布式事務管理RESOURCE_LOCAL:本地事務管理--><persistence-unit name="myJpa" transaction-type="RESOURCE_LOCAL"><!--jpa的實現方式 --><provider>org.hibernate.jpa.HibernatePersistenceProvider</provider><!--可選配置:配置jpa實現方的配置信息--><properties><!-- 數據庫信息用戶名,javax.persistence.jdbc.user密碼, javax.persistence.jdbc.password驅動, javax.persistence.jdbc.driver數據庫地址 javax.persistence.jdbc.url--><property name="javax.persistence.jdbc.user" value="root"/><property name="javax.persistence.jdbc.password" value="123456"/><property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/><property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa"/><!--配置jpa實現方(hibernate)的配置信息顯示sql : false|true自動創建數據庫表 : hibernate.hbm2ddl.autocreate : 程序運行時創建數據庫表(如果有表,先刪除表再創建)update :程序運行時創建表(如果有表,不會創建表)none :不會創建表--><property name="hibernate.show_sql" value="true" /><property name="hibernate.hbm2ddl.auto" value="update" /></properties></persistence-unit> </persistence>
    • 編寫客戶的實體類

      package cn.itcast.domain;import javax.persistence.*;/*** 客戶的實體類* 配置映射關系*** 1.實體類和表的映射關系* @Entity:聲明實體類* @Table : 配置實體類和表的映射關系* name : 配置數據庫表的名稱* 2.實體類中屬性和表中字段的映射關系***/ @Entity @Table(name = "cst_customer") public class Customer {/*** @Id:聲明主鍵的配置* @GeneratedValue:配置主鍵的生成策略* strategy* GenerationType.IDENTITY :自增,mysql* * 底層數據庫必須支持自動增長(底層數據庫支持的自動增長方式,對id自增)* GenerationType.SEQUENCE : 序列,oracle* * 底層數據庫必須支持序列* GenerationType.TABLE : jpa提供的一種機制,通過一張數據庫表的形式幫助我們完成主鍵自增* GenerationType.AUTO : 由程序自動的幫助我們選擇主鍵生成策略* @Column:配置屬性和字段的映射關系* name:數據庫表中字段的名稱*/@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "cust_id")private Long custId; //客戶的主鍵@Column(name = "cust_name")private String custName;//客戶名稱@Column(name="cust_source")private String custSource;//客戶來源@Column(name="cust_level")private String custLevel;//客戶級別@Column(name="cust_industry")private String custIndustry;//客戶所屬行業@Column(name="cust_phone")private String custPhone;//客戶的聯系方式@Column(name="cust_address")private String custAddress;//客戶地址public Long getCustId() {return custId;}public void setCustId(Long custId) {this.custId = custId;}public String getCustName() {return custName;}public void setCustName(String custName) {this.custName = custName;}public String getCustSource() {return custSource;}public void setCustSource(String custSource) {this.custSource = custSource;}public String getCustLevel() {return custLevel;}public void setCustLevel(String custLevel) {this.custLevel = custLevel;}public String getCustIndustry() {return custIndustry;}public void setCustIndustry(String custIndustry) {this.custIndustry = custIndustry;}public String getCustPhone() {return custPhone;}public void setCustPhone(String custPhone) {this.custPhone = custPhone;}public String getCustAddress() {return custAddress;}public void setCustAddress(String custAddress) {this.custAddress = custAddress;}@Overridepublic String toString() {return "Customer{" +"custId=" + custId +", custName='" + custName + '\'' +", custSource='" + custSource + '\'' +", custLevel='" + custLevel + '\'' +", custIndustry='" + custIndustry + '\'' +", custPhone='" + custPhone + '\'' +", custAddress='" + custAddress + '\'' +'}';} }
    • 配置實體類和表,類中屬性和表中字段的映射關系

    • 保存客戶到數據庫中

  • 完成基本的增刪改查操作

    • 單元測試

      package cn.itcast.test;import cn.itcast.domain.Customer; import cn.itcast.utils.JpaUtils; import org.junit.Test;import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence;public class JpaTest {/*** 測試jpa的保存* 案例:保存一個客戶到數據庫中* Jpa的操作步驟* 1.加載配置文件創建工廠(實體管理器工廠)對象* 2.通過實體管理器工廠獲取實體管理器* 3.獲取事務對象,開啟事務* 4.完成增刪改查操作* 5.提交事務(回滾事務)* 6.釋放資源*/@Testpublic void testSave() { // //1.加載配置文件創建工廠(實體管理器工廠)對象 // EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJpa"); // //2.通過實體管理器工廠獲取實體管理器 // EntityManager em = factory.createEntityManager();EntityManager em = JpaUtils.getEntityManager();//3.獲取事務對象,開啟事務EntityTransaction tx = em.getTransaction(); //獲取事務對象tx.begin();//開啟事務//4.完成增刪改查操作:保存一個客戶到數據庫中Customer customer = new Customer();customer.setCustName("傳智播客");customer.setCustIndustry("教育");//保存,em.persist(customer); //保存操作//5.提交事務tx.commit();//6.釋放資源em.close();// factory.close();}/*** 根據id查詢客戶* 使用find方法查詢:* 1.查詢的對象就是當前客戶對象本身* 2.在調用find方法的時候,就會發送sql語句查詢數據庫** 立即加載***/@Testpublic void testFind() {//1.通過工具類獲取entityManagerEntityManager entityManager = JpaUtils.getEntityManager();//2.開啟事務EntityTransaction tx = entityManager.getTransaction();tx.begin();//3.增刪改查 -- 根據id查詢客戶/*** find : 根據id查詢數據* class:查詢數據的結果需要包裝的實體類類型的字節碼* id:查詢的主鍵的取值*/Customer customer = entityManager.find(Customer.class, 1l);// System.out.print(customer);//4.提交事務tx.commit();//5.釋放資源entityManager.close();}/*** 根據id查詢客戶* getReference方法* 1.獲取的對象是一個動態代理對象* 2.調用getReference方法不會立即發送sql語句查詢數據庫* * 當調用查詢結果對象的時候,才會發送查詢的sql語句:什么時候用,什么時候發送sql語句查詢數據庫** 延遲加載(懶加載)* * 得到的是一個動態代理對象* * 什么時候用,什么使用才會查詢*/@Testpublic void testReference() {//1.通過工具類獲取entityManagerEntityManager entityManager = JpaUtils.getEntityManager();//2.開啟事務EntityTransaction tx = entityManager.getTransaction();tx.begin();//3.增刪改查 -- 根據id查詢客戶/*** getReference : 根據id查詢數據* class:查詢數據的結果需要包裝的實體類類型的字節碼* id:查詢的主鍵的取值*/Customer customer = entityManager.getReference(Customer.class, 1l);System.out.print(customer);//4.提交事務tx.commit();//5.釋放資源entityManager.close();}/*** 刪除客戶的案例**/@Testpublic void testRemove() {//1.通過工具類獲取entityManagerEntityManager entityManager = JpaUtils.getEntityManager();//2.開啟事務EntityTransaction tx = entityManager.getTransaction();tx.begin();//3.增刪改查 -- 刪除客戶//i 根據id查詢客戶Customer customer = entityManager.find(Customer.class,1l);//ii 調用remove方法完成刪除操作entityManager.remove(customer);//4.提交事務tx.commit();//5.釋放資源entityManager.close();}/*** 更新客戶的操作* merge(Object)*/@Testpublic void testUpdate() {//1.通過工具類獲取entityManagerEntityManager entityManager = JpaUtils.getEntityManager();//2.開啟事務EntityTransaction tx = entityManager.getTransaction();tx.begin();//3.增刪改查 -- 更新操作//i 查詢客戶Customer customer = entityManager.find(Customer.class,1l);//ii 更新客戶customer.setCustIndustry("it教育");entityManager.merge(customer);//4.提交事務tx.commit();//5.釋放資源entityManager.close();}}
  • 總結

    以上是生活随笔為你收集整理的springdata学习笔记-01-helloworld-(暂时不全223)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 男人撒尿视频xvideos | 亚洲视频一区二区在线观看 | av福利网站 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 男人透女人免费视频 | 久久国产美女 | 国产精品久久在线 | www.com操| 国产精品主播一区二区 | 久久精品国产亚洲av高清色欲 | 一区二区国产精品 | 激情伊人 | 黑人巨大av | 九九爱国产 | 国产黄色片在线免费观看 | 免费h片网站 | 欧美狠狠操| 中文字幕有码在线观看 | 欧美日韩综合视频 | 日本网站在线播放 | av手机观看| 欧美裸体xxxx极品少妇 | 性高潮久久久久久久 | 精品成人免费一区二区在线播放 | 久久极品视频 | 久久久久国产精 | 制服丝袜亚洲色图 | 久久久久久久久久影视 | 亚洲成人av电影 | 成人高清免费 | 成人国产精品免费观看 | 成人免费看片98 | 欧美三级 欧美一级 | 人妻在线一区二区 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 伊人伊网 | 91久久综合精品国产丝袜蜜芽 | 欧美xxxxx牲另类人与 | 国产性―交―乱―色―情人 | 亚洲中文字幕无码一区 | 国产69久久| 日韩精品中文字幕一区二区三区 | 韩国一级一片高清免费观看 | 国产精品一区电影 | 日本不卡在线播放 | 久月婷婷 | 日韩亚洲区 | 91黄色视屏| 欧美女优一区 | 九色视频网站 | 伊人网在线视频 | 999国产精品视频免费 | 五月天av在线 | jiizzyou性欧美老片 | 亚洲综合精品国产一区二区三区 | 国产区一区二 | 亚洲视频在线播放 | av毛片网站| 欧美一区二区三区四 | 六月丁香综合网 | 国产日韩欧美精品在线观看 | 国产精品久久久久久网站 | 国产乱码精品1区2区3区 | 国产区第一页 | 一级黄色免费网站 | 中文字幕亚洲精品 | 最新日韩在线 | 免费看女生隐私 | 性感少妇在线观看 | 极品国产91在线网站 | 亚洲人成无码www久久久 | 性v天堂| 国产中年熟女高潮大集合 | 无码精品国产一区二区三区 | 夜夜精品一区二区无码 | 日韩av在线免费看 | 亚洲精品一二区 | 日本一级片在线观看 | 永久免费av无码网站性色av | 找个毛片看看 | 午夜男人的天堂 | 香蕉视频18| 在线超碰av | 亚洲成人免费在线视频 | 欧美群妇大交群 | 巨乳在线播放 | 国产经典av | 久草一区| 亚洲一区中文字幕永久在线 | 少妇系列av | 久久午夜神器 | 午夜a区 | 激情欧美一区二区三区精品 | 亚洲资源在线观看 | a√在线 | 亚洲精品高清在线 | 无码视频一区二区三区 | 重口变态虐黄网站 | 第一章婶婶的性事 |