###実現したいこと
SpringBoot初心者です。現在、「Spring解体新書第2版」を用いて、Spring Bootの学習をしています。
その中で、MayBatisを使用してデータベースを操作するというセクションがあるのですが、
そこで現在つまづいています。
結論↓
アプリケーションを実行すると、エラーが発生し、動作しない状態でございます。
内容を下記に載せますので、どうかご教授いただけないでしょうか。
###エラー内容
// エラー内容 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scriptDataSourceInitializer' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationConfiguration$SharedCredentialsDataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #2 of class path resource [schema.sql]: # ユーザーマスタ CREATE TABLE IF NOT EXISTS m_user (user_id VARCHAR(50) PRIMARY KEY, password VARCHAR(100), user_name VARCHAR(50), birthday DATE, age INT, gender INT, department_id INT, role VARCHAR(50)); nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: SQLステートメントに文法エラーがあります "[*]# ユーザーマスタ CREATE TABLE IF NOT EXISTS M_USER (USER_ID VARCHAR(50) PRIMARY KEY, PASSWORD VARCHAR(100), USER_NAME VARCHAR(50), BIRTHDAY DATE, AGE INT, GENDER INT, DEPARTMENT_ID INT, ROLE VARCHAR(50))" Syntax error in SQL statement "[*]# ユーザーマスタ CREATE TABLE IF NOT EXISTS M_USER (USER_ID VARCHAR(50) PRIMARY KEY, PASSWORD VARCHAR(100), USER_NAME VARCHAR(50), BIRTHDAY DATE, AGE INT, GENDER INT, DEPARTMENT_ID INT, ROLE VARCHAR(50))"; SQL statement:
schemaSql
1CREATE TABLE IF NOT EXISTS employee (id VARCHAR(50) PRIMARY KEY, name VARCHAR(50), age INT); 2 3# ユーザーマスタ 4CREATE TABLE IF NOT EXISTS m_user (user_id VARCHAR(50) PRIMARY KEY, password VARCHAR(100), user_name VARCHAR(50), birthday DATE, age INT, gender INT, department_id INT, role VARCHAR(50)); 5 6# 部署マスタ 7CREATE TABLE IF NOT EXISTS m_department (department_id INT PRIMARY KEY, department_name VARCHAR(50)); 8 9# 給料テーブル 10CREATE TABLE IF NOT EXISTS t_salary (user_id VARCHAR(50), year_monthes VARCHAR(50), salary INT, PRIMARY KEY(user_id, year_monthes));
dataSql
1INSERT INTO employee (id, name, age) VALUES('1', 'Tom', 30); 2 3# ユーザーマスタ 4INSERT INTO m_user 5( 6 user_id, 7 password, 8 user_name, 9 birthday, 10 age, 11 gender, 12 department_id, 13 role 14) 15 VALUES 16( 17 'system@co.jp', 18 'password', 19 'システム管理者', 20 '2000-01-01', 21 21, 22 1, 23 1, 24 'ROLE_ADMIN' 25), 26( 27 'user@co.jp', 28 'password', 29 'ユーザー1', 30 '2000-01-01', 31 21, 32 2, 33 2, 34 'ROLE_GENERAL' 35); 36 37# 部署マスタ 38INSERT INTO m_department 39( 40 department_id, 41 department_name 42) 43 VALUES 44(1, 'システム管理部'), 45(2, '営業部'); 46 47# 給料テーブル 48INSERT INTO t_salay 49( 50 user_id, 51 year_monthes, 52 salay 53) 54 VALUES 55('user@co.jp', '2020/11', 280000), 56('user@co.jp', '2020/12', 290000), 57('user@co.jp', '2021/01', 300000);
applicationProperties
1spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 2spring.datasource.driver-class-name=org.h2.Driver 3spring.datasource.username=sa 4spring.datasource.password= 5spring.datasource.sql-script-encoding=UTF-8 6spring.datasource.initialize=true 7spring.datasource.schema=classpath:schema.sql 8spring.datasource.data=classpath:data.sql 9 10# H2DB 11spring.h2.console.enabled=true 12 13#message 14spring.messages.basename=i18n/messages,i18n/ValidationMessages 15 16# MyBatis 17mybatis.mapper-locations=classpath*:/mapper/h2/*.xml 18# Log Level 19logging.level.com.example.demo=debug
UserMapperXml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3<!-- Mapperとxmlのマッピング --> 4<mapper namespace="com.example.demo.repository.UserMapper"> 5 6 <!-- ユーザー1件登録 --> 7 <insert id="insertOne"> 8 insert into m_user 9 ( 10 user_id, 11 password, 12 user_name, 13 birthday, 14 age, 15 gender, 16 department_id, 17 role 18 ) 19 values 20 ( 21 #{userId}, 22 #{password}, 23 #{userName}, 24 #{birthday}, 25 #{age}, 26 #{gender}, 27 #{departmentId}, 28 #{role} 29 ) 30 </insert> 31</mapper> 32
###考えられること
明らかに「syntaxError」と出ているので、文法関係のエラーではないかと睨んでいるのですが、
文法、誤字脱字等は、特に見受けられませんでした。
また、他のサイトにはapplicationPropertiesの設定による影響というのもあったのですが、試しても変わらずです。
UserMapper.xmlを作成した際から、上記エラーが発生しました。
どうぞご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。