使用Persistence工具生成带注解的实体类-1
- 如果上一步没问题的话, IDEA左下角侧边栏会出现Persistence工具栏
- 打开Persistence工具栏, 右键项目: Generate Persistence Mapping - By Database Schema
使用Persistence工具生成带注解的实体类-2
- 选择数据库连接
- 选择生成类所在包
- 选择要生成的表
- 选择要生成的字段(选择表后字段默认除了外键全选)
- 修改要生成的属性名
- 修改要生成的属性类型
- 勾上即为生成带注解的实体类
生成的类实例如下
三, 更进一步, 使用自己的Groovy生成带注解的实体类上面介绍了两个使用IDEA生成实体类的方法, 各有优缺点
- 生成不带注解的实体类简单高效, 但缺点就是如果使用的是Jpa/Hibernate框架就不适合
- 生成带注解的实体类能生成注解实体类, 但缺点就是生成的实体类的注解可能不太符合我们的注解, 只能生成到当前项目包下, 面对一些复杂的数据库如Oracle会显示很多系统表而且表空间切换不太方便
我们知道Idea生成不带注解的实体类是通过Groovy脚本文件生成的, 我们也能找到这个文件, 那我们能不能修改这个文件, 让它生成带注解的实体类呢?
(1), 使用自己的Groovy生成带注解的实体类的好处- 在Database工具栏里, 操作简单方便
- 可以自己对脚本进行一些编辑, 使生成的实体类达到自己的定制需求
- 对Oracle这样的数据库生成实体类时, 避免了系统表的影响, 可以自己选择表空间进行操作
- 可以生成在电脑上的任何位置, 不受限制
- @author 作者名需要自己修改脚本
- @Table(Schema="") 的表空间名不能读取, 需要自己修改脚本, 设定表空间名(mysql可以直接删除这个属性的定义)(IDEA的Persistence工具可以读取(Schema=""属性并生成, 但我们不知道它是怎么获取的)
- @Id的主键生成方式不可知, 需要生成后自己确定(mysql用户可以直接修改脚本设定主键生成方式, 但Oracle用户需要生成实体类后再逐个确认)
1, 如果需要hashcode()和equals()方法, 也修改脚本, 使其自动生成
(4), 新建一个Groovy脚本文件Database工具栏里, 右键右键: Scripted Extensions - Go to Scripts directory
在目录下新建一个Generate MyPOJOs.groovy