新建Spring Boot有JPA操作的项目的稳定操作

本文档详细介绍了如何创建一个Spring Boot项目并使用JPA进行数据库操作,包括pom.xml的修改、TestApplicationTests配置、application.properties设置以及解决数据库时间不一致、war打包、本地jar引用、服务器部署等问题。特别提醒,尽管部分内容基于较旧版本,但经过验证仍可正常使用。

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

首先新建一个Spring Boot项目,常规步骤如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本博客中,包名为blog,项目名为test
项目创建完成后修改以下文件:

pom.xml

  • 改为2.1.3.RELEASE,为了能用JPA
    在这里插入图片描述
  • 添加以下依赖
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
 </dependency>

 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
 </dependency>
  • 改好后右击pom.xml→Maven→Reimport

/src/test/java/com.blog.test/TestApplicationTests

替换为以下:

package com.blog.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplicationTests {

    @Test
    public void contextLoads() {
    }

}

/src/main/resources/application.properties

  • 重命名,把后缀名改成.yml,比较直观
  • 添加以下配置:
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://url/数据库名?characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password:
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

问题整理

  • 数据库存储的时间与前端收到的时间不一致:
    在实体类的Date属性上加上
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

还能方便规定格式,时区对应上面application.properties中数据库配置url的时区设置

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <scope>system</scope>
  <version>1.1</version> <!-- groupId、artifactId和version随便写就行,version在打包成war的时候必须要有 -->
  <systemPath>${basedir}/src/main/resources/lib/json-20190722.jar</systemPath>
</dependency>

2023年9月16日更新(上面内容为2020年2月总结,版本比较老,但是亲测还可以用就是警告比较多)

  • 部署后提示地址已在使用:springboot内嵌Tomcat服务器和服务器本地运行的Tomcat服务器冲突了,jar包部署的(jar包运行不需要通过本地Tomcat)可以关闭本地Tomcat,war包部署的项目就是因为没有去掉内嵌Tomcat服务器
    在这里插入图片描述

  • 部署后连接服务器本地数据库失败:
    如果大面积报错的下面包含这种ssl的报错
    在这里插入图片描述
    就在application文件中数据库的url最后面加入关闭ssl的代码
    url: jdbc:mysql://url/数据库名?characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false

  • 经过上面的debug,实践证明war包在部署时Tomcat的日志并不会包含springboot项目运行时的所有报错,一旦产生报错就会404,服务器的数据库也不会有相应的运行结果,jar包运行的方式更加适合看报错,而且运行方式更加简单

  • IDEA编写的springboot项目打包成jar:在用IDEA创建项目时选择打包方式为jar,然后用这篇文章的方法一:https://blog.youkuaiyun.com/weixin_57529171/article/details/122828418

  • ubuntu运行jar包:
    直接运行,退出远程连接时会停止运行,但是可以看日志和报错,适合测试时 java -jar jar包的绝对路径或者路径
    ubuntu后台运行jar包,不直接显示,作为一个进程运行,退出时不会停止运行:https://www.cnblogs.com/herd/p/17189329.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值