myeclipse反转hibernate数据类型更改
用MyEclipse自动生成hibernate映射文件和实体类

⽤MyEclipse⾃动⽣成hibernate映射⽂件和实体类
建web⼯程,使⽤Hibernate的时候,在⼯程⾥⼀个⼀个创建实体类和映射⽂件太⿇烦,特别是⼤项⽬,好⼏百张表,每个表跟每个表的对应关系很负责,⼀张表中可能有超级多的字段,浪费时间,还容易出错!
创建完成后还要将⼀个个的映射⽂件配置到hibernate.cfg.xml中,稍微疏忽就会出错!
现在教⼤家如何⽤MyEclipse⾃动⽣成Hibernate映射⽂件及实体类
感叹⼀句MyEclipse插件的强⼤之处!
⽤到的⼯具:
1、MyEclipse2014
2、MySQL 5.5(oracle10g)
注:MySQL 和oracle的⽅法⼀样,只是在创建数据库连接的地⽅需要注意Connection URL的写法不同,这⾥我以mysql为例!
准备⼯作:(如果你的项⽬中已经有hibernate配置⽂件,并且有数据库连接的话,可以省略准备⼯作直接进⾏第三步)
1.新建⼀个web project ,选中项⽬右击
2.创建⼀个数据库,并且在数据库中添加若⼲表。
准备⼯作做好以后,我来⼿把⼿教接下来的步骤:
第⼀步:
这⾥我们创建了⼀个数据库student,⾥⾯有⼀张学⽣表(student)
第⼆步:创建⼀个数据库连接,如果已经有数据库连接并且已经有hibernate的配置⽂件的话,这⼀步可以省略
第三步:⽣成实体类和映射⽂件
完成后,可以在指定位置找到⽣成的映射⽂件和实体类对象了!。
Eclipse使用Hibernate Tools逆向生成实体类并解决乱码问题

使用Hibernate Tools逆向生成实体类并解决乱码问题1Eclipse安装配置1.1安装hibernate tools插件首先要看清楚Eclipse版本,然后找到对应Eclipse版本的hibernate tools插件。
如Eclipse Luna (4.4.2)则找到/jbosstools/updates/stable/luna/下载对应的hibernate tools插件,避免安装错误。
打开eclipse,选择“Help”->“安装新软件”->”Add” 输入网址:/jbosstools/updates/stable/luna/从下拉框里找到hibernate tools插件,也可同时选择其他所需要的插件,逐步安装即可。
1.2新建所要生成VO实体类的工程完成后修改工程的build path,加入从Eclipse的hibernate plugins里找到对应jar包,如下:2配置Hibernate Tools2.1Hibernate Configuration File(cfg.xml)保存在工程的src目录下即可,然后下一步:在这里可以选择Hibernate版本。
在配置数据库连接信息时需要注意:Driver class选择用com.mysql.jdbc.Driver;在Connection URL后面加入Unicode连接参数:jdbc:mysql://127.0.0.1 /test?useUnicode=true&characterEncoding=UTF-8&useInformationSchema=true。
这里可以选择同时生成Console Configuration,也可以后面手工生成。
2.2Hibernate Console Configuration打开配置界面如下:在Common标签页面里记得选择“UTF-8”编码。
可以在控制台看到数据库的数据表了。
通过Hibernate将数据库在myeclipse中逆向生成

通过Hibernate将数据库在myeclipse中逆向生成1.首先准备好数据库。
2.在MyEclipse的右上角切换透视图,切换到MyEclipse Database Explorer3.在最左边点击右键,选择New(也就是新建一个数据库连接),然后编写第一个页面,Driver template: MySQL Connector/J (因为是建立数据库连接)Driver name :icloud(这个名字随便起,方便以后使用)Connection URL :jdbc:myslq://localhost:3306/icloud?useUnicode=true& characterEncoding=UTF-8(这里如果最后地数据库,写localhost;如果在别的机子上,填写对方的ip;这个地方的 icloud是数据库的名称;当然后面还可以加一些配置,例如加密方式是统一的,都是用UTF-8进行加密)User name :root (数据库访问的用户名,mysql默认用户为root。
)Password:¥¥¥¥¥(设置数据库的密码)Driver JARs :点击Add JARs ,然后将mysql-connector-java-5.1.6-bin.jar添加进去,也可以是其他版本。
Driver classname:com.mysql.jdbc.Driver最后点击Test Driver,如果返回Database connection successfully established.说明第一步成功。
4.点击Next,进入第二个界面,选择第三个单选按钮(Display the selected Schemas),然后点击右边的Add按钮,也就是说添加你的数据库,然后点击完成按钮,这样你的数据库连接就创建好了。
5.切换到MyEclipse Java Enterprise 的透视图,创建一个Web Project,名字、保存路径什么的自己填写,我起来个icloud。
myeclipse hibernate反向工程图文教程

