maven 構建 mysql_Maven方式搭建SpringBoot项目by IntelliJ编辑器

本文详细介绍了如何使用SpringInitializr搭建SpringBoot项目,集成Maven、Web、MySQL和MyBatis依赖。讲解了编写HelloController测试类、动态参数使用、修改SpringBoot服务端口号、日志配置、打包发布以及处理数据库连接异常的方法。同时,讨论了Maven版本对项目影响及解决启动异常的策略。
摘要由CSDN通过智能技术生成

Step1: Spring Initializr入口配置sdk

340e0389559ed988d3592955c59778c6.png

Step2:配置Spring Boot

Type选择Maven Project

96c399f698d6b3541510146f13ffed2f.png

Step3:勾选Web依赖

ead02cc4f9f102d8133cc610242abab1.png

Step4: 勾选 SQl 下的 MySQL,MyBatis 依赖

5a95c14f4ce28a7ce6174fc41cce7448.png

Step5:选择项目位置

0ce256c5dc37687d0673e957e77f1c82.png

step6:项目目录结构

2f41d0caa290f370fad310f0668cc6e7.png

step7:编写测试类

package com.devops.syndb;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloController {

@RequestMapping("/")

public String hello() {

return "Hello Spring Boot!\nI am 硅谷课堂!";

}

}

动态参数的使用@RequestParam

package com.devops.syndb;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloController {

@RequestMapping("/")

public String hello() {

return "Hello Spring Boot!\nI am 硅谷课堂!";

}

@RequestMapping("/hello")

public String hello(@RequestParam(value="name",defaultValue = "World") String name) {

return String.format("Hello %s!",name);

}

}

step8:启动

b669da1da8b4b0608e54935a81ddda7d.png

step9:访问测试

c5deca7634253e26566091c1d0420cad.png

a150deba6c65f323496efc501190dfd1.png

如果maven配置不生效,重新刷新一下。

dc724527eb5d125e66b82da37bda7b7d.png

step10:最后,maven项目构建完成后,如何添加其他第三方jar包

项目构建完,往往随着项目的扩展还需要添加其他jar包到项目中如何做呢?

两种方式,如果大家知道还有其他的方法,欢迎交流分享

第一种:根据文件中的用到的第三方jar包类编译错误提示添加

比如我为了简化我entity类文件的代码,想引入lombok插件,鼠标悬停到错误代码Data上,就会有提示

“添加Maven依赖”

5c1c4bc1bf83ab03c61a9c8400cceca2.png

第二种:直接修改pom文件

到下面网站搜索到自己要加载的第三方jar包配置信息,拷贝到工程中的pom.xml文件中即可

f8f393b6e9f06ea0970552d7249abfb5.png

https://mvnrepository.com/

11、如何修改springboot服务端口号

springboot项目启动后默认占用的是8080端口,在一定场景下我们可能需要修改这个端口号,该如何修改呢?

修改application.properties文件,增加一行

server.port=9090 即可

12、打包springboot项目发布到服务器

815f53998b7d294334ce448936ddc8b7.png

打包启动

nohup java -jar SyncDataService-0.0.1-SNAPSHOT.war &

13、springboot项目通过logback.xml配置日志输出

(1)application.properties文件增加下面配置

logging.config=classpath:logback.xml

(2)logback.xml文件样例

%date{HH:mm:ss.SSS} [%thread] %-5level %logger{10} [%file:%line] - %msg%n

UTF-8

class="ch.qos.logback.core.rolling.RollingFileAppender">

%date{HH:mm:ss.SSS} [%thread] %-5level %logger{10} [%file:%line] - %msg%n

UTF-8

${LOG_PATH}/%d{yyyy-MM-dd}.log

10

14、logback.xml配置输出编译sql信息

简单的话,可以全局配置日志级别为debug,可这会导致控制台出现过多的无关信息,

调试程序的时候我们往往需要只看sql部分的debug信息,配置方式如下:

【异常】

1、新建demo,启动时异常(运行SyndataApplication类)

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

因为创建项目时加载了mysqlDriver依赖,所以需要配置数据源信息。demo项目暂时不需要连接数据源,所以可以通过

在启动类里设置忽略数据源即可解决问题(排除加载数据源配置信息就可以正常启动了)exclude={DataSourceAutoConfiguration.class}

5c704e7bdcbe2ae7cc859e5b07296c5b.png

2.编译正常,但无法运行

运行时控制台提示org.springframework.boot不存在,实际编译都正常的,报错了类可以关联出来的。

为什么会有这种错误,还没进一步跟踪。

如下图

797b0a021c018d340dd467e06ccd4580.png

解决方法:我将maven版本降级后就可以了。apache-maven-3.6.3降到了apache-maven-3.3.9这个版本。

另外,修改完配置后,项目要重新构建才能生效。

a772671dfaff2d6eeba2687c4ab8ae62.png

找到解决方案啦,哈哈2020-09-22

设置将IDE的构建和运行动作委托给Maven来执行就可以啦。

f9560702236ec0779f564c04025d37fc.png

3.mysql链接异常

数据库用mysql客户端可以正常连接,查库,查表都没有问题,但在项目中运行抛出异常

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.] with root cause

5454a9c9df80f911b5e4316b65950f60.png

后来经过排查,发现是驱动类的问题,驱动类,我的mysql版本过低com.mysql.cj.jdbc.Driver这个驱动类不能正常加载,这个驱动类支持高版本的mysql驱动。

我把驱动类换成了,com.mysql.jdbc.Driver就可以正常连接了,也就是说com.mysql.jdbc.Driver属于原生驱动,支持所有msyql驱动链接。

729b3bb261ee7d6a8ddc574e0b4848d7.png

我的数据库版本,确实非常老了

4.mybatis映射domain类没有给查询条件传值,查询条件却出现了默认值

数据类型不要使用原始数据类型int、long等,否则会默认给查询条件传值,请使用对象类型定义与表的映射关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值