hibernat基础教程(编辑修改稿)内容摘要:

//Hibernate/Hibernate Configuration DTD hibernateconfiguration sessionfactory property name=show_sqltrue/property property name=dialect/property property name=/property property name=jdbc: property name=root/property property name=root/property mapping resource=―/pojo// /sessionfactory /hibernateconfiguration 十八、 SessionFactory 概述: 应用程序从 SessionFactory( 会话工厂)里获得 Session(会话 )实例。 它在 多个应用线程间进行共享。 通常情况下,整个应用只有 唯一 的一个会话工厂 ——例如在应用初始化时被创建。 然而,如果你使用 Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。 会话工厂缓存了生成的 SQL语句和 Hibernate在运行时使用的映射元数据。 调用代码: SessionFactory sessionFactory = ()。 十九、 Session(会话 ) 概述: Session不是线程安全的,它代表与数据库之间的一次操作,它的概念介于 Connection和 Transaction之间。 Session也称为持久化管理器,因为它是与持久化有关的操作接口。 Session通过 SessionFactory打开,在所有的工作完成后,需要关闭。 它与 Web层的 HttpSession没有任何关系。 调用代码 Session session = ()。 保存用户: (Person)。 查询用户: load(Class theClass, Serializable id ) get(Class theClass, Serializable id ) 修改用户: (Person)。 保存或修改用户 :(Person)。 删除用户: (Person)。 删除所有用户: (―from Person ‖)。 二十、 Transaction(事务 ) 概述: 它将应用代码从底层的事务实现中抽象出来 ——这可能是一个 JDBC事务,一个 JTA用户事务或者甚至是一个公共对象请求代理结构( CORBA) ——允许应用通过一组一致的API控制事务边界。 这有助于保持 Hibernate应用在不同类型的执行环境或容器中的可移植性。 调用代码: Transaction tx = ()。 注: 使用 Hibernate进行操作时( 增、删、改 )必须显示的调用 Transaction( 默认: autoCommit=false)。 项目步骤 建立 web项目 导入数据库包和 hibernate包 编写持久化类 编写持久化类的映射文件 编写 编写操作类接口 编写工具类 编写实现类实现操作类接口 页面中调用实现类 二十一、综合举例 编写操作类接口 package。 import。 public interface StuDAO { public void saveUser(Stu user)。 public Stu findUserByName(String name)。 public Stu findUserById(Integer id)。 public void updateUser(Stu user)。 public void remove(Stu user)。 public List findall()。 } 二十一、综合举例 编写工具类 package。 import。 import。 import。 public final class HibernateUitl { private static SessionFactory sessionFactory。 private HibernateUitl() { } static {//static语句块类加载时仅被执行一次 Configuration cfg = new Configuration()。 ()。 sessionFactory = ()。 } public static SessionFactory getSessionFactory() { return sessionFactory。 } public static Session getSession() { return ()。 }} 二十一、综合举例 编写实现类实现操作类接口 package。 import。 import。 import。 import。 import。 import。 二十一、综合举例 编写实现类实现操作类接口 public class StuDAOimpl implements StuDAO { public Stu findUserById(Integer id) { Session s = null。 try { s = ()。 Stu user =(Stu)(, id)。 return user。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public Stu findUserByName(String name) { Session s = null。 try { s = ()。 Criteria c = ()。 ((xm, name))。 Stu user =(Stu) ()。 return user。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public Stu findUserByName1(String name) { Session s = null。 try { s = ()。 String hql = from Stu as u where =:n。 Query q = (hql)。 (n, name)。 Stu user = (Stu) ()。 return user。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public void remove(Stu user) { Session s = null。 Transaction tx = null。 try { s = ()。 tx = ()。 (user)。 ()。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public void saveUser(Stu user) { Session s = null。 Transaction tx = null。 try { s = ()。 tx = ()。 (user)。 ()。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public void updateUser(Stu user) { Session s = null。 Transaction tx = null。 try { s = ()。 tx = ()。 (user)。 ()。 } finally { if (s != null) ()。 } } 二十一、综合举例 编写实现类实现操作类接口 public List findall() {Session s = null。 Transaction tx = null。 try { s = ()。 String queryString = from Stu。 Query query = (queryString)。 return ()。 } finally { if (s != null) ()。 }}} 二十一、综合举例 页面中调用实现类 %@ page language=java import=.*,.*, pageEncoding=gbk% % (gbk)。 (gbk)。 SimpleDateFormat sd=new SimpleDateFormat(yyyymmdd)。 Stu s=new Stu()。 (new Integer(1012))。 (孙利 )。 (f)。 ((19721120))。 StuDAOimpl d=new StuDAOimpl()。 (s)。 % 二十一、综合举例 页面中调用实现类 %@ page language=java import=.*,.* pageEncoding=GB18030% % StuDAOimpl d=new StuDAOimpl()。 List l=null。 l=()。 for(int i=0。 i()。 i++) { Stu s=(Stu)((i))。 (())。 (())。 (())。 (())。 (br)。 } % 二十一、综合举例 页面中调用实现类 form action= menthod=post 请输入你要查找学生的学号 input type=text name=username/ input type=submit value=查找 / /form 二十一、综合举例 页面中调用实现类 % String id=(username)。 StuDAOimpl d=new StuDAOimpl()。 Stu user=new Stu()。 user=(new Integer(id))。 if (user!=null){ (())。 (())。 (())。 (())。 } else { (no)。 } % 二十一、综合举例 页面中修改记录 (步骤一) % StuDAOimpl d=new StuDAOimpl()。 List l=null。 l=()。 for(int i=0。 i()。 i++) { Stu s=(Stu)((i))。 (())。 (())。 (())。 (())。 (a href=?id=+()+修改 /a)。 (br)。 } % 二十一、综合举例 页面中修改记录 (步骤二) % String id=(id)。 StuDAOimpl d=new StuDAOimpl()。 Stu user=new Stu()。 user=(new Integer(id))。 % 二十一、综合举例 form action= method=post 学号 :input type=text name=userid value=%=()% readonly/br/ 姓名 :input type=text name=username value=%=()%/br/ 性别 :input type=text name=usersex value=%=() %/br/ 学号 :input type=text name=usersr value=%=() %/br/ input type=s。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。