Java SQL注解是一种用于在Java代码中表示SQL语句的注释,它们可以帮助开发人员更好地理解和维护SQL代码,同时也可以提高代码的可读性和可维护性,以下是一些常用的Java SQL注解:
1、@Table:用于指定实体类对应的数据库表名。
属性 | 描述 |
name | 数据库表名 |
示例:
@Table(name = "user") public class User { // ... }
2、@Column:用于指定实体类属性对应的数据库列名。
属性 | 描述 |
name | 数据库列名 |
columnDefinition | 列定义,length(10) 、default 'N' 等 |
nullable | 是否允许为空,默认为true |
unique | 是否唯一,默认为false |
updatable | 是否可以更新,默认为true |
insertable | 是否可以插入,默认为true |
selectable | 是否可以查询,默认为true |
orderByClause | 排序规则,asc, desc 等 |
示例:
@Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", columnDefinition = "varchar(50) not null", unique = true) private String username; @Column(name = "password", columnDefinition = "varchar(50) not null") private String password; // ... }
3、@Id:用于指定实体类的主键属性。
属性 | 描述 |
name | 主键属性名 |
columnDefinition | 主键列定义,length(10) 、default 'N' 等 |
generatorStrategy | 主键生成策略,GenerationType.IDENTITY 、GenerationType.AUTO 等 |
type | 主键类型,IdType.ASSIGNED 、IdType.AUTO 等 |
tableName | 主键对应的数据库表名(仅适用于多表联合主键) |
columnNames | 主键对应的数据库列名(仅适用于多表联合主键) |
foreignKeyNames | 外键对应的数据库列名(仅适用于多表联合主键) |
foreignKeyConstraints | 外键约束(仅适用于多表联合主键) |
onUpdate | 更新时触发的事件(仅适用于多表联合主键) |
onDelete | 删除时触发的事件(仅适用于多表联合主键) |
示例:
@Table(name = "user") public class User { @Id(name = "id", columnDefinition = "bigint(20) not null", generatorStrategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", columnDefinition = "varchar(50) not null", unique = true) private String username; @Column(name = "password", columnDefinition = "varchar(50) not null") private String password; // ... }
4、@GeneratedValue:用于指定主键生成策略。
属性 | 描述 |
strategy | 主键生成策略,GenerationType.IDENTITY 、GenerationType.AUTO 等 |
generator | 自定义的主键生成器实现类(仅适用于MyBatisPlus) |
parameters | 自定义的主键生成器参数(仅适用于MyBatisPlus) |
columnName | 主键列名(仅适用于MyBatisPlus) |
keyPropertyRefs | 主键属性引用(仅适用于MyBatisPlus) |
keyPropertyRefsString | 主键属性引用字符串(仅适用于MyBatisPlus) |
stateful | 是否启用状态机模式(仅适用于MyBatisPlus) |
bypassChecks | 是否跳过检查(仅适用于MyBatisPlus) |
useCurrentTimestamp | 是否使用当前时间戳(仅适用于MyBatisPlus) |
sequenceStyle | 序列样式,SequenceStyle.ORACLE 、SequenceStyle.DB2 等(仅适用于MyBatisPlus) |
initialValue | 初始值(仅适用于MyBatisPlus) |
allocationSize | 分配大小(仅适用于MyBatisPlus) |
valueOf | 值对象(仅适用于MyBatisPlus) |
commentGenerator | 注释生成器实现类(仅适用于MyBatisPlus) |
commentReplacer | 注释替换器实现类(仅适用于MyBatisPlus) |
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/645170.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复