一、構建Hibernate項目
????1.新建Java項目HibernateDemo1
????2.導入Hibernate下的jar包(lib->required下的所有jar包)+jdbc驅動包
????3.導入hibernate.cfg.xml文件到src目錄下(在Hibernate文件目錄中搜索*.cfg.xml)
???? 配置該文件如下: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ???????? <!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 > ???????????? < property ?name = "hibernate.dialect" >org.hibernate.dialect.MySQL5InnoDBDialect</ property > ???????????? < property ?name = "hibernate.connection.driver_class" >com.mysql.jdbc.Driver</ property > ???????????? < property ?name = "hibernate.connection.url" >jdbc:mysql:///hibernate_db</ property > ???????????? < property ?name = "hibernate.connection.username" >root</ property > ???????? < property ?name = "hibernate.connection.password" >root</ property > ???????? < property ?name = "hibernate.hbm2ddl.auto" >update</ property > ???????? < property ?name = "hibernate.show_sql" >true</ property > ???????? < property ?name = "hibernate.format_sql" >true</ property > ???????? < mapping ?resource = "com\eduask\pojo\Person.hbm.xml" ?/> ???????? </ session-factory > ???????? </ hibernate-configuration > |
? ? ?4.建立mysql數據庫hibernate_db
????5.在src目錄下建兩個包com.eduask.pojo、com.eduask.test
???? ?pojo包下建一個Person類(Person.java),內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package ?com.eduask.pojo; import ?java.util.Date; public ?class ?Person?{ ???? private ?Integer?id; ???? private ?String?name; ???? private ?int ?password; ???? private ?Date?birthday; ???? ????? public ?Person()?{} ???? public ?Person(String?name,? int ?password,?Date?birthday)?{ ???????? super (); ???????? this .name?=?name; ???????? this .password?=?password; ???????? this .birthday?=?birthday; ???? } ???? @Override ???? public ?String?toString()?{ ???????? return ?"Person?[id=" ?+?id?+? ",?name=" ?+?name?+? ",?password=" ?+?password?+? ",?birthday=" ?+?birthday?+? "]" ; ???? } ???? public ?Integer?getId()?{ ???????? return ?id; ???? } ???? public ?void ?setId(Integer?id)?{ ???????? this .id?=?id; ???? } ???? public ?String?getName()?{ ???????? return ?name; ???? } ???? public ?void ?setName(String?name)?{ ???????? this .name?=?name; ???? } ???? public ?int ?getPassword()?{ ???????? return ?password; ???? } ???? public ?void ?setPassword( int ?password)?{ ???????? this .password?=?password; ???? } ???? public ?Date?getBirthday()?{ ???????? return ?birthday; ???? } ???? public ?void ?setBirthday(Date?birthday)?{ ???????? this .birthday?=?birthday; ???? } ???? ????? ?} |
????pojo包下引入xml文件Person.hbm.xml,(Hibernate包中搜索),修改內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <? xml ?version = "1.0" ?> <!DOCTYPE?hibernate-mapping?SYSTEM?"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"?> < hibernate-mapping > ???? < class ?name = "com.eduask.pojo.Person" ?table = "t_person" > ???????? < id ?name = "id" > ???????????? < generator ?class = "native" /> ???????? </ id > ???????? < property ?name = "name" ?column = "t_name" ></ property > ???????? < property ?name = "password" ?length = "6" ></ property > ???????? < property ?name = "birthday" ></ property > ???? </ class > </ hibernate-mapping > |
????test包中新建測試類HibernateTest.java,內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package ?com.eduask.test; import ?java.util.List; import ?org.hibernate.Criteria; import ?org.hibernate.Session; import ?org.hibernate.SessionFactory; import ?org.hibernate.Transaction; import ?org.hibernate.cfg.Configuration; import ?com.eduask.pojo.Person; public ?class ?HibernateTest?{ ???? public ?static ?void ?main(String[]?args)?{ ???????? Configuration?config?=? new ?Configuration().configure(); ???????? SessionFactory?factory?=?config.buildSessionFactory(); ???????? Session?session?=?factory.openSession(); ???????? Transaction?tx?=?session.beginTransaction(); ???????? Person?p?=? new ?Person( "admin" , 123456 , new ?java.util.Date());? ???????? Criteria?c?=?session.createCriteria(Person. class ); ???????? List<Person>?lists?=?c.list(); ???????? System.out.println(lists.get( 0 ).getName()); ???????? tx.commit(); ???????? session.close(); ???????? factory.close(); ???? } } |
????運行測試類,結果如下:
Hibernate:?
? ? insert?
? ? into
? ? ? ? t_person
? ? ? ? (t_name, password, birthday)?
? ? values
? ? ? ? (?, ?, ?)
八月 11, 2016 5:17:14 下午 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH000030: Cleaning up connection pool [jdbc:mysql:///hibernate_db]
同時在數據庫中可以看到t_person表已被創建以及插入的響應數據。