- 零基础学Struts
- 卜炟等编著
- 314字
- 2021-03-29 12:06:41
15.3 DAO层设计
15.3.1 Spring管理SessionFactory
通过Spring定义数据源,并配置和管理SessionFactory。该SessionFactory为其他DAO组件的持久化访问提供支持,代码如下所示。
<! -- 定义数据源Bean --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost/mystruts2</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <! -- 定义SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">false</prop> </props> </property> <property name="mappingResources"> <list> <value>net/hncu/po/User.hbm.xml</value> </list> </property> </bean>
15.3.2 创建DAO接口
新建UserDAO接口,该接口定义了两个方法,分别用来进行添加用户和根据用户名查找用户操作,代码如下所示。
package net.hncu.dao; import net.hncu.po.User; public interface UserDAO { //添加用户 public void add(User user); //根据用户名查找用户 public User findUser(String username); }
15.3.3 创建DAO实现类
新建UserDAOImpl类,该类用来实现UserDAO接口。在该类中添加相应方法的具体操作,代码如下所示。
package net.hncu.dao; import java.util.List; import net.hncu.po.User; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{ //添加用户 public void add(User user) { getHibernateTemplate().save(user); } //根据用户名查找用户 public User findUser(String username) { List l = getHibernateTemplate().find("from User u where u.username = ? ", username); if(l ! = null && l.size() >= 1) { return (User) l.get(0); } return null; } }
15.3.4 配置DAO组件
在Spring配置文件中定义HibernateTemplate模板类,并为其注入SessionFactory实例。同样配置DAO组件,并为其注入HibernateTemplate实例,代码如下所示。
<! -- 定义hibernateTemplate --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <! -- 配置DAO组件 --> <bean id="userDao" class="net.hncu.dao.UserDAOImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"/> </property> </bean>