[ 登录注册 ]

Java

hibernate需要配置的xml

2016-08-24 13:12:12 admin 返回上一页

001
<pre class="brush:xml; toolbar: true; auto-links: false;">
002
  
003
  
004
  
005
  <blockquote>
006
   
007
   
008
   <h3>    <b>Customer.hbm.xml</b></h3>
009
  
010
  
011
  
012
  </blockquote>
013
</pre><pre class="brush:xml; toolbar: true; auto-links: false;"><?xml version="1.0" encoding="UTF-8"?><br/></pre><pre class="brush:xml; toolbar: true; auto-links: false;"><!DOCTYPE hibernate-mapping PUBLIC
014
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
015
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
016
<!-- 建立持久化对象与数据库表的关联关系 -->
017
<hibernate-mapping>
018
    <!--
019
    class:指定类的路径和表的名称的关联
020
       * name:持久化类的名称对应的全路径
021
       * table:表示对应数据库表的名称
022
     -->
023
    <class name="cn.aypak.a_primer.Customer" table="a_customer">
024
        <!--
025
            id:主键(OID)
026
              * name:持久化类中属性
027
              * type:表示hibernate的数据类型,表示java的数据类型在连接sql的数据类型的一个桥梁
028
              * column:数据库对应的字段列
029
                   * name:数据库表中字段名称
030
              * generator:主键的生成策略
031
                   * class:指定主键按照哪种生成策略执行(本例:increment表示自增长)
032
         -->
033
        <id name="id" type="integer">
034
            <column name="id"></column>
035
            <generator class="increment"></generator>
036
        </id>
037
        <!--
038
            property:持久化对象中的属性与表中的字段进行关联
039
               * name:持久化类中属性
040
               * type:表示hibernate的数据类型,表示java的数据类型在连接sql的数据类型的一个桥梁
041
               * column:数据库对应的字段列
042
                   * name:数据库表中字段名称
043
         -->
044
        <property name="name" type="string">
045
            <column name="name"></column>
046
        </property>
047
        <property name="age" type="integer">
048
            <column name="age"></column>
049
        </property>
050
        <property name="des" type="string">
051
            <column name="des"></column>
052
        </property>
053
    </class>
054
</hibernate-mapping></pre><p></p>
055
 
056
 
057
 
058
 <blockquote>
059
  
060
  
061
  <h3>   hibernate.cfg.xml</h3>
062
 
063
 
064
 
065
 </blockquote>
066
<br>
067
<p></p>
068
<p></p>
069
<pre class="brush:xml; toolbar: true; auto-links: false;"><?xml version="1.0" encoding="UTF-8"?>
070
<!DOCTYPE hibernate-configuration PUBLIC
071
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
072
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
073
 
074
<hibernate-configuration>
075
    <session-factory>
076
        <!-- 操作连接mysql的数据信息 -->
077
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
078
        <property name="hibernate.connection.url">jdbc:mysql://192.168.137.244:3306/aypak?useUnicode=true&amp;characterEncoding=utf8</property>
079
        <property name="hibernate.connection.username">root</property>
080
        <property name="hibernate.connection.password">root</property>
081
        <!-- 配置hibernate的方言,通知hibernate要连接哪种数据库(mysql),将该数据库类型识别成hibernate能够识别的类型 -->
082
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
083
        <!-- 是否通过配置文件(hbm.xml)的配置生成数据库的表
084
          update:当表不存在的时候,自动创建表,并往表中追加数据
085
                 当表存在的时候,不会删除表再创建表,而是直接向表中追加数据
086
          create:每次在操作数据库(CRUD)的时候,都会先删除表,在创建表,项目不能使用,这样历史数据将不被保存
087
          none:不能自动创建表,每次操作数据库的时候,直接将数据保存到数据库,历史数据不丢失
088
         -->
089
        <property name="hibernate.hbm2ddl.auto">update</property>
090
        <!-- 是否在开发的过程中显示sql语句,默认是false -->
091
        <property name="hibernate.show_sql">true</property>
092
        <!-- 是否对显示的sql语句进行格式化,默认是false -->
093
        <property name="hibernate.format_sql">false</property>
094
        
095
        <!-- 等价于configuration.addClass(Customer.class); -->
