ssm(spring+springmvc+mybatis)xml版的整合

1.导包:
这里写图片描述
2搭建包:
这里写图片描述

3.mybatis.cfg.xml:

<configuration>
<!-- 交给spring配置数据源-->
    <!-- <environments default="oracle">
        <environment id="oracle">
            <transactionManager type="jdbc"></transactionManager>
            <dataSource type="pooled">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
                <property name="username" value="zhubin"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>
    </environments> -->
    <!--配置映射具体文件 -->
    <mappers>
        <mapper resource="entity/empMap.xml"/>
    </mappers>
</configuration>

4.spring.xml

    <!-- 配置数据源 -->
    <bean id="comboPooledDataSourceID" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
        <property name="user" value="zhubin"/>
        <property name="password" value="123"/>
    </bean>

    <!-- 配置 工厂类,及加载mybatis配置文件,替代工厂的作用-->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
        <property name="dataSource" ref="comboPooledDataSourceID"/>
    </bean>

    <!--配置事务管理器  -->
    <bean id="dataSourceTransactionManagerID" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <!-- mybatis事务有jdbc管理,配置事务管理器应该由数据源管理,而不是像hibernate交由它的工厂管理-->
        <property name="dataSource" ref="comboPooledDataSourceID"/>
    </bean>

    <!-- 配置事务通知  指定哪些方法需要事务-->
    <tx:advice id="tx" transaction-manager="dataSourceTransactionManagerID">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>

    <!-- 配置事务切面 指定哪些方法(一般是service中的方法) -->
    <aop:config>
        <aop:pointcut expression="execution(* Dao.*.*(..))" id="pointcut"/>
        <aop:advisor advice-ref="tx" pointcut-ref="pointcut"/>
    </aop:config>

    <bean id="empDaoID" class="Dao.EmpDao">
        <property name="sqlsesionfactory" ref="sqlSessionFactoryBean"/>
    </bean>

    <bean id="empService" class="service.EmpService">
        <property name="empDao" ref="empDaoID"/>
    </bean>

    <!-- 扫描识别注解 -->
    <context:component-scan base-package="action"></context:component-scan>

    <!-- 识别注解在empaction中的引入的参数 @Resource(name="empService")  -->
    <context:annotation-config/>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

5.dao层(mapper):

private SqlSessionFactory sqlsesionfactory;
    public void setSqlsesionfactory(SqlSessionFactory sqlsesionfactory) {
        this.sqlsesionfactory = sqlsesionfactory;
    }
    public void add(Emp emp){
        SqlSession sqlSession = sqlsesionfactory.openSession();
        sqlSession.insert("empnamespace.addemp", emp);
        //int i=1/0;
        sqlSession.close();
    }

6.control:

@Controller
@RequestMapping(value="/emp")
public class EmpAction {
    private EmpService empService;
    @Resource(name="empService")
    public void setEmpservice(EmpService empService) {
        this.empService = empService;
    }
    @RequestMapping(value="/register")
    public String empRegister(Emp emp,Model model)throws Exception{
        empService.registerMethod(emp);
        model.addAttribute("message", "messsage");
        return "success";
    }
}

7.总结:比较复杂的spring.xml配置,理清楚 各层之间的bean引用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值