《Java从入门到放弃》框架入门篇:hibernate基本用法
昨天我們進(jìn)行了hibernate的配置,并且進(jìn)行了根據(jù)ID查詢對(duì)應(yīng)數(shù)據(jù)的操作,今天我們來(lái)看看hibernate中的幾個(gè)配置文件,里面到底有什么東東。
一、hibernate.cfg.xml
<hibernate-configuration><session-factory><property?name="dialect">org.hibernate.dialect.MySQLDialect</property><property?name="connection.url">jdbc:mysql://127.0.0.1:3306/superktv</property><property?name="connection.username">root</property><property?name="connection.password">root</property><property?name="connection.driver_class">com.mysql.jdbc.Driver</property><property?name="myeclipse.connection.profile">mysql</property><mapping?resource="com/pxy/dao/Author.hbm.xml"?/></session-factory> </hibernate-configuration>這里面應(yīng)該沒(méi)有什么不好懂的吧,就注意一點(diǎn),<mapping>標(biāo)簽的路徑不要引用錯(cuò)了,每次引用完后,記得按住Ctrl鍵,再把鼠標(biāo)移動(dòng)到resource的值上去,如果雙引號(hào)里的內(nèi)容變成了超鏈接,那說(shuō)明沒(méi)問(wèn)題。當(dāng)然,如果你是通過(guò)DBBrowser生成的文件,那肯定不會(huì)引用錯(cuò)誤。
二、Author.hbm.xml
<hibernate-mapping><class?name="com.pxy.entity.Author"?table="author"?catalog="blogdb"><id?name="id"?type="java.lang.Integer"><column?name="id"?/><generator?class="native"?/></id><property?name="username"?type="java.lang.String"><column?name="username"?length="20"?not-null="true"?/></property><property?name="password"?type="java.lang.String"><column?name="password"?length="10"?not-null="true"?/></property><property?name="email"?type="java.lang.String"><column?name="email"?length="20"?/></property><property?name="address"?type="java.lang.String"><column?name="address"?length="20"?/></property><property?name="phone"?type="java.lang.String"><column?name="phone"?length="20"?/></property></class> </hibernate-mapping>class標(biāo)簽的name表示對(duì)應(yīng)的實(shí)體類,table表示對(duì)應(yīng)的數(shù)據(jù)表,catalog表示對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
id標(biāo)簽:表示主鍵。
generator標(biāo)簽:主鍵的生成策略。
property標(biāo)簽:表示實(shí)體類的屬性。
column標(biāo)簽:表示對(duì)應(yīng)表中的字段。
對(duì)于單個(gè)對(duì)象的操作,我們上次已經(jīng)用過(guò)了load方法,除此之外,常用的還有以下四個(gè):
get()方法,save()方法,update()方法,delete()方法
從名字就應(yīng)該可以猜出對(duì)應(yīng)的用法吧,這兒就不在一一演示了,各位看官自行解決吧·
最后簡(jiǎn)單說(shuō)一下load()和get()的區(qū)別:
load()方法是延時(shí)加載,調(diào)用時(shí)只返回一個(gè)代理對(duì)象(只包含ID),并且如果沒(méi)有該ID對(duì)應(yīng)的數(shù)據(jù)會(huì)拋ObjectNotFoundException異常。
get()方法是實(shí)時(shí)加載,調(diào)用后就返回ID對(duì)應(yīng)的記錄,如果數(shù)據(jù)不存在則返回null對(duì)象。
為了測(cè)試一下效果,我們?cè)趆ibernate的配置文件中加<propertyname="show_sql">true</property>和<property name="format_sql">true</property>。
注意看下面兩段代碼及結(jié)果的區(qū)別。
??
至于查不存在的數(shù)據(jù),大伙就自己試試吧。今天的就打到這兒吧。下一篇我們來(lái)了解稍微高深那么一點(diǎn)點(diǎn)的知識(shí)吧。
轉(zhuǎn)載于:https://blog.51cto.com/softi/1957387
總結(jié)
以上是生活随笔為你收集整理的《Java从入门到放弃》框架入门篇:hibernate基本用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Apache按天截断日志工具,无法生成访
- 下一篇: Javascript实现导航锚点滚动效果