1. 程式人生 > >struts,spring和Hibernate整合(註解式)

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

首先編寫可持久化的實體

@Entity
@Table(name = "Stock")
public class Stock {
    @Id //標識實體中ID和底層資料表的主鍵統一
    @GeneratedValue
    private int id;     //股票編號
    @Column
    private String name;//股票名稱   
    @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.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=root
jdbc.password=root

web.xml和上一篇的相同載入配置檔案,註冊過濾器和攔截器

相關推薦

strutsspringHibernate整合註解

首先編寫可持久化的實體@Entity @Table(name = "Stock") public class Stock { @Id //標識實體中ID和底層資料表的主鍵統一 @GeneratedValue private int id; //

Spring boot Mybatis 整合註解

之前寫過一篇關於springboot 與 mybatis整合的博文,使用了一段時間spring-data-jpa,發現那種方式真的是太爽了,mybatis的xml的對映配置總覺得有點麻煩。介面定義和對映離散在不同的檔案中,閱讀起來不是很方便。於是,準備使用

SpringSpringMVChibernate整合小demo

DeptController @Controller public class DeptController { //植入service @Resource private IDeptService deptService; @Reques

使用註解方式進行springhibernate整合

整合spring和hibernate需要五個要素,分別包括持久化的類, 資料來源,SessionFactory, TransactionManager和持久化操作的DAO類。 持久化類: @Entitypublicclass Spitter {      private

SpringHibernate整合xml配置

1、基於xml的配置 dbconfig.properties資料來源檔案配置 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/databaseName user=root pass

輕輕鬆鬆學習SpringBoot2:第二十五篇: Spring BootMongodb整合完整版

今天主要講的是Spring Boot和Mongodb整合我們先來回顧一下前面章節的相關內容前面我們講了SpringBoot和mysql整合,並且講了操作資料庫的幾種方式自動生成表資料庫操作操作篇回到正題,mongodb的安裝在這就不累述了,win版本的去官網下載,然後一直下一

Mybatis—springmybatis整合

上一篇文章我們講解了《Mybatis—查詢快取(九)》下面我們繼續來講解spring和mybatis整合。 【整合思路】 需要spring通過單例方式管理SqlSessionFactory。 spring和mybatis整合生成代理物件,使用SqlSe

spring整合quartz任務排程註解

配置springmvc.xml xmlns 多加下面的內容、 xmlns:task="http://www.springframework.org/schema/task" 然後xsi:schemaLocation多加下面的內容、 http://w

將osworkflow與springhibernate整合的基本介紹

1. 將osworkflow與spring和hibernate結合的原因     1)簡化對osworkflow的配置     2)利用hibernate框架的一些特性,如持久化,快取等     3)事務管理,osworkflow本身是不支援事務的,而事務是作為一個

springhibernate整合使用getCurrentSession方法

spring和hibernate整合使用getCurrentSession()方法獲得session例項時,一定記得在sessionFactory的bean中新增<prop key="hibernate.current_session_context_class"&g

spring的bean管理註解方式

elasticsearch1.Spring的Bean管理的中常用的註解@Component:組件.(作用在類上)public interface UserDao { public void sayHello(); } @Component(value="userDao")

Spring --13.Spring中AOP程式設計註解方式

1、基於註解AOP入門案例 1.2、建立工程引入依賴 pom.xml <dependencies> <dependency> <groupId>org.springframework</groupId&

SpringMVC框架11.2 入門程式—處理器對映器處理器介面卡註解方式

1.DispatcherServlet載入時會預設載入 DispatcherServlet.properties 檔案,目的是為了載入裡面的處理器對映器、處理器介面卡、檢視解析器等各個元件;(所以 springmvc.xml 中 兩種處理器介面卡、兩種處理器介面卡、檢視解析器都可以省略;)

Spring boot Mybatis 整合完整版

個人開源專案 springboot+mybatis+thymeleaf+docker構建的個人站點開源專案(集成了個人主頁、個人作品、個人部落格) 推薦開源專案 開源的springboot介面文件元件swagger2 更多幹貨 SpringBoot

Spring:依賴注入註解方式、泛型依賴注入

註解方式實現依賴注入支援手工裝配和自動裝配(慎用) 一般是宣告bean和bean直接的依賴關係的時候用比較好 使用註解方式時,也支援給Field注入值(在XML中不可以給Field注入)。另外就是setter方式注入。 @Resource註解在spring安裝目錄的lib\

JavaWeb開發基於Springmybatis框架學習日誌

我更想把它當成我的日誌: 今天是迴歸javaweb的第一天…… 先說一下我對spring框架的理解(個人意見):從控制器捕獲了url然後用方法執行某個jsp,如果需要執行特殊的操作,例如將資料庫裡的資料展示在jsp頁面中,就需要在控制器方法中呼叫

Spring之事務管理宣告

一、XML方式的宣告式事務管理 1.配置事務管理器 <beans> <!-- 引入屬性檔案--> <context:property-placeholder location="classpath:jdbc.properties"/> <!

Spring整合Struts2Hibernate+Maven之請求的處理

關於請求的處理,即涉及前面提到Struts2。 具體流程:頁面發出請求->攔截action->處理action->具體到那個類的哪個方法處理。 頁面發出請求: fm.action="/Login_register"; fm.subm

Spring整合Struts2Hibernate+Maven之SSH的配置檔案

上次講到的是maven專案的建立以及pom.xml的配置。 這裡推薦一個網站:maven整合jar包,這裡可以查詢並生成配置檔案中jar包匯入格式的文字,複製貼上到pom.xml中即可由idea自動下載並匯入專案。 resources資料夾 建立ssh的配置檔案至上章圖片中的res

Spring整合Struts2Hibernate+Maven之Maven專案建立

趁著畢設的功夫,寫一些東西。也算是記錄個人平時畢設完成的過程。 建立專案 工具:intellij idea+JDK1.6+Maven 第一步:New Project ->點選左側maven ->勾選Create fromarchetype 後選擇maven-archet