Spring Boot+Hibernate创建一个对MySQL实现简单的增删改查的功能。

1.数据库设计

create table User(
 u_id int auto_increment PRIMARY key,
 u_name varchar(20),
 u_pass varchar(20)
)
insert into User(u_name,u_pass) values("zhao",123456),("zhao1","112233")

2.创建一个Maven项目

 给pom.xml文件添加依赖(数据源配置文件省略)

   <!--添加MySQL数据库依赖-->
   <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <scope>runtime</scope>
   </dependency>
   <!--添加Hibernate的jpa依赖-->
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>

3.entity(User)

@Entity
public class User {
    
    
    @Id
    @GeneratedValue
    private Integer id;

    private String u_name;

    private String u_pass;
    //省略getter和setter方法
}

4.dao(UserRepository)

@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
    
    
 
    //自定义修改
    @Modifying //可以通过自定义的 JPQL 完成 UPDATE 和 DELETE 操作。
    @Transactional
    @Query("update User u set u.u_pass = :u_pass where u.id = :id")
    int updateUser(@Param("u_pass") String u_pass, @Param("id") Integer id);

    //自定义查询
    @Query("select t from User t where t.u_name = :u_name and t.u_pass= :u_pass")
    User selectUser(@Param("u_name") String u_name,@Param("u_pass")String u_pass);
}

5.controller(userController)

@RestController
public class UsersController {
    
    
    @Autowired
    UsersRepository usersRepository;

    /**
     * Hibernate自带添加的方法
     * @param users
     */
    @RequestMapping("save")
    public void save(User users){
    
    
      usersRepository.save(users);
    }
    /**
     * Hibernate自带根据id删除的方法
     * @param id
     */
    @RequestMapping("del")
    public void del(Integer id){
    
    
        usersRepository.deleteById(id);
    }
    /**
     * Hibernate实体类删除,每一个属性必须要与实体类中的属性一致
     * @param user
     */
    @RequestMapping("user")
    public void delUser(User user){
    
    
        usersRepository.delete(user);
    }
    /**
     * Hibernate自带的查询全部的方法
     * @return
     */
    @RequestMapping("find")
    public List<User> find(){
    
    
       List<User> userList = usersRepository.findAll();
        return userList;
    }
    /**
     * Hibernate自带的根据id查询详情
     * Optional,Java8新特性,使用Optional可以避免显示的null值判断
     * @param id
     * @return
     */
    @RequestMapping("findById")
    public Optional<User> findById(Integer id){
    
    
        Optional<User> user = usersRepository.findById(id);
        return user;
    }
    /**
     * Hibernate自带修改信息:修改实体类中的全部信息,如果有实体类中的属性没写
     * 则会为null
     * @param user
     */
    @RequestMapping("saves")
    public void saves(User user){
    
    
        usersRepository.save(user);
    }

    /**
     * 自己定义:用自己定义的修改方法根据id修改指定的属性,其它属性的值不变
     * @param u_pass
     * @param id
     */
    @RequestMapping("update")
    public void update(String u_pass,Integer id){
    
    
        usersRepository.updateUser(u_pass,id);
    }

    /**
     * 自己定义:根据自己定义的u_name和u_pass来查询
     * @param u_name
     * @param u_pass
     * @return
     */
    @RequestMapping("select")
    public User select(String u_name,String u_pass){
    
    
      User users = usersRepository.selectUser(u_name, u_pass);
      return users;
    }

}

总结:Hibernate有自己封装的增删改查的方法,同时也支持自己编写的hql语句,自定义的增删改查的方法。

猜你喜欢

转载自blog.csdn.net/javaasd/article/details/106008121