Hibernate之AbstractEntityPersister

来源:互联网 发布:淘宝流量钱包怎么开通 编辑:程序博客网 时间:2024/06/07 00:46

Hibernate开发中需要根据持久层对象获取所映射的数据库表相关信息,如表名,主键,外键对象等相关系。

Hibernate配置 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/ehome</property><property name="connection.username">root</property><property name="connection.password">mysql</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="current_session_context_class">thread</property><property name="show_sql">true</property><mapping resource="org/bkgd/ehome/jeeplugin/userapp/domain/HhArticle.hbm.xml" /></session-factory></hibernate-configuration>

HhArticle.hbm.xml 文件在此省略


编写HibernateUtil辅助类 获取sessionFactory

public class HibernateUtils {private static final SessionFactory sessionFactory;;//创建sessionFactorystatic {        try {            sessionFactory = new Configuration().configure().buildSessionFactory();        } catch (Throwable ex) {            System.err.println("Initial SessionFactory creation failed." + ex);            throw new ExceptionInInitializerError(ex);        }    }    public static SessionFactory getSessionFactory() {        return sessionFactory;    }}

测试类

public class TestPersister {private static AbstractEntityPersister classMetadata;private Object obj;public TestPersister(SessionFactory sessionFatory, Object obj) {classMetadata = (AbstractEntityPersister) sessionFatory.getClassMetadata(obj.getClass());this.obj = obj;}/** * @param args */public static void main(String[] args) {//实例化classMetadata   传入sessionFactory和obj对象TestPersister tp = new TestPersister(HibernateUtils.getSessionFactory(),new HhArticle());Session session = HibernateUtils.getSessionFactory().getCurrentSession();session.beginTransaction();SQLQuery sqlquery = session.createSQLQuery("DELETE FROM " + classMetadata.getTableName());sqlquery.executeUpdate();session.getTransaction().commit(); //事务提交//classMetadata一些其他操作System.out.println(classMetadata.getTableName());  //表名System.out.println(classMetadata.getIdentifierPropertyName()); //主键列映射属性System.out.println(classMetadata.getEntityName()); //对象名称for(String str:classMetadata.getPropertyNames()){   //非主键属性 System.out.println(str);   }}public AbstractEntityPersister getClassMetadata() {return classMetadata;}public void setClassMetadata(AbstractEntityPersister classMetadata) {this.classMetadata = classMetadata;}public Object getObj() {return obj;}public void setObj(Object obj) {this.obj = obj;}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 应急部成立林场的专业灭火队怎么办 路由器我恢复出厂设置断网了怎么办 多囊卵巢综合症不来月经怎么办 天刀普通血战苍梧城没有太白怎么办 天涯明月刀把沈妄言打入水中怎么办 天涯明月刀刷本队友技能太花怎么办 手机收所有短信时显示被隐藏怎么办 div放图片多出的空白怎么办 我14岁射精让我记忆力差了怎么办 qq闪退聊天记录全没了怎么办 木瓜奇迹忘记升级过头转职了怎么办 孩子进入青春期什么坏事都干怎么办 母狗狗第一次来月经应该怎么办图 社保断了想补缴怎么办?这些要知道 换工作社保断了一个月怎么办 北京社保中间断了几个月怎么办 农保和社保都交了医保怎么办 如果交了社保结婚生孩子断了怎么办 南京社保中间断了几个月怎么办 mu大师等级技能点加点太慢怎么办 永恒纪元戒不是本职业套装石怎么办 全民奇迹忘记在哪个区了怎么办 全民奇迹安卓的忘记那个区了怎么办 大天使之剑h5所在服人少怎么办 买的裙子因为好看没有勇气穿怎么办 魅蓝s6锁屏密码忘了怎么办 u盘被占用不能安全弹出怎么办 洛克王国得到了魔攻巨蟹座怎么办 在育碧下载游戏下一半不下了怎么办 轩辕传奇单机版忘记哪个区了怎么办 登腾讯游戏动态密码啥意思怎么办 说了不该说的话别人不原谅怎么办 轩辕传奇手游金币用错了怎么办 神秘时代4法杖按键冲突怎么办 孕2个月发烧38度怎么办 不知道怀孕喝了止咳糖浆怎么办? 小孩刮头发的备皮刀割住手怎么办? 天梭手表里面的刻度掉了怎么办 国战天下手游帐号丢失怎么办 肺力咳合剂一次喝了50多了怎么办 头孢和藿香正气水一起吃了怎么办