springboot整合hibernate以及实体类自动化
- 第一步引入pom.xml依赖和application.properties信息
pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.13.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.hanweb</groupId> <artifactId>bbts</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
application.properties:
server.port=8081 #mysql spring.datasource.url=jdbc:mysql://localhost:3306/demo?useunicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=admine spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 # Specify the DBMS spring.jpa.database = MYSQL # Show or not log for each sql query spring.jpa.show-sql = true # Hibernate ddl auto (create, create-drop, update) spring.jpa.hibernate.ddl-auto = update # Naming strategy spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy # stripped before adding them to the entity manager spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
- 第二步建实体类

package com.example.bbts.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; import javax.persistence.Table; /** * * @author Administrator * */ import com.example.bbts.common.Tables; @Entity @Table(name = Tables.STUDENT) public class Student implements Serializable { /** * 持久化参数 */ private static final long serialVersionUID = -8447170587360305408L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column(name = "name") private String name; @Column(name = "age") private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
- 第三步建立完整的mvc层
controller层:

package com.example.bbts.controller; import java.util.HashMap; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.example.bbts.entity.Student; import com.example.bbts.service.StudentService; /** * * @author Administrator * */ @RestController public class StudentController { @Autowired private StudentService studentService; @RequestMapping(value="/student") public HashMap<String, Object> getStudentList() { HashMap<String,Object> map = new HashMap<String, Object>(); List<Student> list = studentService.get(); map.put("student:", list); map.put("total", list.size()); return map; } }
service层

@Service public class StudentService { @Autowired private StudentDao studentDao; /** * * @return */ public List<Student> get(){ List<Student> list = studentDao.findAll(); return list; } }
dao层(看好了兄弟),看好了再回来跟你说一下啊,hibernate是全自动orm持久层框架,所以他已经封装了很多增删改查的方法,只需要直接调取就行了。如果非要自己写,那就session实例,在query塞入语句,进行操作。

package com.example.bbts.dao; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.example.bbts.entity.Student; /** * * @author Administrator * */ @Repository public interface StudentDao extends JpaRepository<Student, Integer>{ }
- 最重要的一步
- 展示效果
本文来自博客园,作者:土木转行的人才,转载请注明原文链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现