`
tiansoft
  • 浏览: 175578 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

hibernate的复习

    博客分类:
  • java
阅读更多
今天突然感觉到自己学的东西,都快忘完了,而且可能以后会用到,所以看了看自己以前写的东西,回忆一下,若以后用到上手快
一接口
import java.util.List;

import tmc.domail.Favor;
import tmc.domail.Nation;
import tmc.domail.User;

public interface IUserService {

public User login(String name,String pwd);
public void create(User user);
public void del(int id);
public User findUserById(int id);
public List<User> findUsers();
public List<User> findUsers(int pageNo,int maxNo);
public void update(User user);
public List<Nation> nations();
public List<Favor> favors();
public Nation findNativeById(int id);
public void createUserFavor(int uid,Integer[] fid);

}
二:加载hibernate文件
package tmc.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;

/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution.  Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html }.
*/
public class HibernateSessionFactory {

    /**
     * Location of hibernate.cfg.xml file.
     * Location should be on the classpath as Hibernate uses 
     * #resourceAsStream style lookup for its configuration file.
     * The default classpath location of the hibernate config file is
     * in the default package. Use #setConfigFile() to update
     * the location of the configuration file for the current session.  
     */
    private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private  static Configuration configuration = new Configuration();   
    private static org.hibernate.SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION;

static {
    try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
    }
    private HibernateSessionFactory() {
    }

/**
     * Returns the ThreadLocal Session instance.  Lazy initialize
     * the <code>SessionFactory</code> if needed.
     *
     *  @return Session
     *  @throws HibernateException
     */
    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
        return session;
    }

/**
     *  Rebuild hibernate session factory
     *
     */
public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}

/**
     *  Close the single hibernate session instance.
     *
     *  @throws HibernateException
     */
    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);

        if (session != null) {
            session.close();
        }
    }

/**
     *  return session factory
     *
     */
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}

/**
     *  return session factory
     *
     * session factory will be rebuilded in the next call
     */
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}

/**
     *  return hibernate configuration
     *
     */
public static Configuration getConfiguration() {
return configuration;
}

}
三:执行相应的数据库操作
package tmc.util;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import tmc.domail.Favor;
import tmc.domail.Nation;
import tmc.domail.User;
import tmc.domail.UserFavor;

public class UserServiceImp implements IUserService{
   /**
    * 添加用户
    */
public void create(User user) {
Session session = null;
Transaction tx = null;
try{
    session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
    session.save(user);
tx.commit();

}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
    }
   /**
    * 删除用户
    */
public void del(int id) {
Session session = null;
Transaction tx = null;
try{
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
User user = (User)session.get(User.class,id);
session.delete(user);
tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
HibernateSessionFactory.closeSession();
}
}
    /**
    *  根据id查看用户信息
    */
public User findUserById(int id) {
Session session = null;
User user = null;
try{
session = HibernateSessionFactory.getSession();
user = (User)session.get(User.class,id);

}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return user;
}
    /**
     * 查看所有的用户信息
     */
public List<User> findUsers() {
Session session = null;
List<User> user = null;
try{
session = HibernateSessionFactory.getSession();
String hql = "from User";
Query query = session.createQuery(hql);
    user = query.list();

}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return user;
}
   /**
    * 分页显示信息
    */
public List<User> findUsers(int pageNo,int maxNo) {
Session session = null;
List<User> user = null;
try{
session = HibernateSessionFactory.getSession();
String hql = "from User";
Query query = session.createQuery(hql);
user =query.setFirstResult(pageNo).setMaxResults(maxNo).list();

}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return user;
}
    /**
     * 用户登录验证
     */
public User login(String username, String password) {
Session session = null;


try {
session = HibernateSessionFactory.getSession();
User users = (User)session.createQuery("from tmc.domail.User u where u.username = :name and u.password = :pwd")
.setString("name", username)
.setString("pwd", password)
.uniqueResult();
            return users;
} catch (HibernateException e) {
e.printStackTrace();
return null;
}finally{
HibernateSessionFactory.closeSession();
}
}
    /**
     * 修改用户信息
     */
public void update(User user) {
Session session = null;
Transaction tx = null;
try{
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
user  = (User)session.get(User.class, user.getId());
session.update(user);
tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
HibernateSessionFactory.closeSession();
}
}
/**
* 查看所有的民族
*/
public List<Nation> nations(){
Session session = null;
List<Nation> nation = null;
try{
session = HibernateSessionFactory.getSession();
String hql ="from Nation";
Query query = session.createQuery(hql);
nation = query.list();
}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return nation;
}
/**
* 查询出所有的爱好
*/
public List<Favor> favors(){
Session session = null;
List<Favor> favor = null;
try{
session = HibernateSessionFactory.getSession();
String hql = "from Favor";
Query query = session.createQuery(hql);
favor = query.list();

}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return favor;
}
/**
* 创建三张表的对应关系,即用户表,爱好表,和中间表
* 本来是多对多的关系,变成了两张多对一的关系
* 用户表--》中间表
* 中间表--》爱好表
* @param uid
* @param fid
*/
public void createUserFavor(int uid,Integer[] fid){
Session session = null;
Transaction tx = null;
try{
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
User user = (User)session.get(User.class,uid);
for(int i=0;i<fid.length;i++){
Favor fa = (Favor)session.get(Favor.class, fid[i]);
UserFavor uf = new UserFavor();
uf.setUser(user);
uf.setFavors(fa);
session.save(uf);
}
tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
HibernateSessionFactory.closeSession();
}

}
public Nation findNativeById(int id) {
Session session = null;
//Transaction tx = null;
Nation nation = null;
try{
session = HibernateSessionFactory.getSession();
nation = (Nation)session.get(Nation.class,id);
}catch(Exception e){
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return nation;
}
}
分享到:
评论

相关推荐

    hibernate+spring复习大纲

    **hibernate+spring复习大纲** 在Java Web开发领域,Hibernate和Spring是两个至关重要的框架。Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,而Spring则是一个全面的企业级应用框架,提供了依赖...

    hibernate复习

    全面讲解hibernate,缓存,配置, 以及状态

    Hibernate复习题1含答案要点.doc

    - **Criteria查询**是Hibernate提供的另一种查询方式,除了传统的HQL(Hibernate Query Language),Criteria API允许以面向对象的方式构建查询,更符合Java的编程习惯。创建Criteria对象的正确方式是`Criteria c = ...

    hibernate达内五天复习笔记.pdf

    《Hibernate达内五天复习笔记》是一份详细记录了Hibernate框架学习的资料,旨在帮助读者深入理解并掌握Hibernate这一强大的Java持久化框架。以下是笔记中的主要知识点: 1. **ORM原理**: - **对象持久化**:将...

    各种试题包含答案

    文件名称列表显示了具体的复习题目和答案,例如"JSP复习题4含答案.txt"可能是关于JavaServer Pages的题目,"Hibernate复习题1含答案.doc"则可能涉及到Hibernate框架的实践问题。"购车预订系统.doc"和"2010南非世界杯...

    hibernate知识复习二:组合映射

    【标题】:“Hibernate知识复习二:组合映射” 在Java Web开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,将数据库中的表映射为Java对象,使得开发者可以像操作普通对象一样操作...

    复习hibernate

    本复习旨在深入理解Hibernate的核心概念、配置及常用API,帮助开发者提高开发效率。 一、Hibernate概述 Hibernate是Java领域中流行的ORM(Object-Relational Mapping)框架,它通过映射关系数据库与Java类,实现了...

    北大青鸟Hibernate学习资料

    提供的三份上课笔记《上课笔记t1.txt》、《上课笔记.txt》和《上课笔记t3.txt》可能是课堂讲解的精华总结,包含了关键点和实例,是复习和巩固知识的好帮手。 通过学习这些资料,你将能够有效地掌握Hibernate框架,...

    Hibernate4.1.1的Demo实例

    **标题:“Hibernate4.1.1的Demo实例”** **描述**:这个Demo实例深入浅出地展示了Hibernate 4.1.1版本的核心特性和使用方法。...同时,对于有经验的开发者,这也是复习和巩固Hibernate知识的一个好资料。

    J2EE考试复习试题_struts2_spring_hibernate.doc

    ### J2EE考试复习知识点详解 #### Struts2框架概览 - **起源与组成**:Struts2框架源于WebWork框架与XWork框架的发展融合。WebWork2本身即建立在XWork之上,继承并发展了XWork的核心特性,如命令模式、拦截器机制等...

    燕山大学 spring hibernate struts 三大框架 期末复习资料

    **Hibernate** 是一个开源的对象关系映射 (ORM) 工具,它使得 Java 开发者可以更加方便地与数据库进行交互,无需编写大量的 SQL 代码。Hibernate 通过提供一个映射配置文件或注解,能够将 Java 类映射到数据库表,并...

    J2EE复习积累(六)-Hibernate4.2

    **J2EE复习积累(六)-Hibernate4.2** 在J2EE开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了Java应用程序与数据库之间的交互。本篇复习将聚焦于Hibernate 4.2版本,该版本在前一版本的基础上...

    hibernate知识复习四:多对多关联映射

    在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨 Hibernate 中的多对多关联映射,这是一个复杂但常见的数据模型关系,适用于那些两个...

    韩顺平.2011版.hibernate_ppt.zip

    《韩顺平.2011版.hibernate_ppt》是一个关于Hibernate框架的培训教程,由知名讲师韩顺平在2011年制作并分享。Hibernate是一个强大的Java对象关系...对于有经验的开发者,也是复习和深入理解Hibernate特性的良好资源。

    传智播客2016hibernate框架学习笔记

    《传智播客2016 Hibernate框架学习笔记》是一份详实的教程,旨在帮助初学者和进阶者深入理解和掌握Hibernate框架。...这些笔记不仅适合初学者,也为有经验的开发者提供了一个复习和深化Hibernate知识的良好资源。

    Hibernate_使用示例代码

    **标题:“Hibernate_使用示例代码”** **描述:** 这篇资源主要提供了关于Hibernate框架的实战应用示例,作者在iteye...对于初学者,这是一个很好的起点,对于有经验的开发者,也是复习和巩固Hibernate技能的好材料。

    hibernate知识复习三:关联映射:一对多/多对一

    在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨Hibernate中的关联映射,特别是“一对多”和“多对一”的关系映射,这对于理解如何在...

    JavaEE struts2 Hibernate结合贴吧小案例

    在Java企业级开发中,Struts2和Hibernate是两个非常重要的框架,它们分别负责控制层和数据持久化层。...对于初学者,这是一个很好的起点,对于有经验的开发者,也可以作为一个复习和巩固基础知识的参考。

    j2ee框架Struts2HibernateSpring考试复习题库.pdf

    Struts2、Hibernate和Spring是Java企业级应用开发中广泛使用的三大开源框架,它们共同构建了J2EE应用程序的基础架构。这些框架各自有着特定的功能和优势,协同工作时能极大地提高开发效率和软件质量。 **Struts2**...

    网上银行系统(Struts+Hibernate)

    网上银行系统是一个基于Struts和Hibernate技术的典型Web应用程序,旨在模拟实际银行的在线服务功能。这个项目提供了学习和理解这两种技术...而对于有经验的开发者,这样的项目也可以用来复习和深化对这两项技术的掌握。

Global site tag (gtag.js) - Google Analytics