MySQL 中 使用 tk.mybatis 自动生成数据表,多出了前缀

网友投稿 287 2022-11-22

MySQL 中 使用 tk.mybatis 自动生成数据表,多出了前缀

 

使用 tk.mybatis 自动生成实体类与 mapper ,可能会报以下异常

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: 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 '.tb_user' at line 1
### The error may exist in cn/duniqb/myshop/commons/mapper/TbUserMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,username,password,phone,email,created,updated  FROM myshop..tb_user
### Cause: java.sql.SQLSyntaxErrorException: 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 '.tb_user' at line 1
	......

可以看到出现了意外的语句

SELECT id,username,password,phone,email,created,updated  FROM myshop..tb_user

经查是由于在领域模型:实体类
1. 没有实现序列号接口
2. 删掉多余的点

具体参考:
自动生成的

@Table(name = "myshop..tb_content")
public class TbContent {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 内容类目ID
     */
    @Column(name = "category_id")
    private Long categoryId;
......

改正后的

@Table(name = "tb_content")
public class TbContent implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 内容类目ID
     */
    @Column(name = "category_id")
    private Long categoryId;
......

原理分析:
在SQL环境下Catalog和Schema都属于抽象概念,主要用来解决命名冲突问题
一个数据库系统包含多个Catalog,每个Catalog包含多个Schema,每个Schema包含多个数据库对象(表、视图、字段等)
如数据库对象表的全限定名可表示为:Catalog名.Schema名.表名

供应商 Catalog支持 Schema支持
Oracle 不支持 Oracle User ID
MySQL 不支持 数据库名
MS SQL Server 数据库名 对象属主名,2005版开始有变
DB2 指定数据库对象时,Catalog部分省略 Catalog属主名
Sybase 数据库名 数据库属主名
Informix 不支持 不需要
PointBase 不支持 数据库名

由于 MySQL 不支持 Catalog 所致,不识别前缀

 

没有修不好的电脑

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:了解复合视频接口EMC设计标准电路
下一篇:嵌入式开发JTAG接口的应用介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~