Hibernate 学习笔记-1-3(Hibernate的基本映射以及几种主键生成策略的测试)

这次的测试还是在上个项目的基础上进行延伸,我编写了三个Java类:分别叫User1,User2,User3,这三个类分别来测试uuid,native,assigned这三种主键生成策略,其中User1的id字段为String类型,User2的id字段为int类型,User3的id字段为String类型。 与他们相对应的User1.hbm.xml, Uer2.hbm.xml, User3.hbm.xml也仅仅是在<id name="id"><generator class="这里不同"></generator> </id>

1.先上一张数据库的包图:

2.JUnit测试程序:BaseMappingTest.java(其中用到的HibernateUtils.java的源码在上个笔记(1-2)中有贴出):

这里需要注意的事项有:使用native生成策略时,id的类型要为int;使用assigned生成策略时,要自己setId,否则数据库端会出错。

package  com.codedestiny.hibernate;

import  org.hibernate.Session;

import  junit.framework.TestCase;

public   class  BassMappingTest  extends  TestCase  {
    
    
public void testUUID() {
        Session session 
= null;
        
try {
            session 
= HibernateUtils.getSession();
            session.beginTransaction();
            User1 u1 
= new User1();
            u1.setName(
"张三");
            session.save(u1);
            session.getTransaction().commit();            
        }
 catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        }
 finally {
            HibernateUtils.closeSession(session);
        }

    }

    
    
public void testNative() {
        Session session 
= null;
        
try {
            session 
= HibernateUtils.getSession();
            session.beginTransaction();
            User2 u2 
= new User2();
            u2.setName(
"张三");
            session.save(u2);
            session.getTransaction().commit();            
        }
 catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        }
 finally {
            HibernateUtils.closeSession(session);
        }

    }

    
    
public void testAssigned() {
        Session session 
= null;
        
try {
            session 
= HibernateUtils.getSession();
            session.beginTransaction();
            User3 u3 
= new User3();
            u3.setId(
"101");
            u3.setName(
"张三");
            session.save(u3);
            session.getTransaction().commit();            
        }
 catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        }
 finally {
            HibernateUtils.closeSession(session);
        }

    }

    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值