java sql注解

Java SQL注解是一种用于描述SQL语句的元数据,可以用于生成、验证和优化数据库操作。常见的注解有@Select、@Insert、@Update、@Delete等。

Java SQL注解是一种用于在Java代码中表示SQL语句的注释,它们可以帮助开发人员更好地理解和维护SQL代码,同时也可以提高代码的可读性和可维护性,以下是一些常用的Java SQL注解:

1、@Table:用于指定实体类对应的数据库表名。

java sql注解

属性 描述
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

示例:

java sql注解

@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.IDENTITYGenerationType.AUTO
type 主键类型,IdType.ASSIGNEDIdType.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:用于指定主键生成策略。

java sql注解

属性 描述
strategy 主键生成策略,GenerationType.IDENTITYGenerationType.AUTO
generator 自定义的主键生成器实现类(仅适用于MyBatisPlus)
parameters 自定义的主键生成器参数(仅适用于MyBatisPlus)
columnName 主键列名(仅适用于MyBatisPlus)
keyPropertyRefs 主键属性引用(仅适用于MyBatisPlus)
keyPropertyRefsString 主键属性引用字符串(仅适用于MyBatisPlus)
stateful 是否启用状态机模式(仅适用于MyBatisPlus)
bypassChecks 是否跳过检查(仅适用于MyBatisPlus)
useCurrentTimestamp 是否使用当前时间戳(仅适用于MyBatisPlus)
sequenceStyle 序列样式,SequenceStyle.ORACLESequenceStyle.DB2等(仅适用于MyBatisPlus)
initialValue 初始值(仅适用于MyBatisPlus)
allocationSize 分配大小(仅适用于MyBatisPlus)
valueOf 值对象(仅适用于MyBatisPlus)
commentGenerator 注释生成器实现类(仅适用于MyBatisPlus)
commentReplacer 注释替换器实现类(仅适用于MyBatisPlus)

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/645170.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-22 18:25
下一篇 2024-05-22 18:25

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入