在mybatis中注入sql
inject sql in mybatis
我正在使用 Spring MyBatis 在 table 中插入一行。问题是在我的 h2 数据库中我还没有创建 table,我想即时创建
这是我当前的 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 标记必须在插入发生之前执行?
我是 运行 h2 作为 java 通过 maven 的进程
<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>
此致
查看 DB 初始化 here
事实上,您需要在 spring 中添加这样的内容
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:database/scripts/init-db.ddl" />
</jdbc:initialize-database>
其中dataSource是要初始化的h2数据源。所有数据库结构创建和一些初始数据插入都可以在单独的 DDL/SQL 脚本中完成。
您只需在启动时为内存中的 H2 DB 执行它们。
我正在使用 Spring MyBatis 在 table 中插入一行。问题是在我的 h2 数据库中我还没有创建 table,我想即时创建
这是我当前的 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 标记必须在插入发生之前执行?
我是 运行 h2 作为 java 通过 maven 的进程
<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>
此致
查看 DB 初始化 here
事实上,您需要在 spring 中添加这样的内容
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:database/scripts/init-db.ddl" />
</jdbc:initialize-database>
其中dataSource是要初始化的h2数据源。所有数据库结构创建和一些初始数据插入都可以在单独的 DDL/SQL 脚本中完成。
您只需在启动时为内存中的 H2 DB 执行它们。