Spring Boot整合Spring-data-JPA

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33248299/article/details/83504761

一.整合Spring-data-JPA

  • JPA(Java Persistence API的简称,中文名Java持久层API)
  • 基于注解来去配置映射,实体类,数据库表的规范(增删改查的规范)

1.需求

  • 使用Spring Boot + Spring MVC + Spring Data JPA + EasyUI 框架组合实现部门列表查询
  • 先创建一个数据库,并加入点数据来进行操作
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(100) DEFAULT NULL COMMENT '用户名',
  `password` varchar(100) DEFAULT NULL COMMENT '密码',
  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUES ('1', 'zhangsan', '123456', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123456', '李四');
INSERT INTO `user` VALUES ('3', 'wangwu', '123456', '王五');
INSERT INTO `user` VALUES ('4', 'zhangwei', '123456', '张伟');
INSERT INTO `user` VALUES ('5', 'lina', '123456', '李娜');
INSERT INTO `user` VALUES ('6', 'lilei', '123456', '李磊');

2.创建Maven工程(打jar包)

  • 在pom.xml中进行如下配置
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>it.playmaker</groupId>
  <artifactId>SpringBoot-play</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.RELEASE</version>
	</parent>
	
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		
		<dependency>
		     <groupId>org.springframework.boot</groupId>
		      <artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		
		<dependency>
		      <groupId>mysql</groupId>
		      <artifactId>mysql-connector-java</artifactId>
		</dependency>

		
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<!--这些地方不写版本号的原因在于会自动匹配合适版本-->
			</plugin>
		</plugins>
	</build>
	
</project>

3.加入Spring-Boot配置文件

  • application.properties
  • 此文件用于覆盖Spring Boot的默认配置
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxx?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=xxxxx

#JPA Configuration:
spring.jpa.database=mysql
spring.jpa.show-sql=true  
spring.jpa.generate-ddl=true  #是否自动生成ddl
spring.jpa.hibernate.ddl-auto=update   #生成ddl的方式
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy  #选择的命名策略
(1).后端实现
  • 创建实体类
@Entity
@Table(name="s_user")//对应表
public class User {
	 @Id
	 @Column(name="id")
	 @GeneratedValue(strategy=GenerationType.IDENTITY)//自增长
     private Long id;
	 
	 @Column(name="user_name")//在windows系统下mysql不区分大小写。在Linux系统下,区分大小写
     private String user_name;
	 
	 @Column(name="password")
     private String password;
	 
	 @Column(name="name")
     private String name;
	 
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getUser_name() {
		return user_name;
	}
	public void setUser_name(String user_name) {
		this.user_name = user_name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", user_name=" + user_name + ", password=" + password + ", name=" + name + "]";
	}
     
}

  • 创建DAO接口
/*
 * 用户持久层接口
 */
@Repository("userDao")
public interface IUserDao extends JpaRepository<User,Long>{//在持久层接口:如果用Spring data-JPA不想写一些没用方法
这个时候简便方式,让JPA来实现,继承一个接口。参数分别是你要操作哪个类,你的实体类主键数据类型

    /*
     * 查询所有用户
     */
	//List<User> findAll(); 继承了这个接口就不用写了
}

  • 创建业务逻辑接口
public interface IUserService {
       
	//查询所有用户
	List<User> findAllUser();
}

  • 创建业务逻辑实现类
@Service("userService")
public class UserServiceImpl implements IUserService {

	@Autowired
	private IUserDao userDao;
	
	@Override
	public List<User> findAllUser() {
		// TODO Auto-generated method stub
		return userDao.findAll();
	}

}
  • 创建Controller
/*
 * 用户的控制器
 */
@RestController
@RequestMapping("/user")
public class UserController {
	
    @Autowired
	private IUserService userService;
	@RequestMapping("/findAll")
	public List<User> findAllUser(){
		
		List<User> users = userService.findAllUser();
		return users;
	}
}

  • 创建引导类(注意引导类所放的包)
/*
 * spring boot引导类
 */
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);

	}

}
  • 打开浏览器访问http://localhost:8080/user/findAll
  • 页面显示的就是JSON格式的数据
    在这里插入图片描述
(2).前端实现
  • Spring Boot支持我们编写html,jsp文件的
  • static文件夹内容.
  • user.html(要放在配置文件下的static文件夹中)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" content="text/html;charset=UTF-8">
<title>人员信息</title>
<link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css">
<script type="text/javascript" src="ui/jquery.min.js"></script>
<script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="ui/locate/easyui-lang-zh_CN.js"></script>
<script type="text/javascript">
          $(function() {
        	$('#grid').datagrid({
        		url:'user/findAll',//要与控制器下的地址一致
        		columns:[[{
        			field:'id',
        			title:'编号',
        			width:50
        		},{
        			field:'name',
        			title:'姓名',
        			width:100
        		},{
        			field:'user_name',
        			title:'账号',
        			width:200
        		}]]
        	});  
          });

</script>
</head>
<body>
       <table id="grid"></table>
</body>
</html>
  • 之后我们直接访问http://localhost:8080/user.html
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33248299/article/details/83504761