Myeclipse6.0 的hibernate反向工程第一步:建DB Browser方法一:Window -> Open Persipective -> MyEclipse Database Explorer以后步骤同二方法二: window / show view /other 选择如下图最后,点击OK,在工作空间上将会出现一个DB Browser的配置页面,在配置页面空白处,右键,选择New按钮在弹出的对话框当中配置数据库连接点完成即可点击my_driver 可以new 表等点connect to my_driver 可以new sql编辑器执行sql: 本次执行sql 例子如下:create table testUser(id int not null,username varchar(200),age int,primary key ("ID"))点击左上绿色按钮即可执行sql第二步:新建java工程(简单省略了),初始化Hibernate开发环境点击工程鼠标右键得到下图:Next (选择刚才你建立的db browser)Next 新进包名如图点击完成新的工程目录结构如下图所示:我们可以看到,系统自动给我们生成了HibernateSessionFactory.java及Hibernate.cfg.xml配置文件,并将Hibernate环境所需要的外部包文件也加入到CLASSPATH当中。
第三步:通过反向工程,生成POJO及hbm映射文件:在DB Browser配置界面,入进hibernate数据库,如下图所示:找到该用户下刚才所建的表将弹出如下的对话框,在Java package当中输入产生的hibernate映射的JavaBean为com.gjrencai.model,详细请参考下图点击Next>按钮,在新的对话框当中,在ID Generator的选项当中选择increment,表示ID为数据库自增长类型。
eclipse中,由数据库反向生成hibernate实体类(图解)

Eclipse中反向生成hibernate实体类+jpa注释2011-01-24一、配置数据源,sqlServer2000数据库1、菜单栏“Window”……,截图如下:2、Database Connecttions右击“new”,选择要使用的数据库,本例中是SQL Server,给数据源随便命名,此处为MedicalInfoDB,然后单击“next”,截图如下:3、单击Drivers一行最后那个按钮,配置数据库驱动:配置驱动类和url等……最后点击“OK”,截图如下:4、点击“OK”之后,配置“General”选项卡,“Optional”选项卡不用管,截图如下,5、然后点击“Next”,核对一下数据源信息,点击“Finish”。
截图如下:6、二、反向生成实体类1、打开eclipse,在顶部菜单栏右击选择“Customize Per……”,截图如下:2、选择之后弹出如下选项卡,选择“Command Groups A vailability”,在下面勾选“Hibernate Code Generation”,然后点击“OK”,截图如下:3、点击“OK”之后会在菜单栏中显示如下图所示最后一个快捷按钮:4、点击按钮右边的小箭头,选择下拉菜单中第二项“Hibernate Code Generation……”,截图如下:5、选中之后,弹出如下窗口,右击“New”一个New_configuration:6、左键单击选中新建的New_configuration,右边出现好多选项卡,截图如下:参数说明:(1)、没用;(2)、选择保存……的位置。
(3)、如果反向生成实体类,则将勾上。
保存实体类的文件夹的位置(可不填写),Reveng.xml最右边的Setup……,点击后“新建”或者“使用已存在的”reveng.xml。
选择保存reveng.xml文件的项目的包,点击“Next”,然后点击,单击选中要使用的数据库,或者数据库的某些表(包括表和视图!!!),点击,然后“Finish”。
MyEclipse中hibernate反向工程实例(一对多关联)

