日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate快速入门

發(fā)布時(shí)間:2025/1/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate快速入门 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下載hibernate

documentation目錄:存放hibernate的相關(guān)文件與API
lib目錄:存放hibernate編譯和運(yùn)行所依賴的jar包,其中required子目錄下包含了運(yùn)行hibernate項(xiàng)目必須的jar包
project目錄:存放hibernate各種相關(guān)的源代碼與資源.
在lib/required目錄中,包含的jar包


創(chuàng)建數(shù)據(jù)庫(kù)與表

CREATE DATABASE hibernateTest;USER hibernateTest;CREATE TABLE t_customer(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),address VARCHAR(50) )

創(chuàng)建實(shí)體類

public class Customer {private int id;private String name;private String address;private String sex;public Customer() {super();}public Customer(String name, String address) {super();this.name = name;this.address = address;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]";}}

導(dǎo)入hibernate框架相關(guān)依賴jar包

導(dǎo)入lib/required下所有的jar

導(dǎo)入數(shù)據(jù)庫(kù)的驅(qū)動(dòng)jar包

日志相關(guān)jar包

將hibernate/project/etc/log4j.properties文件導(dǎo)入到工程src下.

# # Hibernate, Relational Persistence for Idiomatic Java # # License: GNU Lesser General Public License (LGPL), version 2.1 or later. # See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. #### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file hibernate.log ### #log4j.appender.file=org.apache.log4j.FileAppender #log4j.appender.file.File=hibernate.log #log4j.appender.file.layout=org.apache.log4j.PatternLayout #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn, stdout#log4j.logger.org.hibernate=info log4j.logger.org.hibernate=debug### log HQL query parser activity #log4j.logger.org.hibernate.hql.ast.AST=debug### log just the SQL #log4j.logger.org.hibernate.SQL=debug### log JDBC bind parameters ### log4j.logger.org.hibernate.type=info #log4j.logger.org.hibernate.type=debug### log schema export/update ### log4j.logger.org.hibernate.tool.hbm2ddl=debug### log HQL parse trees #log4j.logger.org.hibernate.hql=debug### log cache activity ### #log4j.logger.org.hibernate.cache=debug### log transaction activity #log4j.logger.org.hibernate.transaction=debug### log JDBC resource acquisition #log4j.logger.org.hibernate.jdbc=debug### enable the following line if you want to track down connection ### ### leakages when using DriverManagerConnectionProvider ### #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

Hibernate的相關(guān)配置文件

有兩種:
1.xxx.hbm.xml 它主要是用于描述類與數(shù)據(jù)庫(kù)中的表的映射關(guān)系.
2.hibernate.cfg.xml 它是hibernate框架核心配置文件。

映射配置文件

位置:它要與實(shí)體類在同一個(gè)包下.
名稱 :類名.hbm.xml
約束:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

約束文件可以在hibernate的核心的jar包下的org.hibernate包下查找到


Customer.hbm.xml配置文件的內(nèi)容

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.nwtxxb.domain"><!-- name屬性它是實(shí)體類的全名 table 表的名稱 catalog 數(shù)據(jù)庫(kù)名稱 --><class name="Customer" table="t_customer"catalog="hibernateTest"><!-- id它是用于描述主鍵 --><id name="id" column="id" type="int"> <!-- java數(shù)據(jù)類型 --><!-- 主鍵生成策略 --><generator class="native"></generator></id><!-- 使用property來(lái)描述屬性與字段的對(duì)應(yīng)關(guān)系 --><property name="name" column="name" length="20" type="string"></property> <!-- hibernate數(shù)據(jù)類型 --><property name="address"><column name="address" length="50" sql-type="varchar(50)"></column> <!-- sql數(shù)據(jù)類型 --></property><property name="sex" column="sex" length="20"></property></class> </hibernate-mapping>

核心配置文件

它主要是hibernate框架所使用的,它主要包含了連接數(shù)據(jù)庫(kù)相關(guān)信息,hibernate相關(guān)配置等。
位置:在src下創(chuàng)建一個(gè)hibernate.cfg.xml
約束:

約束文件所在位置:hiberante核心jar包下的org.hibernate包下


在這個(gè)文件中如何配置?
可以參考 hibernate-release-5.0.7.Final\project\etc\hibernate.properties文件

<?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><!-- 配置關(guān)于數(shù)據(jù)庫(kù)連接的四個(gè)項(xiàng) 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><!-- 設(shè)置連接提供者 --><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> <!-- 最小連接數(shù) --><property name="hibernate.c3p0.timeout">120</property> <!-- 超時(shí) --><property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空閑連接 --><!-- 可以將向數(shù)據(jù)庫(kù)發(fā)送的sql顯示出來(lái) --><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><!-- 自動(dòng)創(chuàng)建表 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 用于設(shè)置事務(wù)提交方式 --><property name="hibernate.connection.autocommit">false</property><!-- 配置hibernate的映射文件所在位置 --><mapping resource="cn/nwtxxb/domain/Customer.hbm.xml" /></session-factory></hibernate-configuration>

測(cè)試

public class HibernateTest1 {// 保存一個(gè)Customer@Testpublic void saveCustomerTest() {// 創(chuàng)建一個(gè)CustomerCustomer c = new Customer();c.setName("張三");c.setAddress("北京");c.setSex("男");// 使用hibernate的api來(lái)完成將customer信息保存到mysql中操作Configuration config = new Configuration().configure(); // 加載hibernate.cfg.xmlSessionFactory sessionFactory = config.buildSessionFactory();Session session = sessionFactory.openSession(); // 相當(dāng)于得到一個(gè)Connection。// 開啟事務(wù)Transaction transaction = session.beginTransaction();// 操作session.save(c);// 事務(wù)提交transaction.commit();session.close();sessionFactory.close();} }

總結(jié)

以上是生活随笔為你收集整理的Hibernate快速入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。