Liferay是一个开源的portal框架,它目前的基础架构是基于Struts,Spring和Hibernate的。我们在Liferay上开发应用的时候,在需要使用数据库的时候可以方便的使用Spring中提供的对Hibernate的支持。
具体步骤如下
1, 在你的ext开发环境的/ext/ext-web/docroot/WEB-INF/目录下创建classes目录,降hibernate.cfg.xml文件和你的hbm文件放在这里。
这是hibernate.cfg.xml文件的例子.
Java代码
- < ?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>
- < property name="Hibernate.connection.driver_class">com.mysql.jdbc.Driver< /property>
- < property name="Hibernate.connection.password">luser< /property>
- < property name="Hibernate.connection.url">jdbc:mysql://localhost:3306/lportal< /property>
- < property name="Hibernate.connection.username">luser< /property>
- < property name="Hibernate.dialect">org.hibernate.dialect.MySQLDialect< /property>
- < property name="Hibernate.show_sql">true< /property>
- < mapping resource="example.hbm.xml"/>
- < /session-factory>
- < /hibernate-configuration>
- < ?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>
- < property name="Hibernate.connection.driver_class">com.mysql.jdbc.Driver< /property>
- < property name="Hibernate.connection.password">luser< /property>
- < property name="Hibernate.connection.url">jdbc:mysql://localhost:3306/lportal< /property>
- < property name="Hibernate.connection.username">luser< /property>
- < property name="Hibernate.dialect">org.hibernate.dialect.MySQLDialect< /property>
- < property name="Hibernate.show_sql">true< /property>
- < mapping resource="example.hbm.xml"/>
- < /session-factory>
- < /hibernate-configuration>
example.hbm.xml是你定义的hbm文件,这里就不赘述了。
2,在你的DAOImpl类中使用Spring提供的HibernateTemplate,
Java代码
- this.hibernateTemplate = new HibernateTemplate(sessionFactory);
- this.hibernateTemplate = new HibernateTemplate(sessionFactory);
sessionFactory是org.hibernate.SessionFactory,用于创建Session。
然后就可以进行数据库操作了。
Java代码
- //查询
- public YourPOJO getByPrimaryKey(final long yourId) {
- return (YourPOJO ) this.hibernateTemplate.execute(new HibernateCallback() {
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- Criteria criteria = session.createCriteria(YourPOJO .class)
- .add(Restrictions.eq("yourId", yourId));
- return criteria.uniqueResult();
- }
- });
- }
- //创建
- public void create(final YourPOJO pojo) {
- this.hibernateTemplate.save(pojo);
- }
- //修改
- public void update(final YourPOJO pojo) {
- this.hibernateTemplate.saveOrUpdate(pojo);
- }
- //删除
- public void delete(final YourPOJO pojo) {
- this.hibernateTemplate.delete(pojo);
- }
【编辑推荐】