spring整合mybatis(SSM整合笔记)

SSM整合笔记(Intellij IDEA)

applicationContext.xml配置

  1. 注解扫描
  2. 配置数据源
  3. 配置Mybatis工厂,同时为它指定以上配置的数据源
  4. 配置Mapper接口的扫描,让spring自动扫描并配置同时交给sqlSessionFactory ------>尤其重要
  5. 其他配置

所有可能需要的架包

  1. spring架包(为避免出问题,建议全部导入比较好)

  2. <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.9.RELEASE</version>
        </dependency>
    
  3. spring-jdbc架包(如果第一步已经导入,忽略此配置,这里还需要注意版本对应)

  4. <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.9.RELEASE</version>
    </dependency>
    
  5. 数据连接池(哪一个都可以,自己能配置就行,这里以dbcp为例)

  6. <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.8.0</version>
    </dependency>
    
  7. mybatis-spring整合包

  8. <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
    </dependency>
    
  9. 数据库驱动(mysql,sqlServer,Oracle等,这里以mysql为例)

  10. <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
    </dependency>
    
  11. mybatis架包

  12.  <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
     </dependency>
    
  13. SpringMVC(如果继续完善成为WEB工程的话,会需要用得上)

  14.  <!--导入springMVC的架包-->
     <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.9.RELEASE</version>
     </dependency>
    
  15. junit单元测试(排错使用)

  16. <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
    </dependency>
    

