1.打开DB Browser,新建一个数据库的连接,找到想要持久化操作的数据库表的图标,右键选择hibernate reverse engineering
2.之后出现如下所示:
java src folder:对应工程的src目录
java packega:对应工程中存放的包名,一般选择和持久化类放在一起
create pojo<>DB table mapping information:选上
create a hibernate mapping file(*.hbm.xml) for each database table:使用映射文件关联数据表,选上
java DAtaobject(POJO<>DB Table):生成一个最基本的java类
create abstract class:生成一个抽象类,这个不选
java Data access object(DAO) :生成DAO层代码,这个现在不选,如果选上的话,你什么也不用干了,一般在企业中开发要选上,效率高
3.点击next
Type Mapping:映射文件中使用java类型还是Hibernate类型,其实都一样,一般我们使用java类型
Id Generator: id生成器,一般我们选择assigned,就是用程序生成
点击finish即可,这是你可以看到你的com.zyf.hibernate.bean包下面多了2个文件,一个.java文件,一个.hbm.xml文件,这2个文件就是myeclipse内置的hibernate自动生成的。
4.注意点
如果你的mysql的数据库中的表没有设置主键,那么用向导自动生成的文件会有2个.java文件,如表名为person,那么生成的持久化类一个为Person.java,另一个为PersonId.java,并且在映射文件中会有<composite-id>的标签,这个意思是符合主键,也就是会把表中所有元素都当成主键,这个就有点超出理解范畴了。
所以说,用hibernate来进行数据库的操作,表必须有主键
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
生成类库映射文件optimize:autoload 可以使用下面的指令生成类库映射文件,提高系统自动加载的性能。 >php think optimize:autoload 指令执行成功后,会在rumtime目录下面生成classmap.php文件,生成的类库映射文件会扫描系统目录和应用目录的类库。
我正在尝试使用@ManyToOne和@OneToMany映射实体表。映射列位于名为“internal_plan_id”的子表中。根据要求,我不能更改名称。下面是两个实体表:父表 儿童桌: 我得到错误为:错误:关系“financial_plan_subplan”的列“internal_plan_id_internal_plan_id”不存在。 financial_subplan中用于映射的现有列名是
我是新来spring boot的。我试图用neo4j数据库在spring boot mvc中开发小型应用程序。下面是我的服务器 下面是我的主要课程 下面是我的组件类 下面是我的Controller类 运行main类MainWithStructure时,我遇到以下异常 org.springframework.beans.factory.BeanCreationException:创建名为“main
我需要使用JPA存储一个复杂的树状对象结构。 有一个“顶级”类A,因此我可以在其上执行CASCADE. ALL,但我对类B的子对象和HashMap字段有问题。 映射的“键”是对象本身的哈希代码,存储为“值”。 当我级联持久化一个对象B时,数据库中的“键”列总是“null”(为什么?),即使对象有一些键值对。 我尝试了@MapKey之类的方法,但当我稍后从数据库加载对象时,键值不再是hashcode
我正在尝试升级TYPO3 10.4的一个扩展,它为tx_news(Doc)添加了一个自定义类型。 我基于以下示例进行了迁移:Breaking:#87623 类/控制器/NewsController.php 但是当我调试流体模板中的条目时,默认模型仍然使用。 我错过了什么还是有人有一个工作的例子。 谢谢你的帮助。 更新:我想创建一个新的类型,在Georg Ringer的手册中解释 我已经创建了一个小
几个小时以来,我一直在努力让MapStruct为JAXB生成的类生成有效的映射器。这些类的特殊性在于,它们既没有集合的setter,也没有集合的adder。例如: 类avove有一个getter和一个属性设置器(本例中为firstName),但对于集合(此处列出),它只有一个getter。因此,消费者有责任通过getAddressTypes(add(new AddressType(...))进行访