《Java从入门到放弃》框架入门篇:hibernate基本用法
昨天我們進(jìn)行了hibernate的配置,并且進(jìn)行了根據(jù)ID查詢對應(yīng)數(shù)據(jù)的操作,今天我們來看看hibernate中的幾個配置文件,里面到底有什么東東。
一、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)該沒有什么不好懂的吧,就注意一點(diǎn),<mapping>標(biāo)簽的路徑不要引用錯了,每次引用完后,記得按住Ctrl鍵,再把鼠標(biāo)移動到resource的值上去,如果雙引號里的內(nèi)容變成了超鏈接,那說明沒問題。當(dāng)然,如果你是通過DBBrowser生成的文件,那肯定不會引用錯誤。
二、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表示對應(yīng)的實(shí)體類,table表示對應(yīng)的數(shù)據(jù)表,catalog表示對應(yīng)的數(shù)據(jù)庫。
id標(biāo)簽:表示主鍵。
generator標(biāo)簽:主鍵的生成策略。
property標(biāo)簽:表示實(shí)體類的屬性。
column標(biāo)簽:表示對應(yīng)表中的字段。
對于單個對象的操作,我們上次已經(jīng)用過了load方法,除此之外,常用的還有以下四個:
get()方法,save()方法,update()方法,delete()方法
從名字就應(yīng)該可以猜出對應(yīng)的用法吧,這兒就不在一一演示了,各位看官自行解決吧·
最后簡單說一下load()和get()的區(qū)別:
load()方法是延時加載,調(diào)用時只返回一個代理對象(只包含ID),并且如果沒有該ID對應(yīng)的數(shù)據(jù)會拋ObjectNotFoundException異常。
get()方法是實(shí)時加載,調(diào)用后就返回ID對應(yīng)的記錄,如果數(shù)據(jù)不存在則返回null對象。
為了測試一下效果,我們在hibernate的配置文件中加<propertyname="show_sql">true</property>和<property name="format_sql">true</property>。
注意看下面兩段代碼及結(jié)果的區(qū)別。
??
至于查不存在的數(shù)據(jù),大伙就自己試試吧。今天的就打到這兒吧。下一篇我們來了解稍微高深那么一點(diǎn)點(diǎn)的知識吧。
轉(zhuǎn)載于:https://blog.51cto.com/softi/1957387
總結(jié)
以上是生活随笔為你收集整理的《Java从入门到放弃》框架入门篇:hibernate基本用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache按天截断日志工具,无法生成访
- 下一篇: PhpStorm中绘画UML