到这里就差不多了,现在来详细解剖applicationContext.xml的·配置

  1. applicationContext.xml

  2. <?xml version="1.0" encoding="UTF-8"?>
    <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: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 https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!--1.开启注解扫描-->
      
        <!--2.配置数据源-->
        
        <!--3.配置Mybatis工厂,同时指定数据源,再与Mybatis结合-->
       
        <!--4.Mapper代理开发,使用spring自动扫描Mybatis的接口并装配-->
        <!--以上数据dao层,如果有能力可以进行分层开发,将以上配置在dao层-->
        <!--5.添加事务管理-->
      
        <!--6.开启事务注解-->
        <!--中间部分属于service层,属于业务层,业务层调dao层访问数据库-->
        <!--至于Controller层,具体在代码业务里,controller来调业务层,完成CURD的操作-->
        <!--以下配置不是必须,对于一个简单项目来说-->
        
        <!--1.事务横切(aop)-->
     
        <!--2.拦截器配置等-->
        
        <!--3.数据验证-->
    </beans>
    
  3. 注解扫描(只要使用了注解,都要加入到包扫描)

  4.  <context:component-scan base-package="com.dao"/>
     <context:component-scan base-package="com.controller"/>
    
  5. 配置数据源(每个人的数据库不一样,url等需要更改)

  6. <!--配置数据源-->
        <!--;characterEncoding=utf8--><!--如果访问数据库出现乱码,将前面的加在url的value中-->
        <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mysql?useSSL=false"/>
            <property name="username" value="root"/>
            <property name="password" value="221221"/>
            <!--最大数连接数-->
            <property name="maxTotal" value="20"/>
            <property name="maxIdle" value="10"/>
            <!--启动初始化-->
            <property name="initialSize" value="5"/>
     </bean>
    
  7. 配置Mybatis工厂,并给它指定一个数据源,让它去访问数据库,同时给它指定一个mapper.xml文件(mybatis-config.xml就不需要配置了,但是如果需要也可以配置)

  8. <!--配置Mybatis工厂,同时指定数据源,再与Mybatis结合-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--<property name="configLocation" value="classpath:Mybatis-config.xml"/>-->
            <property name="mapperLocations" value="classpath:UserMapper.xml"/>
    </bean>
    
  9. 配置mapper接口,也就是mapper文件对应的方法接口

  10. <!--Mapper代理开发,使用spring自动扫描Mybatis的接口并装配-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.dao"/>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
    
  11. MapperScannerConfigurer这个类能扫描mapper文件对应的那个接口,但是前提是要给那个接口使用注解@Mapper,同时也能给它指定一个接口对象名使用@Repository("name") value值为对应的接口所在的包

  12. 配置mapper映射文件 ( 名字可以随意 ) namespace="com.dao.UserMapper"是对应的接口所在的包,记得打上注解

  13.  <?xml version="1.0" encoding="UTF-8" ?>
     <!DOCTYPE mapper
             PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
             <mapper namespace="com.dao.UserMapper">
         <!-- 根据uid查询一个用户信息 -->
         <select id="selectUserById" parameterType="int"
                 resultType="com.pojo.user">
     		select * from user1 where uid = #{uid}
     	</select>
         <!-- 查询所有用户信息 -->
         <select id="selectAllUser"  resultType="com.pojo.user">
     		select * from user1
     	</select>
         <!-- 添加一个用户 ,#{uname}为com.mybatis.po.MyUser的属性值-->
         <insert id="addUser" parameterType="com.pojo.user">
     		insert into user1 (uname,usex) values(#{uname},#{usex})
     	</insert>
         <!-- 修改一个用户 -->
         <update id="updateUser" parameterType="com.pojo.user">
     		update user1 set uname = #{uname},usex = #{usex} where uid = #{uid}
     	</update>
         <!-- 删除一个用户 -->
         <delete id="deleteUser" parameterType="int">
     		delete from user1 where uid = #{uid}
     	</delete>
     </mapper>
    
  14. 到这里基本完成了Spring与mybatis的整合(可以在控制台访问数据库资源了)后面就是SpringMVC和Spring的结合了,完成这里,就能通过浏览器和JSP页面操作了。

配置WEB层

  1. 配置web.xml(这里可以写死,而且以后都不需要更改)

  2.  <?xml version="1.0" encoding="UTF-8"?>
     <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
              version="4.0">
         <servlet>
             <servlet-name>springMVC</servlet-name>
             <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
             <init-param>
                 <param-name>contextConfigLocation</param-name>
                 <param-value>classpath:applicationContext.xml</param-value>
             </init-param>
             <load-on-startup>1</load-on-startup>
         </servlet>
         <servlet-mapping>
             <servlet-name>springMVC</servlet-name>
             <url-pattern>/</url-pattern>
         </servlet-mapping>
     </web-app>
    
  3. 配置servlet——这里只能配置一个也就是DispatcherServlet,让它去分发那些处理(基本格式如下)

  4.  <servlet>
             <servlet-name></servlet-name>
             <servlet-class></servlet-class>
         </servlet>
         <servlet-mapping>
             <servlet-name></servlet-name>
             <url-pattern></url-pattern>
         </servlet-mapping>
    
  5. 配置文件关联(这个需要配置在servlet里,以便servlet去读取,如果报出以下错误,说明applicationContext.xml在servlet中没有读取到)

  6.  <servlet>
             <servlet-name></servlet-name>
             <servlet-class></servlet-class>
             <!--关联spring的配置文件-->
              <init-param>
                 <param-name>contextConfigLocation</param-name>
                 <param-value>classpath:applicationContext.xml</param-value>
             </init-param>
         </servlet>
         <servlet-mapping>
             <servlet-name></servlet-name>
             <url-pattern></url-pattern>
         </servlet-mapping>
    
  7. 配置过滤器(乱码处理----->主要是中文乱码)------>这个也是直接写死,后面不用改,如果遇到连这个过滤器也解决不了的,那么就放弃吧

  8.   <!--配置乱码处理-->
         <filter>
             <filter-name>characterEncodingFilter</filter-name>
             <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
             <init-param>
                 <param-name>encoding</param-name>
                 <param-value>true</param-value>
             </init-param>
         </filter>
         <filter-mapping>
             <filter-name>characterEncodingFilter</filter-name>
             <url-pattern>/*</url-pattern>
         </filter-mapping>
    
  9. 好了,现在WEB层也完成了。

以上都完成了,接下来是Controller,JSP页面的编写。

posted @ 2021-06-22 21:37  西南少年  阅读(64)  评论(0)    收藏  举报