Hibernate正向工程(实体类-->数据库)
1,新建实体类News.java
package com.hanqi.dao;
import java.util.Date;
public class News {
private Integer id;
private String title;
private String contant;
private Date createdate;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContant() {
return contant;
}
public void setContant(String contant) {
this.contant = contant;
}
/**
* @return the createdate
*/
public Date getCreatedate() {
return createdate;
}
/**
* @param createdate the createdate to set
*/
public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
@Override
public String toString() {
return "News [id=" + id + ", title=" + title + ", contant=" + contant + ", createdate=" + createdate + "]";
}
}
2,利用hibernate生成实体类对应的配置文件,(右键-新建-其他-hbm.xml)News.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-1-12 23:36:52 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.hanqi.dao.News" table="NEWS">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" /><!-- 注意此处主键生成方法常用native -->
</id>
<property name="title" type="java.lang.String">
<column name="TITLE" />
</property>
<property name="contant" type="java.lang.String">
<column name="CONTANT" />
</property>
<property name="createdate" type="java.util.Date">
<column name="CREATEDATE" />
</property>
</class>
</hibernate-mapping>
3,将hbm.xml添加到hibernate配置文件hibernate.cfg.xml中
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory> <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<!-- 数据库连接 -->
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.password">test</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="hibernate.connection.username">test</property>
<!-- 用户方案 -->
<property name="hibernate.default_schema">TEST</property>
<!-- 数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- sql语句/调试 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- 自动建表方式 -->
<property name="hibernate.hbm2ddl.auto">update</property> <property name="hibernate.search.autoregister_listeners">false</property>
<property name="hibernate.validator.apply_to_ddl">false</property>
<!-- 映射文件 -->
<mapping resource="com/hanqi/dao/News.hbm.xml" /> </session-factory>
</hibernate-configuration>
4,新建JUnit Test Case类TestNews.java进行测试
package com.hanqi.dao; import static org.junit.Assert.*; import java.util.Date; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import org.hibernate.service.*; public class TestNews { @Test
public void test() {
System.out.println("测试");
//1-构建配置类
Configuration cfgrn = new Configuration().configure(); //2-构建配置工厂类
ServiceRegistry srg = new StandardServiceRegistryBuilder().
applySettings(cfgrn.getProperties()).build(); //3-构建会话工厂对象,比较耗资源
SessionFactory sf = cfgrn.buildSessionFactory(srg); //4-构建会话对象
Session se = sf.openSession(); //5-开始事务
Transaction tr = se.beginTransaction(); //6-执行操作
/* News news = new News(); news.setTitle("标题");
news.setContant("这是内容");
news.setCreatedate(new Date()); se.save(news);//插入
*/
News news2 = (News)se.get(News.class, 1); System.out.println(news2);//查询输出 //7-提交事务
tr.commit(); //8-关闭会话
se.close(); //9-关闭会话工厂
sf.close(); } }
Hibernate正向工程(实体类-->数据库)的更多相关文章
- 懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)
需求描述 需求是这样的:因为我们目前的一个老项目是Oracle数据库的,这个库呢,数据库是没有注释的,而且字段名和表名都是大写风格,比如 在代码层面的po呢,以前也是没有任何注释的,但是经过这些年,大 ...
- hibernate正向工程生成数据库
hibernate正向工程生成数据库 hibernate.cfg.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...
- 在Intellij IDEA下通过Hibernate逆向生成实体类
前言:在IDEA中,通过相关插件,可以利用Hibernate逆向生成数据表对应的实体类.具体操作及注意事项见本篇随笔. 1.创建一个基于maven的hibernate工程.并在工程中添夹hiberna ...
- hibernate 非xml实体类配置方法!
hibernate 非xml实体类配置方法! 这个是hibernate.cfg.xml配置文件 <?xml version='1.0' encoding='UTF-8'?> <!DO ...
- hibernate 反向生实体类 and 为什么老是多一个id
hibernate 反向生实体类 and 为什么老是多一个id 2017年04月01日 20:32:51 阅读数:548
- Hibernate自动生成实体类注解(转)
常用的hibernate annotation标签如下: @Entity --注释声明该类为持久类.将一个Javabean类声明为一 个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类 ...
- Hibernate第二天——实体类 与缓存机制
第二天,我们先来了解一下框架里的一个重要概念:实体类 实体类:把数据表或其它持久化数据的格式映射成的类,就是实体类. 实体类的编写规则:由于对应的是javabean,因而也遵循javabean的一些规 ...
- Snail—Hibernate反向生成实体类及配置文件
今天学习了Hibernate的反向生成类文件 第一步.打开myeclipse中的database视图,找到对应的表,选中后右键单击. watermark/2/text/aHR0cDovL2Jsb2cu ...
- idea hibernate jpa 生成实体类
0,添加mysql数据库连接 1,生成个hibernate.cfg.xml 2,打开Persisitence 3,Import Databases Schema 4,选择表生成实体类
随机推荐
- UIScrollView 滑动复位
需求 在每次打开界面滑动列表都是复位状态(未滑动). 分析 在制作滑动列表时常常会结合UIPanel和UIScrollView 要让滑动列表回到未滑动时的位置,那么就需要改变Panel的Clippin ...
- [Flex] flex手机项目如何限制横竖屏?只允许横屏?
flex手机项目如何限制横竖屏?只允许横屏? 有人知道吗?求教.. 工程中 xxx-app.xml 找到</aspectRatio> 去掉注释 修改为<aspectRatio&g ...
- .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
.Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible wi ...
- C语言:联合变量
#include <stdio.h> union hold{ int digit; double big; char letter; }; int main(){ union hold a ...
- poj3270
Cow Sorting Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6750 Accepted: 2633 Descr ...
- Linux下Perl的安装(转)
原文地址:Linux下Perl的安装 今天在虚拟机测试shell脚本的时候,有些命令使用不了. 比如说 mysqlhotcopy ,它提示Perl的版本太低. 我用的 RedHat9 的Perl才5. ...
- 2014-10-28——iframe多层嵌套时获取元素总结
同域: 父页面获取子页面元素: 注意:onload事件 jQuery获取:$("iframe").contents().find("holder")...... ...
- 开源磁力搜索爬虫dhtspider原理解析
开源地址:https://github.com/callmelanmao/dhtspider. 开源的dht爬虫已经有很多了,有php版本的,python版本的和nodejs版本.经过一些测试,发现还 ...
- ASP.NET的编译原理
http://www.cnblogs.com/mdy2001212/archive/2008/01/31/1060345.html
- 你了解javascript中的function吗?(1)
上一篇文章中 介绍了function在javascirpt作为一等公民所担任的重要责任,在不同 的上下文中它担任着不同的角色,在对象内部它可以是函数,同时又能充当名字空间,不仅如此所有的functio ...