hibernate配置
?
<hibernate-configuration> <!--?用來(lái)描述數(shù)據(jù)庫(kù)的鏈接?--> <session-factory> <!--?驅(qū)動(dòng)?--> <property?name="connection.driver_class"> com.mysql.jdbc.Driver </property> <!--?url?--> <property?name="connection.url"> jdbc:mysql://localhost:3306/hibernate0909 </property> <!--?username?--> <property?name="connection.username">root</property> <!--?password?--> <property?name="connection.password">123456</property> <!--? hibernate針對(duì)建表的操作 update:如果有表,檢查表的結(jié)構(gòu),如果沒(méi)有則創(chuàng)建 create人-drop?啟動(dòng)hibernate創(chuàng)建表,結(jié)束hibernate刪除表 create??每次啟動(dòng)都重新創(chuàng)建表 validate?每次啟動(dòng)都檢查表的結(jié)構(gòu) --> <property?name="hbm2ddl.auto">update</property> <!--?在控制臺(tái)顯示sql語(yǔ)句?--> <property?name="show_sql">true</property> <mapping?resource="cn/itcast/hibernate0909/idgenerator/increment/Person.hbm.xml"?/> </session-factory> </hibernate-configuration>?
?
設(shè)置主鍵:
<class?name="cn.itcast.hibernate0909.idgenerator.identity.Person"?table="person"> <id?name="pid"?type="java.lang.Long"?length="5"> <column?name="pid"></column> <!--? 主�產(chǎn)生器--> <generator?class="identity"></generator> </id> <property?name="pname"?type="java.lang.String"?length="20"></property> <property?name="psex"?type="java.lang.String"?length="5"></property> </class>主鍵產(chǎn)生器 class="increment" (主鍵類(lèi)型為java.lang.Long ?length="5")
?Hibernate: select max(pid) from person
Hibernate: insert into person (pname, psex, pid) values (?, ?, ?)
??increment
????hibernate 內(nèi)部回去查詢?cè)摫碇械闹麈I的最大值
主鍵產(chǎn)生器 class="identity"(主鍵類(lèi)型為java.lang.Long ?length="5"),這時(shí)需要手動(dòng)設(shè)置數(shù)據(jù)庫(kù)的id為自增長(zhǎng)
Hibernate: insert into person (pname, psex) values (?, ?)
? 因?yàn)闆](méi)有發(fā)出select max語(yǔ)句,所以identity得效率比increment要高
? 缺點(diǎn):主鍵不連貫
主鍵產(chǎn)生器 class="assigned"(主鍵類(lèi)型為java.lang.Long ?length="5")
????????????????在映射文件中,該對(duì)象的主鍵生成機(jī)制是assigned,在程序中需要賦值
主鍵產(chǎn)生器 class="uuid"(主鍵類(lèi)型為java.lang.String)javabean中設(shè)置id為String
?
?
主鍵的生成機(jī)制
????*increment
????????效率比較低的,但是主鍵的值是連續(xù)的
????*indentity
????????根據(jù)底層的數(shù)據(jù)庫(kù)的自增生成,效率比較高,但是主鍵的值不連續(xù)
????*assigned
????????手動(dòng)賦值
????*uuid
????????
????*sequence(oracle)
?
總結(jié)
以上是生活随笔為你收集整理的hibernate配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: javax.naming.NameNot
- 下一篇: SessionFactory 概述