<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    使用HibernateTool:一個(gè)簡(jiǎn)單的Hibernate程序(二)

    一.生成后的文件結(jié)構(gòu)如下圖


    各文件內(nèi)容如下:
    二.配置文件
    1.
    hibernate.cfg.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
    >
    <hibernate-configuration>
        
    <session-factory>
            
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            
    <property name="hibernate.connection.password">1234</property>
            
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sample</property>
            
    <property name="hibernate.connection.username">root</property>
            
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            
    <mapping resource="cn/blogjava/start/TUser.hbm.xml" />
        
    </session-factory>
    </hibernate-configuration>

    2.
    hibernate.reveng.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

    <hibernate-reverse-engineering>
      
    <table-filter match-catalog="sample" match-name="t_user"/>
    </hibernate-reverse-engineering>

    3.
    GeneralHbmSettings.hbm.xml
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >

    <hibernate-mapping>    
    <!-- 
        Auto-generated mapping file from
        the hibernate.org cfg2hbm engine
        for General Global Setttings
    -->

        
    <import 
            
    class="cn.blogjava.start.TUser"
            rename
    ="cn.blogjava.start.TUser"
        
    />
        

    </hibernate-mapping>

    4.TUser.hbm.xml
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >
    <hibernate-mapping>
    <!-- 
            Auto-generated mapping file from
            the hibernate.org cfg2hbm engine
    -->
        
    <class name="cn.blogjava.start.TUser" table="t_user" catalog="sample">
            
    <id name="id" type="integer">
                
    <column name="id" />
                
    <generator class="native" />
            
    </id>
            
    <property name="name" type="string">
                
    <column name="name" length="100" not-null="true" />
            
    </property>
        
    </class>
    </hibernate-mapping>

    5.
    log4j.properties

    ### 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
    =info, stdout

    log4j.logger.org.hibernate
    =error
    #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

    三.Java類(lèi)
    1.POJO類(lèi)TUser.java
     1package cn.blogjava.start;
     2
     3
     4
     5/**
     6 * TUser generated by hbm2java
     7 */

     8
     9public class TUser  implements java.io.Serializable {
    10
    11
    12    // Fields    
    13
    14     private Integer id;
    15     private String name;
    16
    17
    18    // Constructors
    19
    20    /** default constructor */
    21    public TUser() {
    22    }

    23    
    24    /** constructor with id */
    25    public TUser(Integer id) {
    26        this.id = id;
    27    }

    28
    29    
    30
    31   
    32    // Property accessors
    33
    34    public Integer getId() {
    35        return this.id;
    36    }

    37    
    38    public void setId(Integer id) {
    39        this.id = id;
    40    }

    41
    42    public String getName() {
    43        return this.name;
    44    }

    45    
    46    public void setName(String name) {
    47        this.name = name;
    48    }

    49   
    50
    51
    52
    53
    54
    55
    56
    57
    58}

    2.測(cè)試類(lèi)HibernateTest.java
      1package cn.blogjava.start;
      2
      3import java.util.List;
      4
      5import junit.framework.Assert;
      6import junit.framework.TestCase;
      7
      8import org.hibernate.HibernateException;
      9import org.hibernate.Session;
     10import org.hibernate.SessionFactory;
     11import org.hibernate.Transaction;
     12import org.hibernate.cfg.Configuration;
     13
     14
     15public class HibernateTest extends TestCase {
     16    
     17    Session session = null;
     18    /**
     19     * JUnit中的setUp方法在TestCase初始化的時(shí)候會(huì)自動(dòng)調(diào)用
     20     * 一般用于初始化公用資源
     21     */

     22    protected void setUp() {
     23        try {
     24            /**
     25             * 可以采用hibernate.properties或者h(yuǎn)ibernate.cfg.xml
     26             * 配置文件的初始化代碼
     27             * 
     28             * 采用hibernate.properties
     29             * Configuration config = new Configuration();
     30             * config.addClass(TUser.class);
     31             */

     32            
     33            //采用hibernate.cfg.xml配置文件,與上面的方法對(duì)比,兩個(gè)差異
     34            //1.Configuration的初始化方式
     35            //2.xml
     36            Configuration config = new Configuration().configure();
     37            SessionFactory sessionFactory = config.buildSessionFactory();
     38            session = sessionFactory.openSession();
     39            
     40        }
     catch (HibernateException e) {
     41            // TODO: handle exception
     42            e.printStackTrace();
     43        }
            
     44    }

     45
     46    /**
     47     * JUnit中的tearDown方法在TestCase執(zhí)行完畢的時(shí)候會(huì)自動(dòng)調(diào)用
     48     * 一般用于釋放資源
     49     */
        
     50    protected void tearDown() {
     51        try {
     52            session.close();        
     53        }
     catch (HibernateException e) {
     54            // TODO: handle exception
     55            e.printStackTrace();
     56        }
            
     57    }
        
     58    
     59    /**
     60     * 對(duì)象持久化測(cè)試(Insert方法)
     61     */
            
     62    public void testInsert() {
     63        Transaction tran = null;
     64        try {
     65            tran = session.beginTransaction();
     66            TUser user = new TUser();
     67            user.setName("byf");
     68            session.save(user);
     69            session.flush();
     70            tran.commit();
     71            Assert.assertEquals(user.getId().intValue()>0 ,true);
     72        }
     catch (HibernateException e) {
     73            // TODO: handle exception
     74            e.printStackTrace();
     75            Assert.fail(e.getMessage());
     76            if(tran != null{
     77                try {
     78                    tran.rollback();
     79                }
     catch (Exception e1) {
     80                    // TODO: handle exception
     81                    e1.printStackTrace();
     82                }

     83            }

     84        }

     85    }

     86    
     87    /**
     88     * 對(duì)象讀取測(cè)試(Select方法)
     89     */
                
     90    public void testSelect(){
     91        String hql = " from TUser where name='byf'";
     92        try {
     93            List userList = session.createQuery(hql).list();
     94            TUser user = (TUser)userList.get(0);
     95            Assert.assertEquals(user.getName(), "byf");
     96        }
     catch (Exception e) {
     97            // TODO: handle exception
     98            e.printStackTrace();
     99            Assert.fail(e.getMessage());
    100        }

    101    }

    102}

    103


    posted on 2006-06-28 19:54 baim 閱讀(493) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 開(kāi)源軟件框架

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導(dǎo)航

    常用鏈接

    隨筆分類(lèi)(27)

    隨筆檔案(28)

    搜索

    最新評(píng)論

    主站蜘蛛池模板: 亚洲色图校园春色| 中文文字幕文字幕亚洲色| 亚洲人成影院午夜网站| 美女被爆羞羞网站在免费观看| 久久精品国产影库免费看| www.黄色免费网站| 永久亚洲成a人片777777| 亚洲一级高清在线中文字幕| 四虎国产精品成人免费久久| 国产精品免费精品自在线观看| gogo全球高清大胆亚洲| 91精品国产亚洲爽啪在线观看| 在线视频亚洲一区| 999任你躁在线精品免费不卡| 四虎永久成人免费| 亚洲码在线中文在线观看| 国产精品美女久久久免费 | 成人免费淫片在线费观看| 国产AⅤ无码专区亚洲AV| 亚洲依依成人亚洲社区| 91香蕉国产线在线观看免费| 亚洲精品线路一在线观看| 亚洲综合中文字幕无线码| 四虎国产精品永久免费网址 | 日韩视频在线免费观看| 亚洲Aⅴ无码专区在线观看q | 黄床大片30分钟免费看| 国产成人精品免费视频动漫 | 免费大香伊蕉在人线国产| 亚洲第一精品电影网| 黄色短视频免费看| 国产中文字幕免费观看| 成人区精品一区二区不卡亚洲| 久久精品乱子伦免费| 区久久AAA片69亚洲| 在线观看亚洲电影| 在线观看视频免费国语| 亚洲国产片在线观看| 久久九九AV免费精品| a级亚洲片精品久久久久久久 | 色噜噜狠狠色综合免费视频|