Hibernate初体验

小编:管理员 621阅读 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

关联标签: