这里需要动态的去创建数据表,所以无法建立一个实体类,这种情况是不是只能用原生的jdbc去执行sql
执行不了,mybatis_config文件会查找实体类的,没有对应的执行会报错
其实是有办法的,mybatis功能非常丰富。可以支持HashMap作为实体类。这样所有字段都可以用HashMap的key来接受。
动态创建的数据表,它的表结构也是不确定的吗?
一般情况下,即使动态建表,表结构也是确定的;
表结构确定了,就可以声明一个实体类与其对应。
对于一个表结构都不确定的表,一般情况下,我们不会通过程序来进行处理;
除非,你开发的项目是一个专门进行数据库设计的项目,否则的话,在软件开发当中,我们是不做那种表结构不确定的表,进行动态创建和使用的。
动态创建数据库表,每个表的字段都不一样吗? 每个表字段一样比如天表、月表这样固定字段得可以用固定实体类啊,只是表名不一样,动态改下表名就行了。如果你每个字段都不一样,那你动态建表得设计应该是有问题的,针对这种一般使用列转行来匹配处理。
使用
@Update({ "<script>"
+ "CREATE TABLE IF NOT EXISTS 'logs' ('id' text(32) NOT NULL,'date' datetime NOT NULL,'info' blob NOT NULL,PRIMARY KEY ('id'));"
+ "</script>" })
```java
动态建表
最常见的就是直接传入sql,其实mybatis还提供了ScriptRunner和SqlRunner,你要自己去单独跑sql也是可以的