Hibernate初體驗

小編:管理員 536閱讀 2022.09.14

由于小編最近要接手一個用Hibernate寫的項目,所以就學了一下,如果之前學過Spring Date Jpa的小伙伴看起來應該很簡單!

Hibernate簡介

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。 ---------->來自百度

基于注解創建實體

@Entity  //實體映射
@Table(name = "user")  //數據庫表白
public class User {
 
 @Id //主鍵id
 @GeneratedValue //主鍵生成方式
 private int id;
 
 @Column(name = "name") //字段名
 private String name;
 
 @Column(name = "pwd")
 private String pwd;
 
 @Column(name = "adder")
 private String adder;
 
 @Column(name = "age")
 private int age;
 
 @Column(name = "salary")
 private double salary;
復制

}

注:正規寫法是將注解寫在屬性的get方法上

創建Dao

import com.yanghj.ssh.entity.User;

/**
* @ClassName: UserRepository  
* @Description: UserDao  
* @author yang hai ji  
* @date 2018年6月7日
*/
public interface UserRepository {

 //查詢所有用戶
 User findUser ();
}
復制

Dao實現

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.yanghj.ssh.entity.User;
import com.yanghj.ssh.repository.UserRepository;

/**
* 
* @ClassName: UserRepositoryImpl
* @Description: 用戶dao層實現
* @author yang hai ji
* @date 2018年6月7日
*/
@Repository
public class UserRepositoryImpl implements UserRepository {

 @Autowired
 private SessionFactory sessionFactory;

 private Session getCurrentSession() {
   return this.sessionFactory.openSession();
 }

 @Override
 public User findUser() {
   return (User) getCurrentSession().get(User.class, 1);
 }
 }
復制

ServiceImpl

/**
* @ClassName: UserServiceImpl  
* @Description:  用戶Service實現
* @author yang hai ji  
* @date 2018年6月7日
*/
@Service
public class UserServiceImpl implements UserService {

 @Autowired
 private UserRepository userRepository;
 
 @Override
 public User findUser() {
   return userRepository.findUser();
 }
}
復制

Controller展示

/**
 * @Title: findUser  
 * @Description: 根據id查詢用戶 
 * @param @return    參數  
 * @return User    返回類型  
 * @throws
 */
 @RequestMapping("/findUser")
 @ResponseBody
 public User findUser(){
    return userService.findUser();
 }
復制

Spring+Hibernate

Spring + Hibernate



  
  
      
      
  

  
  

  
  
        
           
         
         
            
             
            
        
  

  
  
      
      
      
          
              ${hibernate.hbm2ddl.auto} 
              ${hibernate.dialect}   
              ${hibernate.show_sql}     
              ${hibernate.format_sql}     
          
      
  

  
  
      
  

復制

SpringMvc



  
  

  
  

  
  
      
            
         
  

  
  
  
  

復制

最終效果

這是Hibernate自動生成的Sql語句哦,我們不需要編寫!

瀏覽器效果

以上內容希望對大家有幫助,初學,希望大家多多指教!

END

關聯標簽:
亚洲国产欧美图片,亚洲aⅴ在线av,日韩亚洲综合图片视频,日本av精品在线中文