- 浏览: 519131 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Zhouchenyu:
谢谢
1、junit学习之junit的基本介绍 -
wenjieyatou:
1、junit学习之junit的基本介绍 -
huabengao:
不错 很好
1、junit学习之junit的基本介绍 -
prayjourney:
写的不错,很有启发!
1、junit学习之junit的基本介绍 -
wangzhenyu1260:
assertEqualspublic static void ...
1、junit学习之junit的基本介绍
新新一个java项目,并新建javabean。如下:
TUser.java
package cn.ehoo.bean; /** *@author whp *@Email whp@ehoo.cn *@Nov 8, 2011 * */ public class TUser { private Long id; private String name; private Integer age; private Group group; public Group getGroup() { return group; } public void setGroup(Group group) { this.group = group; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
Group.java
package cn.ehoo.bean; /** *@author whp *@Email whp@ehoo.cn *@Nov 8, 2011 * */ public class Group { private Long id; private String groupName; public Group(String groupName) { super(); this.groupName = groupName; } public Group() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getGroupName() { return groupName; } public void setGroupName(String groupName) { this.groupName = groupName; } }
2 TUser与Group类的配置文件
TUser.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"> <hibernate-mapping> <class name="cn.ehoo.bean.TUser" table="t_user" > <id name="id" type="long"> <generator class="native" /> </id> <property name="name" /> <property name="age"/> <many-to-one name="group" class="cn.ehoo.bean.Group" unique="true" column="group_id"/> </class> </hibernate-mapping>
Group.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"> <hibernate-mapping> <class name="cn.ehoo.bean.Group" table="group1"><!--这里不能把table名字命名为group,如果是group的话会出错--> <id name="id" type="long" column="group_id"> <generator class="native" /> </id> <property name="groupName"/> </class> </hibernate-mapping>
3、hibernate.cfg.xml 文件的配置
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8</property> <property name="connection.username">root</property> <property name="connection.password">123</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate's automatic session context management--> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping resource="cn/ehoo/bean/TUser.hbm.xml" /> <mapping resource="cn/ehoo/bean/Group.hbm.xml" /> </session-factory> </hibernate-configuration>
4、hibernate Util类
package en.choo.util; import java.io.Serializable; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public final class HibernateUtil { private static SessionFactory sessionFactory; private static ThreadLocal session = new ThreadLocal(); private HibernateUtil() { } static { try { Configuration cfg = new Configuration(); cfg.configure(); sessionFactory = cfg.buildSessionFactory(); } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } } public static Session getThreadLocalSession() { Session s = (Session) session.get(); if (s == null) { s = getSession(); session.set(s); } return s; } public static void closeSession() { Session s = (Session) session.get(); if (s != null) { s.close(); session.set(null); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession() { return sessionFactory.openSession(); } public static void add(Object entity) { Session s = null; Transaction tx = null; try { s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.save(entity); tx.commit(); } finally { if (s != null) s.close(); } } public static void update(Object entity) { Session s = null; Transaction tx = null; try { s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.update(entity); tx.commit(); } finally { if (s != null) s.close(); } } public static void delete(Object entity) { Session s = null; Transaction tx = null; try { s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.delete(entity); tx.commit(); } finally { if (s != null) s.close(); } } public static Object get(Class clazz, Serializable id) { Session s = null; try { s = HibernateUtil.getSession(); Object obj = s.get(clazz, id); return obj; } finally { if (s != null) s.close(); } } public static void main(String[] args) { Session session = null; session = getSession(); System.out.println(session); } }
5、hibernate相应的测试类
package cn.ehoo.test; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import cn.ehoo.bean.Group; import cn.ehoo.bean.TUser; import en.choo.util.HibernateUtil; /** * @author whp * @Email whp@ehoo.cn * @Nov 8, 2011 * */ public class TUserTest { static Session session = null; static Transaction tr = null; @BeforeClass public static void setUpBeforeClass() throws Exception { session = HibernateUtil.getSession(); tr = session.beginTransaction(); } @AfterClass public static void tearDownAfterClass() throws Exception { tr.commit(); } @Test public static void saveUser() { TUser user = new TUser(); user.setAge(12); user.setName("Wang Haipeng"); Group group = new Group("系统权限"); user.setGroup(group); HibernateUtil.add(group); HibernateUtil.add(user); } public static void main(String[] args) { saveUser(); } }
- hibernate一对一之唯一外键关联之单向关联.rar (9.9 KB)
- 下载次数: 10
发表评论
-
hibernate component的使用
2011-11-30 14:35 3328第一次看到component这样使用。所以记下来。只记类与h ... -
hibernate一对一之唯一外键关联(双向关联)
2011-11-08 17:20 1004其内容与http://huihai.iteye.com/blo ... -
Hibernate中UserType的使用
2011-11-07 15:37 49551、新建一个Email类型的字段 package cn.eh ... -
Hibernate的事务处理机制
2011-10-21 17:34 967Hibernate是对JDBC的轻量级对象封装,Hiberna ... -
hibernate+tomca5.5t+JOTM 2.10 JTA配置
2011-10-20 16:29 22431,从官网上下载tomcat5.5,在tomcat下的conf ... -
hibernate连接池之tomcat6的配置
2011-10-17 13:59 1612新建一个web项目,然后在tomcat中的的server.xm ... -
hibernate配置文件中的properties属性
2011-08-15 15:56 3625假如现在有班级Class类与学生student类,但是在映射时 ... -
【转】hibernate二级缓存攻略
2011-08-02 11:40 1007转的原因是:原文排版不太好。我想整理的清楚点 很多人对 ... -
【转】Hibernate-Session
2011-08-02 09:35 1206当讨论Hibernate的Session时 ... -
hibernate一对多,多对一,一对多双向关联
2011-02-04 22:12 1488hibernate之多对一。在多对一中,在多的一方设置many ... -
hibernate flush与update区别
2011-01-07 10:34 1273a)update操作的是在自由态或脱管状态(detached ... -
hibernate lock方法的使用
2011-01-07 10:13 2199hibernate中lock方法到网上没有找到几个例子,所以自 ... -
Hibernate update与lock区别
2011-01-06 17:48 1280a)update是把一个已经更改过的脱管状态(detached ... -
Hibernate三种对象状态
2011-01-06 17:19 950hibernate的三种状态 a)瞬时状态(Transient ... -
hibernate中get与load区别
2011-01-06 16:52 1053在hibernate中有get与load两个都是查询指定的一条 ...
相关推荐
hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向
博文链接:https://shaqiang32.iteye.com/blog/201311
Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接...
Hibernate 一对多 外键 单向关联,有例子。
hibernate外键实现一对一单向关联关系源码
NULL 博文链接:https://ganshisheng.iteye.com/blog/434420
NULL 博文链接:https://cdxs2.iteye.com/blog/1932507
NULL 博文链接:https://cdxs2.iteye.com/blog/1930748
│ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ├─ 多对一连接表单向关联 │ └...
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
NULL 博文链接:https://paladin1988.iteye.com/blog/1627597
011 一对一 唯一外键关联映射_单向 012 一对一 唯一外键关联映射_双向 013 session_flush 014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多关联映射 单向 017 多对多关联映射 双向 018 关联映射文件中...
hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一唯一外键关联映射(双向关联Person<---->IdCard) 11 session flush测试(hibernate_session_flush) 12 hihernate一对多关联映射...
NULL 博文链接:https://paladin1988.iteye.com/blog/1633417
其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3).通过关联表来保存两个实体之间的连接关系(要模拟一对一关联必须在每一个外键上添加唯一约束)。 1.共享主键的...
JSP开发之hibernate之单向多对一关联的实例 一对多的基础上来测试单向多对一的关联 hibernate多对一的关联关系定义: 和单向一对多不同的是:一对多是在意的一方的一方定义set集合,在映射文件中 :单向多...
Hibernate 实体关联关系映射 学习总结 把一对一 一对多 单向 双向 主键 外键 链接表等讲的比较清楚
Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id...一对一 使用 @OneToOne...