通过java创建数据库表_根据JavaBean 自动生成数据库表

本文介绍了如何使用Java注解和反射机制,通过自定义注解如@Table、@SQLInteger等,根据Java实体类创建数据库表。在实体类中,通过注解指定表名、字段名、字段类型和约束,然后通过反射解析这些注解,动态生成SQL创建语句并执行,以此实现ORM(对象关系映射)的功能。示例中展示了User类及其注解的使用,最后通过DBConnect类连接数据库执行创建表的SQL语句。
摘要由CSDN通过智能技术生成

有了一个框架,只需要配置好数据库连接,就可以在java代码层操控database,对于写个model便在数据库中创建了一张表表示很好奇,隐约想起以前看《Thinking in Java》中关于注解(Annotation)一张中对于自动生成SQL语句的操作。

首先略微介绍下注解(亦称为与数据metadata(ORM-对象/关系映射中的核心))。

Annotation源自JavaSE1.5,内置3个标准注解,4个元注解:

java.lang.*中的@Override,@Deprecated, @SuppressWarnings

java.lang.annotations.*中的@Target, @Inherited, @Retention, @Documented

对于后4个元注解,稍后再在代码中解释。

对于一个创建表的SQL Create语句,我们要确定几个元素:表名,列名,列名类型,类型长度,约束等,这些都可以在实体类的属性加以注解说明来实现。

对于表名注解:

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 packageannotiation;2 import java.lang.annotation.*;3

4 @Inherited //允许子类继承父类中的注解

5 @Documented //将此注解包含在Javadoc中

6 @Target(ElementType.TYPE) //类、接口(包括注解类型)或枚举类型声明

7 @Retention(RetentionPolicy.RUNTIME) //VM在运行时保留注解,从而通过反射获取信息

8

9 public @interfaceDBTable {10 public String name() default ""; //注解未赋值是,默认为空

11 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

对于字段注解:(这边先只设定了String类型,其实实际情况没这么单纯,下篇再优化)

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 packageannotiation;2 import java.lang.annotation.*;3

4 @Inherited5 @Documented6 @Target(ElementType.FIELD) //域声明(包括枚举类型实例)

7 @Retention(RetentionPolicy.RUNTIME)8

9 public @interfaceSQLInteger {10 String name() default "";11 Constraints constraints() default @Constraints; //约束注解,详细见下面代码

12 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值