作者:香港君媚儿上官燕_803 | 来源:互联网 | 2023-09-18 22:50
一. 配置spring的jdbc的pom.xml遇到报错 missing artifactXXXXX。
修改dependency的版本如下
org.springframework
spring-jdbc
3.1.1.RELEASE
二.代码的execute执行方法报错,增加dependency如下:
org.springframework
spring-tx
4.3.20.RELEASE
三.代码执行报错 Caused by: org.xml.sax.SAXParseException;
原因是设置的数据库的密码太复杂了,可能有一些标识符识别的问题,修改了一下数据库的密码。
四.xml中的mysql的driver的jar包没有导入,导致不能识别
增加dependency
mysql
mysql-connector-java
8.0.15
其中还有一个问题,新增的这个connector的包版本比较新,报了一个错误:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.需要把xml中的value更新一下。
五.xml中配置的mysql的库是spring,数据库中并没有创建,出现报错:Could not get JDBC Connection; nested exception is java.sql.SQLSyntaxErrorException: Unknown database 'spring'
在mysql中创建一个spring的数据库就可以了
六.报错Could not get JDBC Connection; nested exception is 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.
原因是mysql的时区设置有问题,需要在mysql中修改。
打开mysql的命令行,执行语句:
mysql> show variables like '%time_zone%';
mysql> set global time_zOne='+8:00'
七 示例代码
applicationContext.xml
JdbcTemplateTest.java
package com.itheima.jdbcTemplate;
import org.apache.catalina.core.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicatiOnContext=
new ClassPathXmlApplicationContext("com/itheima/jdbcTemplate/applicationContext.xml");
JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
jdTemplate.execute("create table account ( id int primary key auto_increment, username varchar(50), balance double)");
System.out.println("账户表account创建成功");
}
}
pom.xml
4.0.0
com.example
demo
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.1.0.RELEASE
spring-boot-yiibai
UTF-8
UTF-8
1.8
com.example.demo.DemoApplication
org.aspectj
aspectjrt
1.9.3
org.aspectj
aspectjweaver
1.9.3
junit
junit
4.12
test
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework
spring-aop
4.3.6.RELEASE
org.springframework
spring-jdbc
3.1.1.RELEASE
mysql
mysql-connector-java
8.0.15
org.springframework
spring-tx
4.3.20.RELEASE
com.spotify
docker-maven-plugin
1.0.0
${docker.image.prefix}/${project.artifactId}
src/main/docker
${project.build.directory}
${project.build.finalName}.jar
org.springframework.boot
spring-boot-maven-plugin
其他. xml的配置太复杂了,数据库配置应该剥离出来的,后面估计要改。
一个正常的创建类--类对应数据库的表--操作表的接口--实现表的接口--测试代码,这个是数据库操作和代码触发都写在实现接口中,以后mybatis会分离数据库操作和实现操作。