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;}}
- Hibernate之AbstractEntityPersister
- at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey
- Hibernate 之Hibernate缓存
- Hibernate 之Hibernate缓存
- Hibernate之hibernate初识
- Hibernate学习之(Hibernate 常用工具)
- hibernate学习之Hibernate API
- hibernate之hibernate.hbm2ddl.auto
- Hibernate之hibernate.hbm2ddl.auto
- 【hibernate】 hibernate 注解之 SequenceGenerator
- hibernate之2----hibernate缓存
- 开始Hibernate之旅
- hibernate之Hello world
- hibernate之性能优化
- Hibernate之数据检索- -
- 遨游Hibernate之二
- Hibernate之数据缓存
- Hibernate 之QBC
- 我在用的mac软件(1)--终端环境之iTerm2
- 发送短信或其它的服务锁屏后就不再运行的解决办法
- ExpandableListView练习代码
- Struts2常用标签总结
- Linux 命令后台运行
- Hibernate之AbstractEntityPersister
- linux下mysql的root密码忘记解决方法
- struts2 <s:select>理解以及默认值的问题
- javascript代码理解
- 【SEO新手必知 三】:SEO优化中期操作
- ARM-LINUX-GCC 4.4.3安装(ubuntu下)
- select any dictionary与select_catalog_role区别
- shell脚本编码问题
- C3P0连接池详细配置