日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hibernate注解开发-PO类注解配置

發布時間:2025/1/21 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate注解开发-PO类注解配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在hibernate中我們使用注解,可以幫助我們簡化hbm文件配置。

hibernate.cfg.xml配置

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 配置關于數據庫連接的四個項 driverClass url username password --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">abc</property><!-- 設置連接提供者 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- c3p0連接池的配置 --><property name="hibernate.c3p0.max_size">20</property> <!-- 最大連接池 --><property name="hibernate.c3p0.min_size">5</property> <!-- 最小連接數 --><property name="hibernate.c3p0.timeout">120</property> <!-- 超時 --><property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空閑連接 --><!-- 可以將向數據庫發送的sql顯示出來 --><property name="hibernate.show_sql">true</property><!-- 格式化sql --><property name="hibernate.format_sql">true</property><!-- hibernate的方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 自動創建表 --><property name="hibernate.hbm2ddl.auto">update</property><mapping class="cn.nwtxxb.domain.Book" /><mapping class="cn.nwtxxb.domain.Person" /><mapping class="cn.nwtxxb.oneToMany.Customer" /><mapping class="cn.nwtxxb.oneToMany.Order" /><mapping class="cn.nwtxxb.manyToMany.Teacher" /><mapping class="cn.nwtxxb.manyToMany.Student" /><mapping class="cn.nwtxxb.oneToOne.User" /><mapping class="cn.nwtxxb.oneToOne.IDCard" /><mapping class="cn.nwtxxb.oneToOne.Husband" /><mapping class="cn.nwtxxb.oneToOne.Wife" /></session-factory></hibernate-configuration>

PO類注解配置

@Entity 聲明一個實體
@Table來描述類與表對應
1、 首先配置我們的類名與數據庫對應。

@Entity // 定義了一個實體 @Table(name = "t_book", catalog = "hibernateTest") public class Book {}

2、 聲明實體類的id:@GenerateValue如果不設置變量默認是native(自動選擇)

@Id // 主鍵 // @GeneratedValue //native @GeneratedValue(strategy = GenerationType.IDENTITY) // identity private Integer id; // 主鍵

3、 普通類型配置:nullable是否為空,如果不設置@Column默認匹配屬性類型,數據庫字段與屬性名稱相同。

@Column(name = "c_name", length = 30, nullable = true) private String name;

4、 日期類型配置:@Temporal有三種類型:
1)TemporalType.DATA 只有年月日
2)TemporalType.TIME 只有小時分鐘秒
3)TemporalType.TIMESTAMP 有年月日小時分鐘秒

@Temporal(TemporalType.TIMESTAMP) // 是用來定義日期類型 private Date publicationDate; // 出版日期

5、 配置完所有屬性需要在hibernate核心配置文件中引入實體類。

<mapping class="cn.nwtxxb.domain.Book" />

如何使用uuid主鍵生成策略。自己聲明一個uuid,然后在通過@GeneratedValue標簽引入即可。

@Id @GenericGenerator(name = "myuuid", strategy = "uuid") @GeneratedValue(generator = "myuuid") private String id;

普通屬性還可以用@Type聲明類型。

@Type(type="string") private String name;

如果類中的屬性不想在表中生成列,可以用@Transient

@Transient private String msg; // 這個屬性不想生成在表中

所有的配置都可以放到屬性的get方法上配置。

@Entity @Table(name = "t_person", catalog = "hibernateTest") public class Person {@Id@GenericGenerator(name = "myuuid", strategy = "uuid")@GeneratedValue(generator = "myuuid")private String id;@Type(type="string")private String name;@Transientprivate String msg; // 現在這個屬性不想生成在表中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 getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}

總結

以上是生活随笔為你收集整理的Hibernate注解开发-PO类注解配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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