SpringBoot+Hibernate简单示例

本文介绍了在Spring Boot背景下使用Hibernate进行数据库操作。Hibernate是Java数据持久化框架,自动化程度高。文章先阐述其思路,接着给出实例,包括前期引入jar包、建立Java实体与数据库表对应、创建Java接口实现SQL操作,最后通过controller调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate是java数据持久化的框架之一(还有一种常用的是Mybatis),自动化程度很高。

Hibernate的思路为:(仅仅只是理解的思路,代码真正运行的步骤并非如此)
第一步,连接数据库
第二步,java实体与数据库的table对应
第三部,java接口提供方法(方法与SQL语句对应)进行SQL语句操作

实例:
SpringBoot背景,可以先看之前的SpringBoot+Mybatis实例
https://blog.youkuaiyun.com/weixin_43751710/article/details/90256095

前期准备:

引入jar包(jpa就是hibernate的模式)

<!-- hibernate的jar包依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

application.yml

spring:
  datasource:
    url: ……
    username: ……
    password: ……
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    database: MYSQL
    show-sql: true
    hibernate:
      ddl-auto: update
      naming:
        strategy: org.hibernate.cfg.ImprovedNamingStrategy
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5Dialect

第一步,建立java实体Xuser与数据库table对应

目录结构:

在这里插入图片描述

package com.huoli.demo.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name = "xuser")
//@Table(name = "xuser")
public class Xuser implements Serializable
{
	@Id //注意在MySQL中,这个ID也必须设置为自动增长,如果是int类型的话
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "xuser_id")
	private int id;

	@Column(name = "xuser_name")
	private String name;

	@Column(name = "xuser_age")
	private int age;

	public int getId()
	{
		return id;
	}

	public String getName()
	{
		return name;
	}

	public int getAge()
	{
		return age;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public void setAge(int age)
	{
		this.age = age;
	}
}

第二步、创建java接口XuserRepository实现SQL语句操作

目录结构:

package com.huoli.demo.repository;

import java.util.List;

import javax.persistence.Table;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.huoli.demo.entity.Xuser;

@Repository("xuserRepository")
@Table(name = "xuser")
public interface XuserRepository extends JpaRepository<Xuser, Long>
{
	//public Xuser selectOne(int id);

	@Modifying
	@Transactional
	//@Query(value = "insert into xuser value(?,?,?)",nativeQuery = true)
	public Xuser save(Xuser xuser);

	/*
	 * 根据用户名查询
	 */
	@Query("select t from xuser t where t.name = :name") //这并非是SQL语句(虽然很像),其中的“t”也不可以换为“*”
	public List<Xuser> findByName(@Param("name") String name);

	/*
	 * 查询全部
	 * */
	//@Query("select t from xuser t")
	//List<Xuser> find();
}

第三步、通过controller调用

    @RequestMapping("addXuser")
	public void addXuser()
	{
		Xuser x = new Xuser();
		x.setId(521355);
		x.setName("xiang");
		x.setAge(18);
		xuserRepository.save(x);
	}

	@RequestMapping("findXuserByName")
	public List<Xuser> findXuserByName(String name)
	{
		return xuserRepository.findByName(name);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43751710

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值