Hibernte配置以及junit测试笔记,hiberntejunit笔记
Hibernate配置junit测试
import static org.junit.Assert.*;
public class HibernateTest{
SessionFactory factory=null;
Session session=null;
//测试之前初始化数据
@Before
public void setUp() throws Eception{
System.out.println("初始化");
Configuration config=new Configuration
().configure();
ServiceRegistry sr=new
ServiceRegistryBuilder.applySetting(config.getProperties());
factory=config.buildSessionFactory(sr);
session=factory.openSession();
}
@After
//测试之后释放数据
public void tearDown() throws Exception{
System.out.println("结束,释放资源");
if(session.isOpen()){
session.close();
}
}
}
@Test测试方法
public void tearDown() throws Exception{
System.out.println("初始化");
} @Test
public void testAdd(){
Transaction tx=session.beginTransaction();
Person p=new Person("admin",123456,new Date
());
session.persist(p);//新增需要事务
tx.commit();
}
}
//Hibernate深入配置
access
<hibernate-mapping default-access="property">
//field(可以不需要getter/setter方法操作对象属性)
(尽量不要这样设置)
Person p=(Person)session.get(Person.class,id);//根据反射创建
对象
System.out.println(p);
<!--
1.default-access="field"对象属性状态方式设置
property:表示这个属性需要通过getter/settter方法搓澡
默认使用
2.package:指定本持久化配置文件的class的包名
auto-import:指定引入包
default-lazy:指定本持久化配置文件中的class延迟加载策略
default-cascade:指定本持久化配置文件中的class级联操作策略
<class name="Person" table="t_person">
dynamic-insert:没有赋值的属性不会参与新增操作
若为true:没有赋值的属性不会参与操作
mutable:表明该类是否允许更新
false:不允许更新,但是可以新增删除
select-before-update:true(执行更新之前先发起一条sql查询,
看看数据是否与表不一致,不一致就更新,否则不更新)
where="t_name=test2":在查询之前附带一个where查询条件
<property name="count" formula="(select (*)from
t_Person) "/>
指定一个属性的数据来源formula对应的查询语句
public void testAdd(){
Person p=new Person();
p.setName("Xxx");
System.out.println(p);
session.beginTransaction();
session.persist(p);
tx.commit();
}
public void testUpdate(){
Person p=new Person();
p.setId(1);
p.setName("Xxx");
System.out.println(p);
session.beginTransaction();
session.Update(p);//更新需要Id
tx.commit();
}
-->
<!--property其他属性映射配置
name:指定持久化类中需要映射的属性名
column:指定表的列名(不写表示使用默认属性名)
length:指定列存储数据长度
type:指定列字段类型
-->
eclipse 早已集成junit 直接创建测试用例即可
ant同样集成着呢
详情请自行翻阅 eclipse 自带文档
用servlet/jsp的时候,你写的是web.xml文件,这个是特殊的,会自动reload的
但是spring的,hibernate的,struts的配置
是不会reload的
做SSH开发,要会用测试单元进行测试!
(我用的是JUnit4,你可以用Spring自带的测试工具,可以直接测试SSH整合的!)
Spring和hibernte还有Struts2.x
都是不依赖web环境的!(struts2.x Action部分)
也就是说,你开发,测试的时候,都可以不部署到Tomcat上!,而改用main或者测试工具进行编码的测试!
这个是SSH的开发方式,也是螺旋递增式开发的一部分!
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。