spring整合mybatis(SSM整合笔记)
SSM整合笔记(Intellij IDEA)
applicationContext.xml配置
- 注解扫描
- 配置数据源
- 配置Mybatis工厂,同时为它指定以上配置的数据源
- 配置Mapper接口的扫描,让spring自动扫描并配置同时交给sqlSessionFactory ------>尤其重要
- 其他配置
所有可能需要的架包
-
spring架包(为避免出问题,建议全部导入比较好)
-
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.9.RELEASE</version> </dependency> -
spring-jdbc架包(如果第一步已经导入,忽略此配置,这里还需要注意版本对应)
-
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.9.RELEASE</version> </dependency> -
数据连接池(哪一个都可以,自己能配置就行,这里以dbcp为例)
-
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.8.0</version> </dependency> -
mybatis-spring整合包
-
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> -
数据库驱动(mysql,sqlServer,Oracle等,这里以mysql为例)
-
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> -
mybatis架包
-
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> -
SpringMVC(如果继续完善成为WEB工程的话,会需要用得上)
-
<!--导入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> -
junit单元测试(排错使用)
-
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
到这里就差不多了,现在来详细解剖applicationContext.xml的·配置
-
applicationContext.xml
-
<?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> -
注解扫描(只要使用了注解,都要加入到包扫描)
-
<context:component-scan base-package="com.dao"/> <context:component-scan base-package="com.controller"/> -
配置数据源(每个人的数据库不一样,url等需要更改)
-
<!--配置数据源--> <!--;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> -
配置Mybatis工厂,并给它指定一个数据源,让它去访问数据库,同时给它指定一个mapper.xml文件(mybatis-config.xml就不需要配置了,但是如果需要也可以配置)
-
<!--配置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> -
配置mapper接口,也就是mapper文件对应的方法接口
-
<!--Mapper代理开发,使用spring自动扫描Mybatis的接口并装配--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.dao"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> -
MapperScannerConfigurer这个类能扫描mapper文件对应的那个接口,但是前提是要给那个接口使用注解@Mapper,同时也能给它指定一个接口对象名使用@Repository("name") value值为对应的接口所在的包
-
配置mapper映射文件 ( 名字可以随意 ) namespace="com.dao.UserMapper"是对应的接口所在的包,记得打上注解
-
<?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> -
到这里基本完成了Spring与mybatis的整合(可以在控制台访问数据库资源了)后面就是SpringMVC和Spring的结合了,完成这里,就能通过浏览器和JSP页面操作了。
配置WEB层
-
配置web.xml(这里可以写死,而且以后都不需要更改)
-
<?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> -
配置servlet——这里只能配置一个也就是DispatcherServlet,让它去分发那些处理(基本格式如下)
-
<servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping> -
配置文件关联(这个需要配置在servlet里,以便servlet去读取,如果报出以下错误,说明applicationContext.xml在servlet中没有读取到)
-
![]()
-
<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> -
配置过滤器(乱码处理----->主要是中文乱码)------>这个也是直接写死,后面不用改,如果遇到连这个过滤器也解决不了的,那么就放弃吧
-
<!--配置乱码处理--> <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> -
好了,现在WEB层也完成了。


浙公网安备 33010602011771号