`
不平凡的人
  • 浏览: 35674 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

spring boot+jpa实现简单的增删改查

 
阅读更多

本文简单介绍一下spring boot+JPA实现简单的增删改查功能

 

一、项目结构简述

二、搭建spring boot+jap环境

三、代码示例

四、spring boot的启动方式

 

一、项目结构简述

 

1、项目的目录结构注意点


 

问题说明:

①使用内置服务器启动springboot项目时,会从@SpringBootApplication修饰类所在的包开始,加载当前包和所有子包下的类,将由@Component @Repository @Service @Controller修饰的类交由spring进行管理;

②如上图,项目中的启动类为ApplacationController,他与其他层代码的处于同一个包下面,项目启动时会扫描到其他层的代码,就不会报如下错误(如果启动类所在的包与其它层代码所在的包处于平级目录中,即使启动类使用了@ComponentScan注解一样会报下面的错误):

Action: Consider defining a bean of type 'cn.oschina.dao.PersonRespority' in your configuration.

 

二、搭建spring boot+jap环境

 

1、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>cn.oschaina</groupId>
  <artifactId>simple-spring-boot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
        <!-- 添加Mysql和JPA-->  
        <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-data-jpa</artifactId>  
        </dependency>  
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.45</version>
</dependency>
</dependencies>
  
   <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
           <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
</project>

 

2、application.properites(或者是application.yml)

server.port=8081
server.context-path=/girl
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# Specify the DBMS  
#spring.jpa.database=MYSQL
# Hibernate ddl auto (create, create-drop, update)  
spring.jpa.hibernate.ddl-auto=update
# Show or not log for each sql query  
spring.jpa.show-sql=true
# 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

 

三、代码示例

 

1、代码示例

(1)启动类

package cn.oschina;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 应用启动类 自动扫描:
 * 
 * 使用内置服务器启动springboot项目时,会从@SpringBootApplication修饰类所在的包开始,加载当前包和所有子包下的类,
 * 
 * 将由@Component @Repository @Service @Controller修饰的类交由spring进行管理
 * 
 * @author Freedom
 * 
 */
@SpringBootApplication
public class ApplacationController {

	public static void main(String[] args) {
		ConfigurableApplicationContext context = SpringApplication.run(
				ApplacationController.class, args);
		String[] profiles = context.getEnvironment().getActiveProfiles();
		if (profiles != null) {
			for (String profile : profiles) {
				System.out.println("------------start with profile : "
						+ profile);
			}
		}
	}

}

 

(2)控制层

package cn.oschina.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import cn.oschina.entity.Person;
import cn.oschina.service.IPersonService;

@RestController
public class PersonController {

	@Autowired
	private IPersonService personService;

	@GetMapping(value = "/persons")
	public List<Person> persons() {
		return personService.findAll();
	}

	@GetMapping("/person/{id}")
	public Person getPersonById(@PathVariable("id") Integer id) {
		return personService.findOne(id);
	}

	@PostMapping("/save")
	public Person savaPerson(@RequestParam("name") String name,
			@RequestParam("age") Integer age) {

		Person p = new Person();
		p.setAge(age);
		p.setName(name);
		return personService.insert(p);
	}

	@PutMapping("/update/{id}")
	public Person updatePerson(@PathVariable("id") Integer id,
			@RequestParam("name") String name) {
		Person p = new Person();
		p.setId(id);
		p.setName(name);
		return personService.update(p);
	}

	@DeleteMapping("/delete/{id}")
	public void deletePerson(@PathVariable("id") Integer id) {
		personService.delete(id);
	}

}

(3)业务层

package cn.oschina.service;

import java.util.List;

import cn.oschina.entity.Person;

/**
 * 对表tbl_person的增删改查
 * 
 * @author Freedom
 * 
 */
public interface IPersonService {

	List<Person> findAll();

	Person findOne(Integer id);

	Person insert(Person p);

	Person update(Person p);

	void delete(Integer id);
}

 

 

package cn.oschina.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.oschina.dao.PersonRespority;
import cn.oschina.entity.Person;

/**
 * 对表tbl_person的增删改查
 * 
 * @author Freedom
 * 
 */
@Service
public class PersonService implements IPersonService {

	@Resource
	private PersonRespority personRespority;

	@Override
	public List<Person> findAll() {
		return personRespority.findAll();
	}

	@Override
	public Person findOne(Integer id) {
		return personRespority.findOne(id);
	}

	@Override
	public Person insert(Person p) {
		return personRespority.save(p);
	}

	/**
	 * 更新也是使用save()方法
	 */
	@Override
	public Person update(Person p) {
		return personRespority.save(p);
	}

	@Override
	public void delete(Integer id) {
		personRespority.delete(id);
	}

}

(4)数据访问层

package cn.oschina.dao;

import org.springframework.data.jpa.repository.JpaRepository;

import cn.oschina.entity.Person;

public interface PersonRespority extends JpaRepository<Person, Integer> {

}

   

(5)实体

package cn.oschina.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "tbl_person")
public class Person {

	@Id
	@GeneratedValue
	private int id;
	private String name;
	private int age;

	public Person() {
	}

	public int getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

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

}

 

2、运行分析

(1)POST请求时



 

(2)PUT方式请求说明



 

四、spring boot的启动方式

 

1、@SpringBootApplication注解的类,并且main函数中执行SpringApplication.run方法

public static void main(String[] args) {
		ConfigurableApplicationContext context = SpringApplication.run(
				ApplacationController.class, args);
		String[] profiles = context.getEnvironment().getActiveProfiles();
		if (profiles != null) {
			for (String profile : profiles) {
				System.out.println("------------start with profile : "
						+ profile);
			}
		}
	}

 

2、使用maven指令方式



①找到项目所在的根目录;

②执行mvn spring-boot:run指令;

 

 

 

 

  • 大小: 15.4 KB
  • 大小: 50.8 KB
  • 大小: 63.7 KB
  • 大小: 2 KB
分享到:
评论

相关推荐

    springboot+jpa+thymeleaf实现简单增删改查

    在本教程中,我们将深入探讨如何使用Spring Boot、JPA(Java Persistence API)以及Thymeleaf模板引擎实现一个简单的数据库操作,包括增删改查(CRUD)。Spring Boot简化了Java应用程序的开发过程,而JPA是Java平台...

    SpringBoot+JPA+thymeleaf框架实现增删改查分页显示

    SpringBoot+JPA+thymeleaf框架实现增删改查分页显示,前端通过bootstrap渲染

    Maven+SpringBoot+JPA单表增删改查实例

    本项目选择了"Maven+SpringBoot+JPA"这一技术栈,旨在提供一个简单的单表操作示例,帮助开发者快速理解如何在Spring Boot环境下使用Maven构建项目,并通过Spring Data JPA实现数据的增删改查功能。 首先,让我们...

    基于SpringBoot+Vue实现增删改查和分页查询DEMO(源码+数据库)

    springboot项目,基于SpringBoot+Vue实现增删改查分页DEMO(源码+数据库) 技术栈 数据库:MySQL 后端框架:SpringBoot+Spring Data JPA 前端框架:Vue-ElementUI

    spring boot+jpa+redis集群

    【标题】"spring boot+jpa+redis集群"的实现与应用 在现代互联网开发中,Spring Boot、JPA(Java Persistence API)以及Redis已经成为构建高效、可扩展的应用程序的常用技术栈。本项目结合这三个核心组件,旨在创建...

    Springboot+jpa+MySQL+HTML之简单的增删改查Demo

    在本文中,我们将深入探讨如何使用Spring Boot、JPA(Java Persistence API)和MySQL数据库来构建一个基础的增删改查(CRUD)应用程序。Spring Boot简化了Java应用的初始设置,而JPA则作为ORM(对象关系映射)工具,...

    springboot+jpa+thymeleaf增删改查示例

    你可以通过这个接口进行增删改查的操作,如`save()`, `findAll()`, `findById()`, 和 `delete()`。 为了将这些操作与Thymeleaf模板结合,你需要创建一系列的控制器方法。比如,`UserController`中可以有`listUsers...

    基于LayUI+Spring Boot+MySQL+JPA+Shiro的科研信息管理系统源码+项目说明+数据库.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、...基于LayUI+Spring Boot+MySQL+JPA+Shiro的科研信息管理系统源码+项目说明+数据库.zip

    SpringBoot+MyBatisPlus+Thymeleaf 增删改查CRUD

    在本项目中,"SpringBoot+MyBatisPlus+Thymeleaf 增删改查CRUD"是一个典型的Web开发应用,它整合了三个关键的技术框架:Spring Boot、MyBatis Plus和Thymeleaf。下面将详细介绍这三个组件以及它们在实现增删改查...

    spring boot+react 前后端分离实现增删改查

    本文将深入探讨如何使用React作为前端框架,Spring Boot作为后端微服务框架,结合MySQL数据库来实现一个完整的增删改查功能。 **React** 是Facebook开发的一个JavaScript库,用于构建用户界面,尤其适合构建单页面...

    JAVA的Spring boot + JPA进销存管理系统源码数据库 MySQL源码类型 WebForm

    Spring boot + JPA进销存管理系统源码 源码描述: 本系统基本完成了一个基于spring boot + JPA的进销存管理系统,主要实 现采购管理、库存管理、销售管理、查询统计、资料管理和系统管理功能。 本系统的实现依靠...

    基于SpringBoot2+Jpa+SpringSecurity+redis+Vue的前后端分离系统

    持久层框架:Spring boot Jpa 安全框架:Spring Security 缓存框架:Redis 日志打印:logback+log4jdbc 接口文档 swagger2 其他:fastjson,aop,MapStruct等。 页面框架:Vue 前端源码:eladmin-qt 后端源码:el...

    java + spring boot +jpa 拦截器分库分表demo

    这些测试应该覆盖各种可能的操作,如增删改查,确保拦截器能正确地处理不同的数据库交互。 总的来说,这个Demo为我们提供了一个基于Java、Spring Boot和JPA的分库分表实现示例。它涵盖了从JPA的基本使用到AOP拦截器...

    springboot+vue+bootstrap实现用户增删改查

    Spring Data JPA可以方便地实现数据库操作,通过@Entity注解定义实体类,@Repository定义数据访问接口,@Service进行业务逻辑处理,而@Controller处理HTTP请求并返回响应。 2. **Vue.js**: Vue.js是一种轻量级的...

    spring boot+jpa+sqlserver+bootstrap

    【标题】"Spring Boot + JPA + SQL Server + Bootstrap 整合应用" 【知识点详解】 在现代Web开发中,Spring Boot、JPA、SQL Server和Bootstrap是四个非常关键的技术组件,它们共同构建了一个高效、易用且功能强大...

    SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证

    本项目结合了SpringBoot、SpringSecurity以及JPA(Java Persistence API),实现了用户角色权限的登录认证功能。以下是关于这些技术及实现过程的详细讲解。 1. **SpringBoot**:SpringBoot简化了Spring应用的初始...

    spring-boot+shiro+jpa

    在IT领域,Spring Boot、JPA(Java Persistence API)和Shiro都是常见的技术框架,用于构建高效、便捷的Web应用程序。下面将详细解释这三个技术及其在"spring-boot+shiro+jpa"项目中的应用。 首先,Spring Boot是...

    spring boot+jpa+jsp(web)+hibernate

    整合这些技术,我们可以创建一个完整的Web应用流程:用户通过JSP页面发送请求,Spring Boot接收并路由请求,然后通过JPA和Hibernate与数据库交互,完成数据的增删改查操作,最后将结果返回给JSP页面进行展示。...

    spring boot+spring mvc+mybatis+thymeleaf整合开发学生成绩信息管理系统

    管理员可以对学生、教师信息增删改查。教师可以批改学生作业,并且通过echartjs对学生成绩汇总统计,横向比较可以查看某个班级某门课及格、优秀等成绩段占比。纵向比较可以查看某年级某门课程不同班级每个班级的平均...

    Spring Boot+MySQL+Mybatis+Maven+IDEA(一个简单的数据库增删改查项目)

    在本项目中,我们主要探讨的是如何利用Spring Boot、MySQL、Mybatis以及Maven这四大核心技术,配合IDEA集成开发环境来实现一个基础的数据库增删改查功能。这是一个典型的Web应用开发流程,旨在帮助开发者快速搭建...

Global site tag (gtag.js) - Google Analytics