struts,spring和Hibernate整合(注解式)

来源:互联网 发布:js获取字符串字节长度 编辑:程序博客网 时间:2024/05/04 01:14

首先编写可持久化的实体

@Entity@Table(name = "Stock")public class Stock {    @Id //标识实体中ID和底层数据表的主键统一    @GeneratedValue    private int id;     //股票编号    @Column    private String name;//股票名称   YYM教育    @Column    private int count;  //股数    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getCount() {        return count;    }    public void setCount(int count) {        this.count = count;    }}


编写dao层的接口以及实现类


public interface IStockDAO {    public int addStock(Stock stock);}

@Repository("stockDAO")public class StockDAOImpl implements IStockDAO {    //dao植入SessionFactory变量  重量级    @Autowired    private SessionFactory sessionFactory;    public int addStock(Stock stock) {        System.out.println(sessionFactory+"========================");        Session session = sessionFactory.getCurrentSession();        Serializable count=session.save(stock);        Integer cc=(Integer)count;        return cc.intValue();    }}

编写service的接口以及实现类 

public interface IStockService {    public int saveStock(Stock stock);}

@Service("stockService")public class StockServiceImpl implements IStockService {    //植入dao的接口变量    @Resource(name = "stockDAO")    private IStockDAO dao;    @Transactional    public int saveStock(Stock stock) {        return dao.addStock(stock);    }}

编写action

@Controller@Scope(value = "prototype")@ParentPackage("struts-default")@Namespace("/")public class StockAction extends ActionSupport implements ModelDriven<Stock> {   //Entity变量    private Stock stock=new Stock();    @Resource(name = "stockService")    private IStockService service;    @Action(value = "addStock",results = {@Result( name = "success",location = "/success.jsp"),@Result(name="input",location = "/add.jsp")})    public String execute() throws Exception {        int count = service.saveStock(stock);        if (count>0) {            return SUCCESS;        }else {            return INPUT;        }    }    public Stock getModel() {        return stock;    }}

编写配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd     http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">    <!--开启包扫描器-->    <context:component-scan base-package="cn.happy"></context:component-scan>    <!--1.Datasource-->    <!--1.配置数据源c3p0-->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="${jdbc.driverClassName}"/>        <property name="user" value="${jdbc.username} "/>        <property name="password" value="${jdbc.password}"/>        <property name="jdbcUrl" value="${jdbc.url}"/>    </bean>    <!--jdbc.properties-->    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>    <!--2.SessionFactory         类:Local-->      <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource"></property>          <property name="hibernateProperties">              <props>                   <!--hibernate.xxxxxx必须以hibernate-->                  <prop key="hibernate.show_sql">true</prop>                  <prop key="hibernate.format_sql">true</prop>                  <prop key="hibernate.hbm2ddl.auto">update</prop>                  <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>                  <!--with current thread bind session-->                  <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>              </props>          </property>          <property name="packagesToScan" value="cn.happy.bean"></property>    </bean>    <!--5.事务管理器-->    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory"></property>    </bean>    <!--6.事务-->    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven></beans>

数据库链接jdbc.properties

jdbc.driverClassName=oracle.jdbc.OracleDriverjdbc.url=jdbc:oracle:thin:@localhost:1521:orcljdbc.username=rootjdbc.password=root

web.xml和上一篇的相同加载配置文件,注册过滤器和拦截器





原创粉丝点击