SQLInterfaceからDDLを発行する <バージョン0.3.0の概要へ戻る>

SorMapでは、CRUD処理の他に、CREATEやDROPなどのDDL文を発行することもできます。
  • query.xml
<?xml version="1.0" encoding="UTF-8"?>
<statements>

	<statement id="select" type="SELECT"><![CDATA[
		SELECT
				seq
			,	name
			,	reg_date
			,	description
		FROM
			TEST_TBL
	]]></statement>
	
	
	<statement id="insert" type="INSERT"><![CDATA[
		INSERT INTO TEST_TBL(
				seq
			,	name
			,	reg_date
			,	description
		) VALUES(
				0/* seq */
			,	''/* name */
			,	'1900-01-01'/* reg_date */
			,	''/* description */
		)
	]]></statement>
	
	<statement id="update" type="UPDATE"><![CDATA[
		UPDATE TEST_TBL SET
			,	name		= ''/* name */
			,	reg_date	= '1900-01-01'/* reg_date */
			,	description	= 	''/* description */
		WHERE
			seq = 0/* seq */
	]]></statement>
	
	<statement id="delete" type="DELETE"><![CDATA[
		DELETE FROM TEST_TBL
		WHERE
			seq = 0/* seq */
	]]></statement>
	
	<statement id="select" type="CREATE"><![CDATA[
		CREATE TABLE TEST_TBL (
			seq 			VARCHAR(45)		COLLATE utf8_bin NOT NULL COMMENT '主キー',
			name 			VARCHAR(100)	COLLATE utf8_bin NOT NULL COMMENT '名前',
			reg_date		DATE			NOT NULL COMMENT '登録日',
			description		VARCHAR(200)	NOT NULL COMMENT '概要情報',
			PRIMARY KEY (seq)
		) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
	]]></statement>
</statements>
  1. package org.dyndns.nuda.sample;
  2. import java.util.List;
  3. import org.dyndns.nuda.mapper.annotation.JDBCQuery;
  4. @JDBCQuery(sqlxml = "query.xml")
  5. public interface SampleInterface {
  6. public void create();
  7. public int[] insert(List<TestSchemeBean> params);
  8. public int[] insert(TestSchemeBean param);
  9. public int[] update(List<TestSchemeBean> params);
  10. public int[] update(TestSchemeBean param);
  11. public int[] delete(TestSchemeBean param);
  12. public int[] delete(List<TestSchemeBean> params);
  13. public List<TestSchemeBean> select();
  14. }
SQLインタフェースを使ってDDLを発行するためには、SQLXMLのtype属性を「CREATE」に設定します
その上で、上記のSQLインタフェース(SampleInterface.java)であればcreateメソッドを実行すれば、現在のコンテキストDBに
TEST_TBLテーブルが作成されます。