Hibernate--5 基于Hibernate实现CUBD

修改hibernate的配置文件:

修改spring的配置文件applicationContext.xml,提供注入:

 

代码展示

修改UserAction

@SuppressWarnings("serial")

public class UserAction extends ActionSupport {

    @Override

    public String execute() throws Exception {

       this.addActionMessage("UserAction working");

       // this.addActionMessage("hello world.");

       this.addActionMessage(userService.doing());// 修改下,确认注入成功。

       return ActionSupport.SUCCESS;

    }

    // 注入用属性

    private UserService userService;

    // 注入用的方法

    public void setUserService(UserService userService) {

       this.userService = userService;

    }

    public String add() throws Exception {

       userService.save(new User(loginname, email, password));

       return ActionSupport.SUCCESS;

    }

    private String loginname;

    private String email;

    private String password;

    public void setLoginname(String loginname) {

       this.loginname = loginname;

    }

    public void setEmail(String email) {

       this.email = email;

    }

    public void setPassword(String password) {

       this.password = password;

    }

}

 

 

 

修改UserService

public class UserService {

       public String doing() {

              return "UserService working";

       }

       private UserDAO userDAO;

       public void setUserDAO(UserDAO userDAO) {

              this.userDAO = userDAO;

       }

       public void save(User user) {

              userDAO.save(user);

       }

}

修改HibernateSessionFactory

public class HibernateSessionFactory {

       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;

       private static ServiceRegistry serviceRegistry;

       static {

              try {

                     //hibernate 3 的方法

                     // configuration.configure(configFile);

                     // sessionFactory = configuration.buildSessionFactory();

                     //hibernate 4 的方法

                     serviceRegistry = new ServiceRegistryBuilder().applySettings(

                                   configuration.configure().getProperties())

                                   .buildServiceRegistry();

                     sessionFactory = configuration.buildSessionFactory(serviceRegistry);

              } catch (HibernateException e) {

                     System.err.println("%%%% Error Creating SessionFactory %%%%");

                     e.printStackTrace();

              }

       }

       private HibernateSessionFactory() {

       }

       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;

       }

       public static void rebuildSessionFactory() {

              try {

                     // configuration.configure(configFile);

                     // sessionFactory = configuration.buildSessionFactory();

                     serviceRegistry = new ServiceRegistryBuilder().applySettings(

                                   configuration.configure().getProperties())

                                   .buildServiceRegistry();

                     sessionFactory = configuration.buildSessionFactory(serviceRegistry);

              } catch (HibernateException e) {

                     System.err.println("%%%% Error Creating SessionFactory %%%%");

                     e.printStackTrace();

              }

       }

       public static void closeSession() throws HibernateException {

              Session session = (Session) threadLocal.get();

              threadLocal.set(null);

              if (session != null) {

                     session.close();

              }

       }

       public static org.hibernate.SessionFactory getSessionFactory() {

              return sessionFactory;

       }

       public static void setConfigFile(String configFile) {

              HibernateSessionFactory.configFile = configFile;

              sessionFactory = null;

       }

       public static Configuration getConfiguration() {

              return configuration;

       }

}

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值