大师养成计划之二:hibernate框架的使用------实例演示

搭建hibernate项目框架的步骤:

一、导入jar包

二、new    .cfg.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7     
 8         <!-- hibernate的基本信息 -->
 9         <property name="connection.username">root</property>
10         <property name="connection.password">root</property> 
11         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
12         <property name="connection.url">jdbc:mysql:///hibernate</property>
13     
14         <!-- hibernate的基本配置 -->
15         
16         <!-- hibernate使用的数据库方言 -->
17         <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
18         
19         <!-- 运行时是否打印sql语句 -->
20         <property name="show_sql">true</property>
21         
22         <!-- 运行时是否格式化sql -->
23         <property name="format_sql">true</property>
24         
25         <!-- 生成数据表的策略  这里是更新-->
26         <property name="hbm2ddl.auto">update</property>
27         
28         <!-- 设置hibernate的事务隔离级别 -->
29         <property name="connection.isolation">2</property>
30         
31         <!-- 配置c3p0数据源 -->
32         <property name="hibernate.c3p0.max_size">10</property>
33         <property name="hibernate.c3p0.min_size">5</property>
34         <property name="hibernate.c3p0.acquire_increment">2</property>
35         <property name="hibernate.c3p0.timeout">2000</property>
36         <property name="hibernate.c3p0.acquire_increment">2000</property>
37         <property name="c3p0.max_statements">10</property>
38         
39         <!--@里的内容对于mysql是无效的,对于oracle是有效的 -->
40         <!--@ 设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数 -->
41         <property name="hibernate.jdbc.fetch_size">100</property>
42         
43         <!-- @设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小 -->
44         <property name="jdbc.batch_size">30</property>
45         
46         
47         <!-- 需要关联的hibernate映射文件 .hbm.xml -->
48         <mapping resource="entities/News.hbm.xml"/>
49         
50     </session-factory>
51 </hibernate-configuration>

三、new 实体类 

 1 package entities;
 2 
 3 import java.util.Date;
 4 
 5 /**
 6  * @author zxN
 7  * @version 创建时间:2016年1月3日 下午2:13:57
 8  * 类说明
 9  */
10 class News {
11     private Integer id;
12     private String title;
13     private String author;
14     private Date date;
15     public News() {
16         super();
17         // TODO Auto-generated constructor stub
18     }
19     public News( String title, String author, Date date) {
20         super();
21     
22         this.title = title;
23         this.author = author;
24         this.date = date;
25     }
26     public Integer getId() {
27         return id;
28     }
29     public void setId(Integer id) {
30         this.id = id;
31     }
32     public String getTitle() {
33         return title;
34     }
35     public void setTitle(String title) {
36         this.title = title;
37     }
38     public String getAuthor() {
39         return author;
40     }
41     public void setAuthor(String author) {
42         this.author = author;
43     }
44     public Date getDate() {
45         return date;
46     }
47     public void setDate(Date date) {
48         this.date = date;
49     }
50     @Override
51     public String toString() {
52         return "News [id=" + id + ", title=" + title + ", author=" + author
53                 + ", date=" + date + "]";
54     }
55     
56     
57 }

四、new 实体类的 hbm.xml文件

 

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2015-12-24 15:32:00 by Hibernate Tools 3.4.0.CR1 -->
 5 <!-- hbm.xml -->
 6 <hibernate-mapping package="entities">
 7     <class name="entities.News" table="NEWS">
 8         <id name="id" type="java.lang.Integer">
 9             <!-- 列名 -->
10             <column name="ID" />
11             <!-- 设置主键为自动增长 -->
12             <generator class="native"/>
13         </id>
14         <property name="title" type="java.lang.String">
15             <column name="TITLE" />
16         </property>
17         <property name="author" type="java.lang.String">
18             <column name="AUTHOR" />
19         </property>
20         <property name="date" type="java.util.Date">
21             <column name="DATE" />
22         </property>
23         
24         
25          <!-- 映射大对象 -->
26         <!-- 若希望精确映射SQL类型,可以使用sql-type属性 -->
27         <property name="content" >
28             <column name="CONTENT" sql-type="mediumtext"></column>
29         </property>
30         
31         <property name="image" type="blob">
32             <column name="IMAGE" sql-type="mediumblob"></column>
33         </property>
34     </class>
35 </hibernate-mapping>

 

在这个文件里,设置主键的方式,若为自动递增的,应设置为native

并将这个文件关联到cfg.xml里边去(PS:路径前面不要有斜线!!!)

五、新建junit测试类

 

posted @ 2016-02-04 11:03  在路上的牛小牛  阅读(218)  评论(0编辑  收藏  举报