搭建ssm项目记录错误,并记录解决办法
一、无法正常启动启动Tomcat
1.1.检查了有没有Tomcat的jar。
1.2.检查pom.xml中是否引入了servlet。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
1.3 确认maven本地jar包是否正常
二、无法正常导入依赖
2.1 检查spring-mvc.xml 是否添加驱动以及是否注名包扫描的位置
<!-- 添加注解驱动 -->
<mvc:annotation-driven />
<mvc:default-servlet-handler/>
<!-- 设置使用注解的类所在的包 -->
<context:component-scan base-package="com.ssm" />
2.2 检查applicationContext.xml 扫描是否正常
<!-- 使用注解式注入 -->
<context:annotation-config />
<!-- 自动扫描 -->
<context:component-scan base-package="com.ssm" />
2.3 检查web.xml 中是否加载了spring bean
<!-- 加载spring bean -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
三、连接数据库时报错not fond 'com.mysql.jdbc.Driver '
3.1. 检查是否引入了jar包
3.2. 检查jdbc.properties文件
发现后面多了几个空格
jdbc.driverClassName=com.mysql.jdbc.Driver,这一句配置 后面有几个空格
四、插入数据到mysql报错java.math.BigInteger cannot be cast to java.lang.Long
各种测试各种网上找原因,都是说类型转换问题。
后面查了一下数据库问题,由于我安装的是较新的MySQL 8.0.11 发现这个版本有新特性:
4.1 新版本的驱动类变了
修改jdbc.properties文件:
driver=com.mysql.cj.jdbc.Driver
4.2 maven引入的驱动版本跟不上
需要引入8.0.11的版本 mysql-connector-java-8.0.11
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
修改完毕上面两点后,测试,报以下错误:
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.
需要设置时区
4.3 修改时区
修改jdbc.properties文件:
url=jdbc:mysql://172.16.10.203:3306/test?useSSL=false&serverTimezone=UTC
至此,成功把数据插入了数据库:
附上jdbc.properties文件:
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://172.16.10.203:3306/test?useSSL=false&serverTimezone=UTC
username=testproj
password=abc123
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000