ssm 三框架整合

ssm 三框架整合

使得 mybatis 框架能够 单独用

导入相关坐标

1、mysql - connect - java jar 包
2、mybatis 的jar 包
3、数据库链接池的jar 包 (druid  最强连接池)
4、测试 juit 坐标 

编写代码就行了

复习 mybatis。

mapper 代理开发 orm 的思想模式

<mapper namespace="com.lagou.dao.AccountDao">
    <select id="findAll" resultType="com.lagou.domain.Account">
        select *
        from Account;
    </select>
</mapper>

<!--resultType  是 集合中的类型 写List 会报错 第二次踩坑注意 -->

spring 单独在框架中的应用

相关坐标

1、spring 上下文坐标

2、spring 事务相关坐标

3、aop 切入点相关坐标

4、test junit 相关坐标

spring整合 mybatis

spring 怎么样 将 代理对象 整合进去 ?

观察一段代码

public class TestMybatis {
    @Test
    public void test() throws IOException {
        InputStream stream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession();
        AccountDao mapper = sqlSession.getMapper(AccountDao.class);
        List<Account> all = mapper.findAll();
        for (Account account : all) {
            System.out.println(account);
        }
    }
}

通过上述 我们发现 mapper 代理对象的获取 是通过 sqlSession 获取得到的 我们要获得 proxy 对象 我们就需要 在 spring 中 配置相应的 bean 标签 将 sqlSession 对象提交给 spring ioc 容器进行管理才行。

还需要导入一个整合包 我不理解

mybatis-spring
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       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/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--  开启 注解 扫描-->
    <context:component-scan base-package="com.lagou"></context:component-scan>

<!--    spring 整合 mybatis -->


<!--    将 sqlSessionFactory sqlsession mapper 交给 spring 进行管理即可 -->

<!--    sqlSessionFactory 交给 spirng  线程安全  但是  sqlSession  线程不安全  SqlSession 在 使用时 由工厂创建即可-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="typeAliasesPackage" value="com.lagou.domain"></property>
<!--    引入 mybatis 的核心配置文件 可以不用加载 除非有 额外功能-->
<!--    <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>-->
</bean>
<!--    创建数据库相关配置  引入 jdbc 配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.dirver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.pwd}"></property>

    </bean>
<!--   MapperScannerConfigurer 扫描该包下的所有接口 接口进行 扫描 并生成 该接口的代理对象 存到 ioc 容器中-->
    <bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--        配置 扫包路径-->
            <property name="basePackage" value="com.lagou.dao"></property>
    </bean>
<!--        mapper 的映射扫描-->
<!--
 InputStream stream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession();
        AccountDao mapper = sqlSession.getMapper(AccountDao.class);
-->
</beans>

SpringMVC 在 三框架中单独使用

导jar包

1、 spring-web mvc

2、servlet 包

3、jsp 包

4、jstl 包

springmvc 有个非常关键的组件 前端控制器 他是在web.xml 为文件中 配置的 前端控制器 == > 本质 :Servlet

如何配置 复习一下

<   <servlet>
<!--        servlet 的生命周期是  第一次请求来了  之后 才会进行 初始化方法-->
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
            <!--            在 服务 启动时就加载 spring mvc.xml  核心配置文件-->
        </init-param>
        <load-on-startup>1</load-on-startup>
<!--        配置为正整数  是 在服务器启动时就 执行实例化 进行初始化方法  -->
    </servlet>
<!--    配置 映射-->
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
<!--
            < url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
            < url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

它通常 与 中文乱码过滤器 一起使用

 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>

    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
<!--        对所有 资源进行拦截-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

spring 整合 spring mvc

spring 和 mvc 根本不用整合 父子关系。

但是需要 spring 和 web 容器整合 , 让web容器启动时 自动加载 spring 配置文件 , web 容器销毁时spring 的ioc 容器 也销毁。

借助 ContextLoaderListener 监听器实现。

还需要配置以恶搞全局参数 springxml

配置声明式事务

1、 配置事务管理器

<!--持久层技术 mybatis 使用: DataSourceTransactionManager -->
<!--    配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
    </bean>
 <!--开启 事务注解支持  -->
    <tx:annotation-driven></tx:annotation-driven>

如何 进行 批量删除

image-20220404213248034

重点是 sql 语句 的编写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值