MyEclipse中hibernate反向工程实例(一对多关联)1、数据库设计实例对象为工作人员和部门,关系为一个部门对应多个工作人员,一个工作人员只属于一个部门见表语句如下:(先用Navicat建的表,然后导出的sql语句),数据库名称为test SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS`t_department`;CREATE TABLE`t_department`(`id`int(11)NOT NULL auto_increment,`departmentname`varchar(40)NOT NULL,`departmentlocation`varchar(100)NOT NULL,PRIMARY KEY(`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS`t_user`;CREATE TABLE`t_user`(`id`int(11)NOT NULL auto_increment,`username`varchar(20)NOT NULL,`password`varchar(20)NOT NULL,`departmentid`int(11)NOT NULL,PRIMARY KEY(`id`),KEY`departmentid`(`departmentid`),CONSTRAINT`departmentid`FOREIGN KEY(`departmentid`)REFERENCES `t_department`(`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;2、使用MyEclipse反向工程生成配置文件和POJO类第一步:配置数据源1、打开MyEclipse,新建一个web工程,这里命名为hibernate_demo2、打开数据库设置器:依次单击【window】-->【Show View】-->【Other…】如下图所示:3、在弹出的窗口ShowView中选择DB Browser,如下图所示:4、在DB Browser窗口中,选择显示的图标,单击右键执行新建命令,如下图示5、弹出Database Driver对话框,在此会要求我们配置数据库的相关信息,具体设置如下图所示,设置完成,单击Finish.【第二步】引入hibernate配置文件1、添加hibernate包:选中我们的Web工程,依次单击鼠标右键-->MyEclipse-->Add Hibernate Capabilities…如下图所示:2、在弹出的窗口中做如下设置:【Next】,创建hibernate的配置文件【Next】,指明hibernate与数据库的连接【Next】,创建HibernateSessionFactory类,用来获得session。
数据库修改后Hibernate的配置更新

/******************************************************************************Author: QinZhiGuoDate: 2012-6-26Topic: 关于数据库端表更新本地hibenate相关配置调整的解决方案******************************************************************************/Content:后台组在开发过程中可能会遇到这样的如下问题:1. 根据手机端需求变化,需要修改后台的数据库设计2. 数据库设计存在一定的问题,某些数据库表需要删除若干列3. 新建了数据库表4. 在原有表中新添加了列这一系列问题我们可能会经常性的遇到,之前为了解决后台编码和开发的问题,我们选择重新反向生成所有的表,来达到重建的目的。
但是这样一来存在很大的问题,就是我们需要重复性的去完成很多工作。
之前一直苦于这样的无用功。
现在我们可以尝试一下另外的解决方案:Q1:新建了表怎么办呢?A1:新建表后,我们解决起来比较简单,直接添加相关配置,但是可能需要修改几个文件,首先切换到”MyEclipse Database Explorer Perspective”视图模式,具体的切换方法可以在:Window->ShowView->DB Browser然后选择对应的数据连接,然后在ECAMPUS->TABLE下可以看到我们用户可以访问的数据库表,选择要添加的表,然后右键->反向生成。
然后一步步添加entity和DAO即可。
反向生成完毕后我们需要回到MyEclipse的编辑模式,然后需要配置hibernate.cfg.xml文件,然后再mapping里面添加我们刚刚加入的表映射配置文件,比如我们刚刚反向添加了WApp整个表,在com.edance.ecampus.web.entity里面会有一个com.edance.ecampus.web.entity.Wapp.hbm.xml,我们需要将这个配置问价加入即可。
Hibernate 更改部分字段 hibernate update 更改想更改的字段 Java Hibernate

Hibernate 中如果直接使用Session.update(Object o);会把这个表中的所有字段更新一遍。
比如:1 2 3 4 5 6 7 8 9 101112public class TeacherTest {@Testpublic void update (){Session session = HibernateUitl.getSessionFactory ().getCurrentSession ();session.beginTransaction ();Teacher t = (Teacher ) session.get (Teacher.class , 3);t.setName ("yangtb2");session.update (t ); session.getTransaction ().commit (); } }Hibernate 执行的SQL 语句:1 2 3 4 5 6 7 8 9 10Hibernate:UPDATETeacherSETage =?,birthday =?,name =?,title =?WHEREid =?我们只更改了Name 属性,而Hibernate 的sql 语句 把所有字段都更改了一次。
这样要是我们有字段是文本类型,这个类型存储的内容是几千,几万字,这样效率会很低。
那么怎么只更改我们更新的字段呢?有三中方法:1.XML 中设置property 标签 update = “false” ,如下:我们设置 age 这个属性在更改中不做更改<property name=”age” update=”false”></property>在Annotation 中 在属性GET 方法上加上@Column(updatable=false) 1234@Column (updatable =false ) public int getAge () { return age ; }我们在执行 Update 方法会发现,age 属性 不会被更改12345678 Hibernate: UPDATE Teacher SET birthday =?, name =?, title =? WHERE9 id=?缺点:不灵活····2.第2种方法··使用XML中的dynamic-update=”true”<class name="com.sccin.entity.Student" table="student" dynamic-update="true">OK,这样就不需要在字段上设置了。