spring boot随便记
这是一篇随手记录,不要太关心逻辑。
新建了一个Spring Boot工程,发现多了这个东西。
忘了配置mysql,启动报错,百度一下,结果没有官网。
上Google,第一条就是官网。真是神百度。
加上下面几句,mysql配置Ok。
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=root
启动后,访问localhost:8080,还是有问题
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-28 09:48:44.999 INFO 10956 --- [ restartedMain] com.example.demo.DemoApplication : Starting DemoApplication on DESKTOP-I5EFT4D with PID 10956 (D:\src\demo-for-spring-boot\out\production\classes started by pikachu in D:\src\demo-for-spring-boot)
2018-11-28 09:48:45.004 INFO 10956 --- [ restartedMain] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2018-11-28 09:48:45.073 INFO 10956 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2018-11-28 09:48:45.074 INFO 10956 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2018-11-28 09:48:46.286 WARN 10956 --- [ restartedMain] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.example.demo]' package. Please check your configuration.
2018-11-28 09:48:47.411 INFO 10956 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-11-28 09:48:47.426 INFO 10956 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-11-28 09:48:47.426 INFO 10956 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-11-28 09:48:47.432 INFO 10956 --- [ restartedMain] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [D:\Program Files\Java\jdk1.8.0_171\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\Users\pikachu\AppData\Local\Programs\Python\Python37\Scripts\;D:\Users\pikachu\AppData\Local\Programs\Python\Python37\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\dev\Git\cmd;D:\dev\CMake\bin;D:\dev\PuTTY\;D:\dev\WinSCP\;D:\dev\apache-ant-1.10.1\bin;D:\dev\db-derby-10.13.1.1-bin\bin;D:\dev\glassfish5\bin;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Program Files\Java\jdk1.8.0_171\jre\bin;D:\dev\Java\jre1.8.0_144\bin;C:\Program Files\dotnet\;D:\dev\Android\SDK\platform-tools;C:\Program Files (x86)\Pandoc\;D:\dev\Qt\Qt5.9.2\5.9.2\mingw53_32\bin;D:\Program Files\MongoDB\Server\3.4\bin;D:\program\aspectj1.9\bin;D:\Program Files\nodejs\;D:\Program Files (x86)\Yarn\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\pikachu\AppData\Local\Microsoft\WindowsApps;C:\Users\pikachu\AppData\Local\atom\bin;d:\texlive\2017\bin\win32;C:\Users\pikachu\AppData\Roaming\npm;C:\Users\pikachu\AppData\Local\Yarn\bin;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;;.]
2018-11-28 09:48:47.574 INFO 10956 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-11-28 09:48:47.574 INFO 10956 --- [ restartedMain] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2497 ms
2018-11-28 09:48:47.598 INFO 10956 --- [ restartedMain] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-28 09:48:47.602 INFO 10956 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-28 09:48:47.603 INFO 10956 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-28 09:48:47.603 INFO 10956 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-28 09:48:47.603 INFO 10956 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-28 09:48:47.887 INFO 10956 --- [ restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-28 09:48:48.195 INFO 10956 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2018-11-28 09:48:48.358 INFO 10956 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-28 09:48:48.361 INFO 10956 --- [ restartedMain] com.example.demo.DemoApplication : Started DemoApplication in 3.892 seconds (JVM running for 5.855)
2018-11-28 09:49:37.544 INFO 10956 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2018-11-28 09:49:37.544 INFO 10956 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2018-11-28 09:49:37.553 INFO 10956 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 9 ms
简单加一个Controller
@RestController
public class MainController {
@GetMapping("/")
public static String index() {
return "Hello, Spring Boot";
}
}
刷新网页,居然没反应,可恶,居然没有热重载。
我有安装devtool呀
上Google,不敢用百度,Google没结果再回百度,这种事情,谁说得好呢?
按照这篇文章(Intellij IDEA 使用Spring-boot-devTools无效解决办法)所说的配置好,重启后,发现自动帮我启动了Spring Boot。然后又试着加了一个路由,按保存,过了一会儿,的确自动重启了,能访问新加的路由了。
2018-11-28 10:01:07.972 INFO 1476 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2018-11-28 10:01:07.973 INFO 1476 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2018-11-28 10:01:07.980 INFO 1476 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 7 ms
2018-11-28 10:02:11.740 INFO 1476 --- [ Thread-29] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-28 10:02:12.866 INFO 1476 --- [ restartedMain] com.example.demo.DemoApplication : Starting DemoApplication on DESKTOP-I5EFT4D with PID 1476 (D:\src\demo-for-spring-boot\out\production\classes started by pikachu in D:\src\demo-for-spring-boot)
2018-11-28 10:02:12.867 INFO 1476 --- [ restartedMain] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2018-11-28 10:02:13.304 WARN 1476 --- [ restartedMain] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.example.demo]' package. Please check your configuration.
2018-11-28 10:02:13.595 INFO 1476 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-11-28 10:02:13.596 INFO 1476 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-11-28 10:02:13.596 INFO 1476 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-11-28 10:02:13.680 INFO 1476 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-11-28 10:02:13.681 INFO 1476 --- [ restartedMain] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 811 ms
2018-11-28 10:02:13.692 INFO 1476 --- [ restartedMain] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-28 10:02:13.693 INFO 1476 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-28 10:02:13.693 INFO 1476 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-28 10:02:13.693 INFO 1476 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-28 10:02:13.693 INFO 1476 --- [ restartedMain] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-28 10:02:13.777 INFO 1476 --- [ restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-28 10:02:13.962 INFO 1476 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2018-11-28 10:02:13.993 INFO 1476 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-28 10:02:13.994 INFO 1476 --- [ restartedMain] com.example.demo.DemoApplication : Started DemoApplication in 1.172 seconds (JVM running for 153.142)
2018-11-28 10:02:13.998 INFO 1476 --- [ restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
2018-11-28 10:02:25.354 INFO 1476 --- [nio-8080-exec-3] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2018-11-28 10:02:25.355 INFO 1476 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2018-11-28 10:02:25.361 INFO 1476 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : Completed initialization in 6 ms
发现IDEA一个新东西,一点就报错。
接下来做数据库了,可我没有数据库数据。
想起老早以前学习的jpetstore-6,那就把数据库抄过来吧。
创建表的sql: jpetstore-hsqldb-schema.sql
吐槽一下****的编辑器,差点误事
有了数据库表后,应该根据数据库表,方向生成类。
这里做了好久,没出什么结果,百度一下,抄点什么东西过来,?。generatorConfig.xml
文件需要用mysql驱动,everything搜一下
反向生成时报错
Exception in thread "main" java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
使用下面这个连接串Ok
jdbc:mysql://localhost:3306/demo?serverTimezone=UTC
生成出来的方法有点少,而且没有继承mapper通用接口
public interface AccountMapper {
int insert(Account record);
int insertSelective(Account record);
}
从数据库生成java类做了好久才做出来
最后用到的配置
生成配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--数据库驱动,最好不要有中文字符,不然会找不到
ps:即mybatis-generator-core-1.3.2.jar的本地地址
-->
<classPathEntry
location="D:/dev/gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/8.0.13/28015319e44ff50a8fee655e725fefc4990abeb1/mysql-connector-java-8.0.13.jar" />
<context id="MySQLTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/demo?serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.example.demo.entity" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.example.demo.dao" targetProject="./src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成DaoMapper类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名,需要记住的一点是****无法生成关联关系,只能生成单表操作
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"
这些参数控制是否生成各张表对应的example example是什么,后面****生成结构里面说
不配置的话默认为true 一般配置成false
-->
<!-- 角色表 -->
<table tableName="account" domainObjectName="Account"></table>
<!-- 用户表 -->
<table tableName="bannerdata" domainObjectName="BannerData"></table>
<!-- 权限表 -->
<table tableName="category" domainObjectName="Category"></table>
<table tableName="inventory" domainObjectName="Inventory"></table>
<table tableName="item" domainObjectName="Item"></table>
<table tableName="lineitem" domainObjectName="LineItem"></table>
<table tableName="orders" domainObjectName="Order"></table>
<table tableName="orderstatus" domainObjectName="OrderStatus"></table>
<table tableName="product" domainObjectName="Product"></table>
<table tableName="profile" domainObjectName="Profile"></table>
<table tableName="sequence" domainObjectName="Sequence"></table>
<table tableName="signon" domainObjectName="SignOn"></table>
<table tableName="supplier" domainObjectName="Supplier"></table>
</context>
</generatorConfiguration>
java类
在这里插入代码片