maven 构建spring boot + mysql 的基础项目

一、maven 依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

    </dependencies>

二、配置文件 application.properties

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sbtest
spring.datasource.username=root
spring.datasource.password=1234
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy

三、建立Entity和Repository

1、Book 实体类

package com.casic.entity;

import javax.persistence.*;
import java.util.List;

@Entity
public class Book {
    @Id
    @GeneratedValue
    private Long id;
    private String isbn;
    private String title;
    private String description;

    @ManyToOne
    private Author author;
    @ManyToOne
    private Publisher publisher;

    @ManyToMany
    private List<Reviewer> reviewers;

    protected Book() { }

    public Book(Author author, String isbn, Publisher publisher, String title) {
        this.author = author;
        this.isbn = isbn;
        this.publisher = publisher;
        this.title = title;
    }
}

2、Author 实体类

package com.casic.entity;

import javax.persistence.*;
import java.util.List;

@Entity
public class Author {
    @Id
    @GeneratedValue
    private Long id;
    private String firstName;
    private String lastName;
    @OneToMany(mappedBy = "author")
    private List<Book> books;

    protected Author() {

    }

    public Author(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

3、Publisher 实体类

package com.casic.entity;

import javax.persistence.*;
import java.util.List;

@Entity
public class Publisher {
    @Id
    @GeneratedValue
    private Long id;
    private String name;

    @OneToMany(mappedBy = "publisher")
    private List<Book> books;

    protected Publisher() { }

    public Publisher(String name) {
        this.name = name;
    }

}

4、Reviewer

package com.casic.entity;
import javax.persistence.*;
@Entity
public class Reviewer {
    @Id
    @GeneratedValue
    private Long id;
    private String firstName;
    private String lastName;

    protected Reviewer() { }

    public Reviewer(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

5、BookRepository

package com.casic.repository;

import com.casic.entity.Book;
        import org.springframework.data.repository.CrudRepository;
        import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends CrudRepository<Book, Long> {
    Book findBookByIsbn(String isbn);
}

6、MyStartupRunner 命令行启动类

package com.casic.service;

import com.casic.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * 服务启动执行
 * @author   oftenlin
 */
@Component
public class MyStartupRunner implements CommandLineRunner {

    @Autowired
    private BookRepository bookRepository;
    @Override
    public void run(String... args) throws Exception {
        System.out.print("book count:"+bookRepository.count());
    }

}

7、启动类 MyApp

package com.casic;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;

@SpringBootApplication
public class MyApp{

    public static void main(String args[]) {
        SpringApplication.run(MyApp.class, args);
    }
}
时间: 2025-01-15 06:51:05

maven 构建spring boot + mysql 的基础项目的相关文章

spring boot 依赖环境和项目结构介绍

1.环境介绍 使用 Spring Boot 开发项目需要有两个基础环境和一个开发工具,这两个环境是指 Java 编译环境和构建工具环境,一个开发工具是指 IDE 开发工具. Spring Boot 2.0 要求 Java 8 作为最低版本,需要在本机安装 JDK 1.8 并进行环境变量配置,同时需要安装构建工具编译 Spring Boot 项目,最后准备个顺手的 IDE 开发工具即可. 1.1.构建工具 构建工具是一个把源代码生成可执行应用程序的自动化工具,Java 领域中主要有三大构建工具:A

Maven 搭建spring boot多模块项目

Maven 搭建spring boot多模块项目 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖 都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(module) 2-1: file

Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档

随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多.通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:IOS开发.Android开发.Web开发甚至其他的后端服务等.为了减少与其他团队平时开发期间的频繁沟通成本,传统做法就是创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题: 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型.HTTP头部信息.HTTP请求内容

构建 Zookeep + Dubbo + Spring Boot 的分布式调用项目(一)

一.写在前头 在开始构建前,默认你已经能够成功安装并启动 Zookeeper 注册中心,能够成功安装并启动 Dubbo 控制台: 在本例中,我的 Zookeeper 注册中心 IP 地址为 192.168.10.41,端口号为 4183,Dubbo 控制台的访问地址为 http://192.168.10.41:8080: 为了体现分布式调用,本例中创建了以下两个项目,dubbo-consumer 远程调用 dubbo-provider 提供的服务: dubbo-provider        

[转] 使用Spring Boot和Gradle创建项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 创建项目 你可以通过 Spring I

Springboot(一):使用Intellij中的Spring Initializr来快速构建Spring Boot工程

使用Intellij中的Spring Initializr来快速构建Spring Boot工程 New---Project 可以看到图所示的创建功能窗口.其中Initial Service Url指向的地址就是Spring官方提供的Spring Initializr工具地址,所以这里创建的工程实际上也是基于它的Web工具来实现的,也可以将此地址copy到浏览器上试一下,会生成spring boot的项目工程下载 Next,下图可以看到可以编辑我们所创建的工程信息,type类型,language语

Spring Boot 2.x基础教程:使用国产数据库连接池Druid

上一节,我们介绍了Spring Boot在JDBC模块中自动化配置使用的默认数据源HikariCP.接下来这一节,我们将介绍另外一个被广泛应用的开源数据源:Druid. Druid是由阿里巴巴数据库事业部出品的开源项目.它除了是一个高性能数据库连接池之外,更是一个自带监控的数据库连接池.虽然HikariCP已经很优秀,但是对于国内用户来说,可能对于Druid更为熟悉.所以,对于如何在Spring Boot中使用Druid是后端开发人员必须要掌握的基本技能. 配置Druid数据源 这一节的实践我们

在eclipse中安装maven和spring boot

在eclipse中安装maven和spring boot 1.打开help->install new software 2.点Add,Name(maven),Location(http://download.eclipse.org/technology/m2e/releases),OK,select然后next到安装中,等待安装完成. 3.新建maven项目 File->New->Project, 选择Maven Project next到 输入artifact id(项目名).grou

spring cloud和spring boot两个完整项目

spring cloud和spring boot两个完整项目 spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka.Fegin.Ribbon.Zuul.Hystrix.Security.OAth.Mybatis.Ace-cache等主要框架和中间件,UI采用Bootstrap.jquery等前端组件. spring boot项目是使用spring boot + thymeleaf 开发个人博客项目. CSDN下载地址: https://do