MyBatis+MySQL+Spring連用
31391 ワード
二つのブログを参考に記事を書いた。
https://kuzuro.blogspot.com
https://all-record.tistory.com
▲参考ブログ
1.基本設定
プロジェクトを作成したら、Propertisを右クリック→
Project FacetsでJava 1.8を変更する
続いて韓国文化の仕事を行います
src/main/WEB-INF/web.xmlに入ってコードを入れてください.<!-- 문자 인코딩 시작 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 문자 인코딩 끝 -->
2.ライブラリの設定
pom.xmlに入ったらjavaバージョンとspringフレームワークバージョンを変更します
pom.xmlでライブラリを設定します.
<!-- 문자 인코딩 시작 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 문자 인코딩 끝 -->
pom.xmlに入ったらjavaバージョンとspringフレームワークバージョンを変更します
pom.xmlでライブラリを設定します.
MySQL:MySQLライブラリ
MyBatis:MyBatisフレームワーク
MyBitis-spring:springとMybatisを接続するライブラリ
Spring-jdbc:jdbcライブラリ
Spring-test:スプリングとMybatisがバインドされているかどうかを確認します
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- MyBatis 3.4.1 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MyBatis-Spring -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- Spring-jdbc -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Spring-test -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Mybatis log -->
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
▲ pom.xmlコードpom.xml設定が完了したらroot-context.xmlに移動
Namespacesエントリをクリック
▲検査
やり直しroot-contextxmlのソースコードを返します.
DataSourceはMySQLへの接続を担当します.DataSourceはJDBC接続を扱う機能があるので、DBに関する作業が必要です.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- MySQL dataSource -->
<!--
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://데이터베이스 주소:포트번호/스키마이름?useSSL=false&serverTimezone=UTC">
</property>
<property name="username" value="MySQL 계정"></property>
<property name="password" value="비밀번호"></property>
</bean>
-->
<!-- 자신의 PC(로컬)에 MySql을 설치했을 경우 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/스키마이름?useSSL=false&serverTimezone=UTC">
</property>
<property name="username" value="아이디"></property>
<property name="password" value="비밀번호"></property>
</bean>
<!-- mybatis SqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>
[ソース]https://all-record.tistory.com/175[世界のすべての記録]
https://kuzuro.blogspot.com/2019/08/3.html
接続先がローカルの場合は127.0.0.1、後に3306と入力します.3306はMySQLのインストール時に指定されたポートで、変更がなければデフォルトは3306です.
3.テストの設定
root-context.xmlへの操作が完了したら、src/test/javaにMySQL ConnectionTestクラスとMySbasistTestクラスを作成します.
* MyBatisTest package jae.won.abc;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class MyBatisTest
{
@Inject
private SqlSessionFactory sqlFactory;
@Test
public void testFactory(){
System.out.println("\n >>>>>>>>>> sqlFactory 출력 : "+sqlFactory);
}
@Test
public void testSession() throws Exception{
try(SqlSession session = sqlFactory.openSession()){
System.out.println(" >>>>>>>>>> session 출력 : "+session+"\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
* MySQLConnectionpackage jae.won.abc;
import java.sql.Connection;
import javax.inject.Inject;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/**/root-context.xml" })
public class MySQLConnectionTest {
@Inject
private DataSource ds;
@Test
public void testConnection() throws Exception {
try (Connection con = ds.getConnection()) {
System.out.println("\n >>>>>>>>>> Connection 출력 : " + con + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下はmybatis-configからsrc/main/resourcesです.xmlを作成します.<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
次のマッパーを追加します.
src/main/resourcesでmappersフォルダ→O O O O Mapperを作成します.xmlの生成<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="namespace 입력">
</mapper>
JUnitの実行
これでコンソールウィンドウに表示されます.でも!!!私の状況は間違いです.Unable to load authentication plugin 'caching_sha2_password
この間違いです.エラーが発生した場合は、解決策をリンクに掛けます→エラー解決
▼現在実行中で、メイン画面の出力が正しければ成功.
package jae.won.abc;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class MyBatisTest
{
@Inject
private SqlSessionFactory sqlFactory;
@Test
public void testFactory(){
System.out.println("\n >>>>>>>>>> sqlFactory 출력 : "+sqlFactory);
}
@Test
public void testSession() throws Exception{
try(SqlSession session = sqlFactory.openSession()){
System.out.println(" >>>>>>>>>> session 출력 : "+session+"\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
package jae.won.abc;
import java.sql.Connection;
import javax.inject.Inject;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/**/root-context.xml" })
public class MySQLConnectionTest {
@Inject
private DataSource ds;
@Test
public void testConnection() throws Exception {
try (Connection con = ds.getConnection()) {
System.out.println("\n >>>>>>>>>> Connection 출력 : " + con + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="namespace 입력">
</mapper>
Unable to load authentication plugin 'caching_sha2_password
Reference
この問題について(MyBatis+MySQL+Spring連用), 我々は、より多くの情報をここで見つけました https://velog.io/@chajaewon95/MyBatis-MySQL-Spring-연동テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol