首页 > 编程知识 正文

executequery返回值(SessionFactory(单态模式)及使用Query方法)

时间:2023-05-03 06:30:33 阅读:123701 作者:480

一、单模

1 .根据第一个项目,将创建sessionfactory的代码封装到类中,并在manager中调用。 静态代码块中的操作只执行一次

package cn.hrbust.dao;

importorg.hibernate.hibernate exception;

importorg.hibernate.session factory;

importorg.hibernate.CFG.configuration;

//会话工厂单工模式

公共类共享实用工具{

私有状态会话factorysf=null;

私有状态配置文件=空值;

加载static {//类时只运行一次

try {

cfg=new Configuration ().configure );

sf=cfg.buildSessionFactory (;

}catch(hibernateexceptione ) {

//todo auto-generated catch块

e .打印堆栈跟踪(;

}

}

publicstaticsessionfactorygetsessionfactory {

返回科幻;

}

publicstaticvoidclosesessionfactory {

sf.close (;

}

}

将以下内容添加到hibernate.cfg.xml中的session-factory标记中

property name=' hibernate.current _ session _ context _ class ' thread/property

使用util工具而不是manageUser会话工厂,如何打开会话将openSession转换为getCurrentSession

configuration conf=new configuration ().configure );

sssionfactorysf=hibernate util.getsession factory (;//会话工厂单工模式

sssionsession=SF.getcurrentsession (; //确保每个读写线程都有唯一的session实例

4 .测试并成功插入了当前的HibernateUtil工具类

二、使用JUnit测试方法(用JUnit测试main中没有的函数) ) ) ) ) )。

1.manageUser类继承TestCase并部署Junit 3jar包

添加testSaveUser方法并测试save功能:

//保存用户对象

公共语音测试用户

sssionfactorysf=hibernate util.getsession factory (;

sssionsession=SF.getcurrentsession (;

传输ts=null;

try{

ts=session.beginTransaction (;

用户用户=new user (;

user.setName (行人丙);

user.setGender (女);

user.setage(21;

user.set birthday (date.value of (2021-6-14 ) );

sssion.save(user );

ts.commit (;

}catch(exceptione ) {

if(ts!=null () { ts.rollback; }

e .打印堆栈跟踪(;

}

}

添加testQueryUser方法并测试Query功能:

//查询用户对象

公共语音测试查询用户

configuration conf=new configuration ().configure );

sssionfactorysf=hibernate util.getsession factory (;//会话工厂单工模式

sssionsession=SF.getcurrentsession (; //确保每个读写线程都有唯一的session实例

传输ts=null;

try{

ts=session.beginTransaction (; //开始一个事务

query query=session.create query (' fromuser ' );

ListUser users=query.list (;

for(intI=0; iusers.size (; I )

{

useru=users.get(I;

system.out.println(u.getname () ' u.getAge ) );

}

ts.commit (; //提交事务

}catch(exceptione ) {

if(ts!=null () { ts.rollback; }

e .打印堆栈跟踪(;

}finally{

//session.close (;

//sf.close (;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。