亲们,如何用mybatis动态创建表?先是这样:/**
*创建临时表
*@param sql
*/
void createTmpTable(String sql); <update id="createTmpTable" parameterType="string">
#{sql}
</update>结果:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''create table tmp_test3(name varchar(50),value varchar(50))ENGINE=MEMORY DEFAULT' at line 1
mybatis把这条sql转成一条字符串了然后..../**
*创建临时表
*@param tName
*/
void createTmpTable(String tName);
<update id="createTmpTable" parameterType="string">
create table #{tName}
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
</update>结果:
### Error updating database. Cause: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tmp_test3'
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARS' at line 1
再然后。 <update id="createTmpTable" parameterType="string">
create table `#{tName}`
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
</update>结果:
### SQL: create table `?` (name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
无语现在用的触发器。
*创建临时表
*@param sql
*/
void createTmpTable(String sql); <update id="createTmpTable" parameterType="string">
#{sql}
</update>结果:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''create table tmp_test3(name varchar(50),value varchar(50))ENGINE=MEMORY DEFAULT' at line 1
mybatis把这条sql转成一条字符串了然后..../**
*创建临时表
*@param tName
*/
void createTmpTable(String tName);
<update id="createTmpTable" parameterType="string">
create table #{tName}
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
</update>结果:
### Error updating database. Cause: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tmp_test3'
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARS' at line 1
再然后。 <update id="createTmpTable" parameterType="string">
create table `#{tName}`
(name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
</update>结果:
### SQL: create table `?` (name varchar(50),value varchar(50)) ENGINE=MEMORY DEFAULT CHARSET=utf8
无语现在用的触发器。
解决方案 »
- 关于struts2 中的Iterator
- 谁能帮帮我。。。。一个简单的问题。。
- spring security不能注入自定义类
- 怎样才能传递 " % "这个特殊字符.
- 急!关于Hibernate多对多关系的配置
- 关于进程间通信方式、web http server 间的通信方式
- Struts2 的一个异常 ------可能是调用ActionContext.getContext.get();时出错
- ajax 的一个问题
- Java如何实现服务器内部跳转
- 请问大家当我把IE关闭以后,还想得到session应该怎么做呀?
- 上传文件出错。在线求救
- hibernate数据类型用stirng,数据库int自动转换问题
我发现我问了一个愚蠢的问题。再问一个,怎么在insert/update里执行多条insert/update语句?
语句是写死的,只是到时间 要执行一次,比如定时删除多个表的过期记录。
ibatis不是有<iterate></iterate>迭代标签吗这个迭代标签用它迭代就变成多句了