Hibernate3.2(5):MyEclipse对Hibernate的内置支持
2013-07-08 14:11
197 查看
打开MyEclipse6.5,切换到MyEclipse Database Explorer视图,在左边DB Browser空白区右击--->New...--->
Next--->
OK--->
OK--->
Finish
双击左边出现的temp数据库,
将节点展开,可以看到temp库里都有哪些表,当然还有视图,存储过程,函数和触发器。这里我们只关注表。
切换回MyEclipse Java Enterprise视图,新建一个web工程,这里取名为hibetnate3.2,右击工程名--->MyEclipse--->Add Hibernate Capabilities...--->
如上勾选--->Next--->
Next--->
Next--->
Java Package后面的New...->
Finish--->
Finish.
可以看到,MyEclipse6.5已经为我们添加好了Hibernate3.2的所有jar包,并且已经自动生成了hibernate.cfg.xml文件和一个HibernateSessionFactory.java文件。
这里贴出这些自动生成的文件的源代码:
hibernate.cfg.xml :
我们在src目录下新建一个db.domain包,然后再次切换到MyEclipse Database Explorer视图,temp--->Connected to temp--->temp--->table--->uers右击--->Hibernate Reverse Engineering...--->
Next--->
Next--->Finish--->切换回MyEclipse Java Enterprise视图。
下面贴出红框内的那些自动生成的文件的源码:
Users.hbm.xml :
Next--->
OK--->
OK--->
Finish
双击左边出现的temp数据库,
将节点展开,可以看到temp库里都有哪些表,当然还有视图,存储过程,函数和触发器。这里我们只关注表。
切换回MyEclipse Java Enterprise视图,新建一个web工程,这里取名为hibetnate3.2,右击工程名--->MyEclipse--->Add Hibernate Capabilities...--->
如上勾选--->Next--->
Next--->
Next--->
Java Package后面的New...->
Finish--->
Finish.
可以看到,MyEclipse6.5已经为我们添加好了Hibernate3.2的所有jar包,并且已经自动生成了hibernate.cfg.xml文件和一个HibernateSessionFactory.java文件。
这里贴出这些自动生成的文件的源代码:
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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/temp</property> <property name="connection.username">root</property> <property name="connection.password">mysqladmin</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="myeclipse.connection.profile">temp</property> </session-factory> </hibernate-configuration>HibernateSessionFactory.java :
public class HibernateSessionFactory { private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION; static { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } private HibernateSessionFactory() { } public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); } return session; } public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } public static void setConfigFile(String configFile) { HibernateSessionFactory.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; } }
我们在src目录下新建一个db.domain包,然后再次切换到MyEclipse Database Explorer视图,temp--->Connected to temp--->temp--->table--->uers右击--->Hibernate Reverse Engineering...--->
Next--->
Next--->Finish--->切换回MyEclipse Java Enterprise视图。
下面贴出红框内的那些自动生成的文件的源码:
Users.hbm.xml :
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="db.domain.Users" table="users" catalog="temp"> <id name="id" type="integer"> <column name="id" /> <generator class="native" /> </id> <property name="name" type="string"> <column name="name" length="10" /> </property> <property name="age" type="integer"> <column name="age" /> </property> <property name="married" type="string"> <column name="married" length="2" /> </property> </class> </hibernate-mapping>Users.java :
public class Users implements java.io.Serializable { private Integer id; private String name; private Integer age; private String married; public Users() { } public Users(String name, Integer age, String married) { this.name = name; this.age = age; this.married = married; } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Integer getAge() { return this.age; } public void setAge(Integer age) { this.age = age; } public String getMarried() { return this.married; } public void setMarried(String married) { this.married = married; } }IBaseHibernateDAO.java :
public interface IBaseHibernateDAO { public Session getSession(); }BaseHibernateDAO.java :
public class BaseHibernateDAO implements IBaseHibernateDAO { public Session getSession() { return HibernateSessionFactory.getSession(); } }UsersDAO.java :
public class UsersDAO extends BaseHibernateDAO { private static final Log log = LogFactory.getLog(UsersDAO.class); public static final String NAME = "name"; public static final String AGE = "age"; public static final String MARRIED = "married"; public void save(Users transientInstance) { log.debug("saving Users instance"); try { getSession().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public void delete(Users persistentInstance) { log.debug("deleting Users instance"); try { getSession().delete(persistentInstance); log.debug("delete successful"); } catch (RuntimeException re) { log.error("delete failed", re); throw re; } } public Users findById(java.lang.Integer id) { log.debug("getting Users instance with id: " + id); try { Users instance = (Users) getSession().get("db.domain.Users", id); return instance; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } public List findByExample(Users instance) { log.debug("finding Users instance by example"); try { List results = getSession().createCriteria("db.domain.Users").add( Example.create(instance)).list(); log.debug("find by example successful, result size: " + results.size()); return results; } catch (RuntimeException re) { log.error("find by example failed", re); throw re; } } public List findByProperty(String propertyName, Object value) { log.debug("finding Users instance with property: " + propertyName + ", value: " + value); try { String queryString = "from Users as model where model." + propertyName + "= ?"; Query queryObject = getSession().createQuery(queryString); queryObject.setParameter(0, value); return queryObject.list(); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } } public List findByName(Object name) { return findByProperty(NAME, name); } public List findByAge(Object age) { return findByProperty(AGE, age); } public List findByMarried(Object married) { return findByProperty(MARRIED, married); } public List findAll() { log.debug("finding all Users instances"); try { String queryString = "from Users"; Query queryObject = getSession().createQuery(queryString); return queryObject.list(); } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } public Users merge(Users detachedInstance) { log.debug("merging Users instance"); try { Users result = (Users) getSession().merge(detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } public void attachDirty(Users instance) { log.debug("attaching dirty Users instance"); try { getSession().saveOrUpdate(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } public void attachClean(Users instance) { log.debug("attaching clean Users instance"); try { getSession().lock(instance, LockMode.NONE); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } }
相关文章推荐
- 在Myeclipse中移除项目对Hibernate的支持
- MyEclipse中删除对Struts、Hibernate、Spring的支持
- MyEclipse中删除对Struts、Hibernate、Spring的支持
- MyEclipse中删除对Hibernate的支持
- MyEclipse中删除对Struts、Hibernate、Spring的支持 (转)
- 在Myeclipse10.7中移除项目对Hibernate的支持
- MyEclipse2014版本上的原有的SH项目添加Hibernate支持。
- 使用Myeclipse内置Ant编译项目时提醒警告java\lang\Object.class(java\lang:Object.class): 主版本 51 比 50 新,此编译器支持最新的主版本
- MyEclipse 5.0 M1 发布 支持Eclipse 3.2
- 在Myeclipse中移除项目对Hibernate的支持
- MyEclipse10.5添加SS2H支持及Hibernate逆向生成BEAN
- Myeclipse自动生成java的Bean和BeanName.hbm.xml文件(java项目必须支持Hibernate)
- MyEclipse 5.0 M1 发布 支持Eclipse 3.2
- MyEclipse添加hibernate支持(1)
- 在Myeclipse中移除项目对Hibernate的支持
- MyEclipse添加hibernate支持(2)
- myeclipse重新添加spring.hibernate.struts支持
- MyEclipse中删除对Struts、Hibernate、Spring的支持
- MyEclipse下完美解决Hibernate 3.2与Spring 2.0+冲突问题
- MyEclipse 2013 删除 Hibernate 等 Facet 支持