ハイベルナー【Springとの整合】

11634 ワード

前言
Springを使ってStruts 2と統合する方法を勉強しましたが、このブログではSpringを使ってヒップホップを統合する方法を説明します.
SpringとHibernateの統合のポイント:
  • Session FactoryオブジェクトをSpringに渡して作成
  • Hibernateの事務はSpringに任せて管理する
  • SpringとHibernateの統合手順
    jarパッケージを導入する
  • 接続池/データベースドライバ
  • Hibernate関連jar
  • Springコアバッグ(5個)
  • Spring aopバッグ(4個)
  • spring-orm-3.25.RELEASE.jar【springのhibernateへのサポート】
  • スプリング-tx-3.25.RELEASE.jar【事務関連】
  • 設定ファイル
  • hibernature.cfg.xml
  • bean.xml
  • bean.xml
    
    
    
    
    
    ヒベルナ.cfg.xml
    
    
        
        
    
            
            com.mysql.jdbc.Driver
            jdbc:mysql:///zhongfucheng
            root
            root
            
            org.hibernate.dialect.MySQL5Dialect
    
    
            
            
            true
            
            true
            
            create
    
        
    
    配置環境テストの構築
  • User
  • 
    package bb;
    
    /**
     * Created by ozc on 2017/5/15.
     */
    public class User {
    
        private String name;
        private String password;
        private int id;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    }
    
  • IUserインターフェース
  • 
    public interface IUser {
        void save();
    }
  • UserDao
  • 
    public class UserDao implements IUser {
    
        @Override
        public void save() {
    
        }
    
    }
  • user Service
  • 
    public class UserService {
        
        private UserDao userDao;
    
        public void save() {
            userDao.save();
        }
    }
    
    Spring環境をテストします
    まず、私たちはuserDao、userServiceのためにSpringを使ってオブジェクトを作成します.また、オブジェクトの依存関係を追加して、Springの環境が成功しているかどうか見てみます.
  • UserDaoの作成例--@@Repository
  • 
    @Repository
    public class UserDao implements IUser {
    
        @Override
        public void save() {
    
        }
    
    }
  • user Serviceの例を作成し、userDao属性
  • 
    
    @Service
    public class UserService {
    
        @Autowired
        private UserDao userDao;
    
        public void save() {
            userDao.save();
        }
    }
    
  • Springプロファイルに注釈スキャナー
  • 
    
    
    
    
        
    
    
  • テスト:userServiceオブジェクトの入手に成功し、userServiceオブジェクトにはuserDao属性が含まれている値
  • 
    public class Test2 {
    
        @Test
        public void test33() {
            ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");
    
    
            UserService userService = (UserService) ac.getBean("userService");
            System.out.println(userService);
        }
    }
    
    ハイベルナー環境をテストします.
  • マッピングプロファイル
  • 
    
    
    
    
    
        
            
                
            
            
            
        
    
    
  • メインプロファイルロードマップ
  • 
            
  • Session Factory、Session
  • 
    @Repository
    public class UserDao implements IUser {
    
        @Override
        public void save(User user) {
    
            //  SessionFactory
            SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
    
            //  Session
            Session session = sessionFactory.openSession();
            session.beginTransaction();
    
            session.save(user);
            
            session.getTransaction().commit();
            session.close();
        }
    
    }
  • 試験:
  • 
    public class Test2 {
    
        @Test
        public void test33() {
            ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");
    
    
            UserService userService = (UserService) ac.getBean("userService");
            userService.save(new User());
    
        }
    }
    Springを使ってSession Factoryオブジェクトを作成します.
    Springとヒップホップを統合するポイントの一つはSpringを使ってSession Factoryオブジェクトを作成することです.この中には三つの方法があります.Session Factoryを作成します.
    hibernateの主な配置ファイルを直接読み込む
    
        
        
            
            
            
        
    では、userDaoでは、私達自身でマニュアルでSession Factoryオブジェクトを作成しなくてもいいです.
    
    @Repository
    public class UserDao implements IUser {
    
    
        @Autowired
        private SessionFactory sessionFactory;
    
        @Override
        public void save(User user) {
    
            //  Session
            Session session = sessionFactory.openSession();
            session.beginTransaction();
    
            session.save(user);
    
            session.getTransaction().commit();
            session.close();
        }
    
    }
    接続池はSpring管理に渡します.
    私たちは、HibernateがC 3 P 0に対する接続池の支持度がSpringに及ばないことを知っていますので、Springの接続池を使用することができます.したがって、私たちはヒップホップの主な構成ファイルをロードし、Springのデータベース接続プールを使用します.
    つまり、一部はヒップホップ.cfg.xmlに配置され、一部はSpringファイルに配置されている.
        
        
            
            
            
            
            
            
            
            
        
    
    
        
        
    
            
            
            
        
    配置ファイルは全部Springに書いてあります.【推奨】
    上の部分はHibernateの主な配置ファイルをロードしています.一部分はSpringプロファイルを使用したデータベース接続池です.これはよくないです.Springで同じ管理を行うべきです.
    
    
    
    
    
        
        
            
            
            
            
            
            
            
            
        
    
    
        
        
    
            
    
            
            
                
                    org.hibernate.dialect.MySQLDialect
                    true
                    update
                
            
    
            
    
    
            
            
                
                    bb/User.hbm.xml
                
            
    
        
    
        
    
    
    私たちがオススメしているのはこのタイプを使うと、ヒップホップのプロファイルが少なくなります.そして管理を統一しやすいです.
    Spring管理事務
    これまで、私たちはヒップホッププログラミング式事務制御管理を利用してきました.Springとヒップホップネイトを統合するもう一つの鍵は、Springを使ってヒップホップネイトを事務管理することです.
        
        
    
            
            
        
    
        
        
    注意すべきなのは、SpringとHibernateを統合し、SpringはスレッドのSessionだけをサポートしており、マニュアルで構成する必要はありません.
    userDao
    
    @Repository
    public class UserDao implements IUser {
    
    
        @Autowired
        private SessionFactory sessionFactory;
    
        @Override
        public void save(User user) {
            sessionFactory.getCurrentSession().save(user);
        }
    
    }
    
    user Service追加@Transactional Hbernateに事務管理を追加しました.
    
    @Service
    @Transactional
    public class UserService {
    
        @Autowired
        private UserDao userDao;
    
        public void save(User user) {
            userDao.save(user);
        }
    }
    
    文章に間違いがあれば指摘を歓迎し、お互いに交流します.WeChatで技術記事を読むことに慣れています.より多くのJava資源を得ようとする学生は、WeChat公式アカウントに注目してください.