簡體   English   中英

在mybatis中注入sql

[英]inject sql in mybatis

我正在使用Spring MyBatis在表中插入一行。 問題是在我的h2數據庫中,我還沒有創建表,而我想即時進行創建

這是我當前的Spring上下文配置

<sql id="CREATE_TABLE">
    CREATE TABLE ENTITY(ENTITY_ID INT PRIMARY KEY, TITLE VARCHAR(255),DESCRIPTION VARCHAR(255) )
</sql>

<insert id="CREATE" parameterType="com.dao.entity.dto.EntityDaoDTO">
    INSERT INTO
    ENTITY
    (ENTITY_ID, TITLE, DESCRIPTION)
    VALUES
    (#{entityId},#{title},#{description})

</insert>

我該如何指定在插入發生之前必須執行sql標記?

我通過Maven將H2作為Java進程運行

                     <execution>
                        <id>start-h2</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start</goal>
                        </goals>

                        <configuration>
                            <name>start-h2-f2e</name>
                            <waitAfterLaunch>2</waitAfterLaunch>
                            <workingDir>../../../h2/sakila-h2-master/</workingDir>
                            <arguments>
                                <argument>java</argument>
                                <argument>-cp</argument>
                                <argument>h2-1.3.161.jar</argument>
                                <argument>org.h2.tools.Server</argument>
                                <argument>-ifExists</argument>
                                <argument>-tcp</argument>
                                <argument>-web</argument>
                                <argument>-tcpAllowOthers</argument>
                            </arguments>
                        </configuration>
                    </execution>

問候

在這里查看數據庫初始化

實際上,您需要向春天添加類似這樣的內容

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:database/scripts/init-db.ddl" />
</jdbc:initialize-database>

其中dataSource是要初始化的h2數據源。 所有的數據庫結構創建和一些初始數據插入都可以在單獨的DDL / SQL腳本中完成。

您只需在啟動時為內存H2 DB執行它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM