[21.1.15]MyBatis設定


私たちはまず方法を作って、それから説明書を書きます.
@GetMapping("/product2")
public String product2(@ModelAttribute(name="vo") ProductVO vo) {
	LOGGER.info("product2() 호출");
	return "product-result";
}
@modelAttribute()が呼び出されない場合でも、呼び出されるたびにオブジェクトが作成されます.パラメトリックジェネレータの呼び出し
スプリングでは、クライアントが送信するパラメータ名とvoの変数名が同じである必要があります.
単一色調の形態ではありません.データの更新が必要なため、オブジェクトが作成されます.
クライアントからサーバにデータを送信する方法はparameterでもjson形式でもよい.

@ResponseBody


スプリング上でjson形式でデータを転送する際に使用する方法.
@GetMapping("/json2")
@ResponseBody
public String json2() {
	LOGGER.info("json2() 호출");
	return "Hello, Spring";
}
これまでreturn値はjspを返し、jspファイルを呼び出すのではなくProductVO vo=new ProductVO(name, price);を使用してString値を返した.
ajax非同期方式は主にデータのみを返すために使用される.
@GetMapping("/json3")
@ResponseBody
public ProductVO json3() {
	LOGGER.info("json3() 호출");
	return new ProductVO("야구공", 10000);
}
voが戻ると、@ResponseBody形式のデータがフロントエンドに送信される
jsonのkey-value形式で自動的にパケット化および転送されます.

MVC操作手順


  • Modelでは、フロントエンドコントローラ間でビューとコントローラを切り替えることができます.
  • mapperとmybatisはdbとcontrollerの簡単な接続を支援します
  • Spring MVCは、Webアプリケーションの迅速な開発を容易にします.
    xml、jsp、javaなどのプロジェクトのすべてのソースファイルは、バイトコード置換によって駆動されます.
    xmlでの設定はjavaで設定したり、切り替えたりできます
    これは区域を区切る約束にすぎない.

    MyBatisの設定

  • データベース連動フレームワーク
  • XMLはSQL文の設定と処理機能を提供する
  • 音声サポート-音声とインタフェースによるSQL文の設定と処理
  • 新しいプロジェクトが作成された場合は、{"name":"야구공","price":10000}の順に設定を適用します.

    pom.xmlアプリケーションライブラリから


    pom.xmlでバージョンを変更したがmavenに適用されなかった場合pom.xml->web.xml->root-context.xml->servlet-context.xmlpom.xmlのバージョンの変更フォロー

    その他のライブラリ

  • jdbcライブラリ
  • <!-- jdbc 라이브러리 -->
    <dependency>
    	<groupId>com.oracle</groupId>
    	<artifactId>ojdbc6</artifactId>
    	<version>11.2.0</version>
    </dependency>
  • MyBatisライブラリ
  • <!-- MyBatis 라이브러리 -->
    <dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis</artifactId>
    	<version>3.4.4</version>
    </dependency>
    mybatis-springライブラリ
    <!-- mybatis-spring 라이브러리 -->
    <dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis-spring</artifactId>
    	<version>1.3.1</version>
    </dependency>
    Spring-jdbcライブラリ
    <!-- spring-jdbc 라이브러리 -->
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-jdbc</artifactId>
    	<version>${org.springframework-version}</version>
    </dependency>
    設定は完了するが404が表示されると
    1.プロジェクトがサーバに追加されていることを確認

    root-context.xml設定の変更


    root-context.xmlでは、프로젝트->maven->update projectは、設定に関連するオブジェクトが集合していると見なすことができる.
  • 既存<beans>カバー
  • <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:mvc="http://www.springframework.org/schema/mvc"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
    https://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
  • <beans>追加-データソースを設定
  • <bean id="ds" class="oracle.jdbc.pool.OracleDataSource"	destroy-method="close">
    	<property name="dataSourceName" value="ds"></property>
    	<property name="URL" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
    	<property name="user" value="scott"></property>
    	<property name="password" value="tiger"></property>
    </bean>
  • <bean>追加-Sql Session Factory設定
    value値の<bean>classpathを表します.
  • <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="ds" />
    	<property name="configLocation" value="classpath:/mybatis-config.xml" />
    	<property name="mapperLocations" value="classpath:mappers/*.xml" />
    </bean>
  • src/main/resources生成src/main/resourcesファイル.
    既存のjavaで使用されているdb相関定数をこのファイルにマッピングします.
  • <?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>
    	<!-- DB 테이블과 컬럼들을 mapper 매핑을 위한 변수 선언 -->
    </configuration>  
  • mybatis-config.xmlフォルダを作成し、プロジェクトに関連するxmlファイルを作成
    掲示板mappers生成を作成するからです.クエリーやコントロール、beanなどのオブジェクト全体を設定します.
  • <?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="edu.spring.ex02.BoardMapper"></mapper>
    board-mapper.xml:主にDAOクラスsqlsessionを接続する鍵として使用される
  • namespace追加-Sqlセッションを設定
  • <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
    	<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
  • base-packageの下のクラスでは、<bean>で登録されたクラスが作成され、管理されます.
    サーバが起動すると、設定に関する必要な情報がサーバにアップロードされます.
    Persistence/ServiceLayerのコンポーネントクラスをbean
  • として登録
    <context:component-scan base-package="edu.spring.ex02"></context:component-scan>

    トリガが使用された瞬間


  • コメントテーブルと掲示板テーブルがある場合、掲示板テーブルにデータを追加すると、掲示板テーブルのコメント数列も自動的に変更する必要があります.

  • データを挿入すると、クエリにnextvalが含まれていなくても、シーケンスは自動的に実行されます.
  • これらのデータの自動接続をトリガーします.トリガを使用すると、時間差がある場合があります.
  • 2号
  • create or replace trigger test_board_bno_trigger
    before insert on test_board
    for each row
    begin
        select test_board_seq.nextval into :new.bno from dual;
    end;
  • トリガを作成し、titleとcontentをデータで変更するときに日付cdate列を変更時間
  • に変更します.
    create or replace trigger test_board_cdate_trigger
    before update of title, content on test_board
    for each row
    begin
        select sysdate into :new.cdate from dual;
    end;

    mybatis-config.xml


    変数を宣言してデータベース・テーブルとカラム名をマッピング

    property

  • name : mapper.xmlが使用する名前
  • value:DBテーブルとカラム名
  • <properties>
    	 <property name="test_board" value="test_board"/>
    	 <property name="bno" value="bno"/>
    	 <property name="title" value="title"/>
    	 <property name="content" value="content"/>
    	 <property name="userid" value="userid"/>
    	 <property name="cdate" value="cdate"/>
    	 <property name="reply_count" value="reply_count"/>
    </properties>

    マッパーフォルダ


    マッパーでのデータベース・クエリーの作成
  • @Component:主にDAOクラスsqlsessionの関数を接続するために使用されます.1:1照合
  • id:${key 이름}propertyのnameと一致します.データベース・テーブルのカラムに対応します.
  • mybatis-config.xml:DAOクラスのsqlsessionから送信されたデータを表す.(データ照会の?部分を入力)
    VOでgetter/setterを使用してデータをインポートします.
  • VOとDB名を接続する鍵名
  • mapperラベル:#{key 이름},<insert>,<select>,<update>,<delete>DAOが使用するsqlsessionの関数(insert、selectOne、selectList、update、delete)に従って実行します.
  • 来週の予告
    ユニットテスト.サーバがなくても、Mapper-MyBatis・DB間の動作をテストできます...
    springでmvc掲示板を作る大長征...🤪