Hibernate基础映射
在说Hibernate映射前,我们先来了解下对象关系映射 ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图 vcHLudjPtcr9vt26zbbUz/PK/b7d1q685LXE07PJ5KOs
在说Hibernate映射前,我们先来了解下对象关系映射 ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对这些对象的操作。我们来看一张图
vcHLudjPtcr9vt26zbbUz/PK/b7d1q685LXE07PJ5KOsv8nS1M2ouf3Ts8nkudjPtdfUtq+y+sn6U1FM0+++5KOs1NrStc7xwt+8rbLjus3K/b7dsuPWrrzks+S1scfFwbqhozwvcD4KPGgyPkhpYmVybmF0ZdOzyeQ8L2gyPgo8cD4gPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141110/20141110091545138.jpg" alt="\">
Hibernate文件
- 映射类(*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。
- 映射文件(*.hbm.xml):它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。
- 数据库配置文件(*.properties/*.cfg.xml):它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。
基本映射:
具体看操作
1映射实体类
//默认空构造函数的重要性 public class User { public User() { // TODO Auto-generated constructor stub } public User(String id,String name){ this.id=id; this.name=name; } private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getExprieTime() { return exprieTime; } public void setExprieTime(Date exprieTime) { this.exprieTime = exprieTime; } private String name; private String password; private Date createTime; private Date exprieTime; }
Salin selepas log masuk
实体类的设计原则:
* 实现无参的默认的构造函数
* 提供一个标识
*建议不要使用final修饰实体类(因为采用load延时加载数据的时候会继承实体类生成代理对象)
*建议为实体类生成getter和setter方法(如果不使用,需要用属性field标识)
2映射文件User.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!--1、class和table的映射,name属性是实体名,table属性是表名(table可省略,则name即是映射的表名)--> <class name="com.bjpowernode.hibernate.User"> <!-2、主键映射,name属性是实体类的标识符属性,对应table的主键,即用column表示(column同样可省略)--> <id name="id" access="field"> <!--主键生成器,class属性表示生成策略,根据不同的需求选择--> <generator class="uuid"/> </id> <!--3、其他属性的映射 property--> <property name="name" length="40" unique="true" /> <property name="password"/> <property name="createTime"/> <property name="exprieTime"/> <filter name="testFiltere" condition="id < :myid"></filter> </class> </hibernate-mapping>
Salin selepas log masuk3hibernate.cfg.xml配置文件
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernast_test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">hanhan</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!--打印sql--> <property name="hibernate.show_sql">true</property> <!--在没有表的时候,创建sessionfactroy 时,就会去创建表(update的方式,不删除原有数据)--> <property name="hibernate.hbm2ddl.auto">update</property> <mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/> </session-factory> </hibernate-configuration>
Salin selepas log masukHibernate的主键生成策略种类
手动:Assigned
Hibernate主动:uuid
数据库交互:
需要和数据库交互以生成id的:guid、identity、sequence、native、foreign
说明:需要和数据库交互生成,需要经过一次查询才能生成
Guid,identity:MySQL,SQLserver的生成方式
sequence:Oracle,db2的生成方式,自增序列
native:identity+sequence,跨平台
foreign:只适用基于共享主键的一对一关联映射的时候使用。即一个对象的主键是参照的另一张表的主键生成的。
总结:
Hibernate的基本映射:重点是对主键生成策略的认识,根据不同数据库选择不同的方式,重要理解。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP ialah bahasa skrip sebelah pelayan sumber terbuka yang digunakan secara meluas yang boleh mengendalikan semua tugas dalam pembangunan web. PHP digunakan secara meluas dalam pembangunan web, terutamanya untuk prestasi cemerlangnya dalam pemprosesan data dinamik, jadi ia disukai dan digunakan oleh ramai pembangun. Dalam artikel ini, kami akan menerangkan asas PHP langkah demi langkah untuk membantu pemula daripada mula menjadi mahir. 1. Sintaks asas PHP ialah bahasa yang ditafsirkan yang kodnya serupa dengan HTML, CSS dan JavaScript. Setiap penyata PHP berakhir dengan koma bertitik;

Mengintegrasikan Hibernate dalam SpringBoot Project Preface Hibernate ialah rangka kerja ORM (Object Relational Mapping) yang popular yang boleh memetakan objek Java ke jadual pangkalan data untuk memudahkan operasi kegigihan. Dalam projek SpringBoot, menyepadukan Hibernate boleh membantu kami melaksanakan operasi pangkalan data dengan lebih mudah Artikel ini akan memperkenalkan cara untuk menyepadukan Hibernate dalam projek SpringBoot dan memberikan contoh yang sepadan. 1.Perkenalkan dependenciesPerkenalkan dependencies berikut dalam fail pom.xml: org.springframework.bootspring-boot-starter-data-jpam

Apa itu JPA? Bagaimanakah ia berbeza daripada JDBC? JPA (JavaPersistence API) ialah antara muka standard untuk pemetaan hubungan objek (ORM), yang membenarkan pembangun Java menggunakan objek Java biasa untuk mengendalikan pangkalan data tanpa menulis pertanyaan SQL secara langsung terhadap pangkalan data. JDBC (JavaDatabaseConnectivity) ialah API standard Java untuk menyambung ke pangkalan data Ia memerlukan pembangun menggunakan pernyataan SQL untuk mengendalikan pangkalan data. JPA merangkum JDBC, menyediakan API yang lebih mudah dan tahap lebih tinggi untuk pemetaan hubungan objek, dan memudahkan operasi capaian data. Dalam JPA, apakah entiti? entiti

Java ialah bahasa pengaturcaraan berorientasikan objek yang digunakan secara meluas dalam bidang pembangunan perisian. Hibernate ialah rangka kerja kegigihan Java yang popular yang menyediakan cara yang mudah dan cekap untuk mengurus kegigihan objek Java. Walau bagaimanapun, ralat Hibernate sering ditemui semasa proses pembangunan, dan ralat ini boleh menyebabkan atur cara ditamatkan secara tidak normal atau menjadi tidak stabil. Cara mengendalikan dan mengelakkan ralat Hibernate telah menjadi kemahiran yang mesti dikuasai oleh pembangun Java. Artikel ini akan memperkenalkan beberapa Hib biasa

Perbezaan antara hibernate dan mybatis: 1. Kaedah pelaksanaan 2. Prestasi 3. Perbandingan pengurusan objek; Pengenalan terperinci: 1. Kaedah pelaksanaan, Hibernate ialah penyelesaian pemetaan objek/hubungan yang lengkap yang memetakan objek ke jadual pangkalan data, manakala MyBatis memerlukan pembangun menulis pernyataan SQL dan ResultMap secara manual 2. Prestasi, Hibernate adalah mungkin dari segi kelajuan pembangunan Lebih cepat daripada MyBatis kerana Hibernate memudahkan lapisan DAO dan sebagainya.

Hibernate satu-ke-banyak dan banyak-ke-banyak Hibernate ialah rangka kerja ORM yang sangat baik yang memudahkan akses data antara aplikasi Java dan pangkalan data hubungan. Dalam Hibernate, kita boleh menggunakan perhubungan satu-ke-banyak dan banyak-ke-banyak untuk mengendalikan model data yang kompleks. Satu-ke-banyak Hibernate Dalam Hibernate, hubungan satu-dengan-banyak bermakna satu kelas entiti sepadan dengan berbilang kelas entiti lain. Sebagai contoh, pesanan boleh sepadan dengan berbilang item pesanan (OrderItem), dan pengguna (Pengguna) boleh sepadan dengan berbilang pesanan (Pesanan). Untuk melaksanakan perhubungan satu-ke-banyak dalam Hibernate, anda perlu menentukan atribut koleksi dalam kelas entiti untuk disimpan

Dalam artikel ini, kita akan melihat cara melakukan sisipan/kemas kini pukal dalam Hibernate. Setiap kali kami melaksanakan pernyataan sql, kami melakukannya dengan membuat panggilan rangkaian ke pangkalan data. Sekarang, jika kita perlu memasukkan 10 entri ke dalam jadual pangkalan data, maka kita perlu membuat 10 panggilan rangkaian. Sebaliknya, kami boleh mengoptimumkan panggilan rangkaian dengan menggunakan pemprosesan kelompok. Pemprosesan kelompok membolehkan kami melaksanakan satu set pernyataan SQL dalam satu panggilan rangkaian. Untuk memahami dan melaksanakan perkara ini, mari kita tentukan entiti kita − @EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)

Timbunan teknologi rangka kerja Java: Memperkenalkan rangka kerja Java yang biasa digunakan, seperti SpringMVC, Hibernate, MyBatis, dll. Dengan pembangunan Java yang berterusan, semakin banyak rangka kerja telah dibangunkan untuk memudahkan proses pembangunan. Antaranya, SpringMVC, Hibernate, MyBatis, dsb. ialah salah satu rangka kerja yang paling biasa digunakan dalam pembangunan Java. Artikel ini akan memperkenalkan konsep asas dan penggunaan rangka kerja ini untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. Mula-mula, mari perkenalkan Sp