096
        <!-- <mapping resource="cn/aypak/a_primer/Customer.hbm.xml"/>-->
097
    </session-factory>
098
</hibernate-configuration></pre><p> </p>
099
 
100
 
101
 
102
 <blockquote>
103
  
104
  
105
  <h3>  实例:CRUD</h3>
106
 
107
 
108
 
109
 </blockquote>
110
<p></p>
111
<p></p>
112
<pre class="brush:java; toolbar: true; auto-links: false;">package cn.aypak.a_primer;
113
 
114
import java.util.List;
115
 
116
import org.hibernate.Query;
117
import org.hibernate.Session;
118
import org.hibernate.SessionFactory;
119
import org.hibernate.Transaction;
120
import org.hibernate.cfg.Configuration;
121
import org.junit.Test;
122
 
123
public class App {
124
    
125
    private static SessionFactory sf = null;
126
    
127
    static{
128
        Configuration configuration = new Configuration();
129
        configuration.configure("cn/aypak/a_primer/hibernate.cfg.xml");
130
        configuration.addClass(Customer.class);
131
        sf = configuration.buildSessionFactory();
132
    }
133
    
134
    /**新增*/
135
    <a href="http://my.oschina.net/test45" target="_blank" rel="nofollow">@Test</a>
136
    public void testInsertCustomer(){
137
        Session s = sf.openSession();
138
        Transaction tr = s.beginTransaction();
139
        
140
        Customer c = new Customer();
141
        c.setName("小三");
142
        c.setAge(18);
143
        c.setDes("专业的");
144
        s.save(c);
145
        
146
        tr.commit();
147
        s.close();
148
    }
149
    
150
    /**通过id进行修改*/
151
    <a href="http://my.oschina.net/test45" target="_blank" rel="nofollow">@Test</a>
152
    public void testUpdateCustomer(){
153
        Session s = sf.openSession();
154
        Transaction tr = s.beginTransaction();
155
        
156
        Customer c = new Customer();
157
        c.setId(3);
158
        c.setName("小四");
159
        s.update(c);
160
        
161
        tr.commit();
162
        s.close();
163
    }
164
    
165
    /**通过id删除客户信息*/
166
    <a href="http://my.oschina.net/test45" target="_blank" rel="nofollow">@Test</a>
167
    public void testDeleteCustomer(){
168
        Session s = sf.openSession();
169
        Transaction tr = s.beginTransaction();
170
        
171
        Customer c = new Customer();
172
        c.setId(2);
173
        s.delete(c);
174
        
175
        tr.commit();
176
        s.close();
177
    }
178
    
179
    /**通过id查询客户信息*/
180
    <a href="http://my.oschina.net/test45" target="_blank" rel="nofollow">@Test</a>
181
    public void testQueryCustomer(){
182
        Session s = sf.openSession();
183
        Transaction tr = s.beginTransaction();
184
        
185
        Customer c = (Customer) s.get(Customer.class, 1);
186
//      Customer c = (Customer) s.load(Customer.class, 1);
187
        System.out.println(c.getName()+"    "+c.getAge()+"     "+c.getDes());
188
        
189
        tr.commit();
190
        s.close();
191
    }
192
    /**查询所有的客户信息*/
193
    <a href="http://my.oschina.net/test45" target="_blank" rel="nofollow">@Test</a>
194
    public void testQueryAllCustomer(){
195
        Session s = sf.openSession();
196
        Transaction tr = s.beginTransaction();
197
        
198
        /**
199
         * s.createQuery("HQL语句"):使用HQL语句查询数据库,返回Query对象
200
         *      SQL语句:针对数据库、数据库表、数据库字段
201
         *      HQL语句:针对持久化对象、持久化对象的属性
202
         */
203
        Query query = s.createQuery("from Customer");
204
        List<Customer> list = query.list();
205
        for(Customer c:list){
206
            System.out.println(c.getName()+"    "+c.getAge()+"     "+c.getDes());
207
        }
208
        
209
        tr.commit();
210
        s.close();
211
    }
212
}</pre><p> </p>
213
<p></p>
214
<p></p>
215
<br>
作者:Aypak
点击复制链接 与好友分享!回本站首页

文章来源:http://www.bozhiyue.com/java/2016/0824/426394.html
返回上一页    返回分类 上一篇:   下一篇:
相关