Skip to content

创建 Model

王爵nice edited this page Mar 18, 2018 · 5 revisions

创建一个数据库 Model 非常容易,Anima 需要你知道一些约定,这样你在编程中会省去更多不必要的操作。

Model 约定

  • 模型类以驼峰式命名(HelloWorldUser
  • 对应的数据库表是类名的复数形式,以下划线(_)分隔(hello_wordsusers
  • 字段命名也是驼峰式规则
  • 默认表的主键是 id

创建 Model

假设目前我们有一张数据表,它是类似下面的结构

CREATE TABLE `users` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) NOT NULL DEFAULT '',
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

那么我们创建一个 Model

public class User extends Model {
    private Integer id;
    private String userName;
    private Integer age;
    // getter 和 setter 省略
}

这样就完成了 Model 的创建,下面介绍一些其他的操作(可能大部分情况你用不到)。

Model 配置

配置表名和主键

Anima 提供了一个注解 @Table 帮助你在类上面自定义表名和主键,比如表名是 user_info、主键是 uid

@Table(name = "user_info", pk = "uid")
public class User extends Model {
    private Integer uid;
}

忽略字段

有些时候我们在 Model 中定义了一些字段,他们并不是数据库中的字段,所以对他们进行忽略,否则查询出的数据会自动映射,这样会产生异常。

Anima 提供了 @Ignore 注解,你可以用于字段之上,当你的系统中有多个同名注解的时候记得 package 是 io.github.biezhi.anima.annotation 下的哦 😯

自定义列名

大多数情况下我是不会用到这个操作的,但是难免遇到表不是我们创建的,不符合规范。 比如在表中遇到一个字段 productname,这个字段我们在字段中是 productName, 但这样写的话就会出问题了,会匹配到字段 product_name,这就尴尬了。。。

此时 Anima 提供了 @Column 字段帮你纠正这些不规范的操作。

@Column(name = "productname")
private String productName;

搞定!了解了这些之后我们就可以开始 操作数据库 了,let's go ~