第一步:准备依赖
1、Spring-core beans expression context aop tx jdbc web webmvc
2、Druid MySQL-connector-java mybatis mybatis-spring
3、 Log4j slf4j-api slf4j-log4j12
4、Jstl servlet-api Lombok aspectjweaver
第二步:项目准备
1、数据库准备,准备好测试要用的表及数据
2、架构设计
3、bean中的类(属性与数据库中的表对应)
User
条件查询时封装的条件类
条件查询时封装的条件类QueryBean
4、mapper接口,以及对应方法的xml文件
UserMapper接口
UserMapper.xml
5、service接口,以及实现类(使用mapper对象)
传统的方式是
1:获取Factory对象,new SqlSessionFactoryBuilder().build(输入流);
2:获取SqlSession对象,Factory.openSession()
3:获取mapper对象,SqlSession.getMapper()
整合后的方式为
1.配置MapperFactoryBean(一次只能创建一个) mapperScannerConfigurer(批量创建,从配置的包中扫描所有赛接口,并且创建代理对象)
2.两个属性,一个是要创建的接口,一个是sqlsessionfactory
3.配置sqlsessionfactory,几个主要属性
数据源dataSource
配置别名typeAliasesPackage
关联mapper映射文件mapperLocations
关联mybatis的主配置文件configLocation
applicationContext.xml
IUserService
UserServiceImpl
6、这时可先测试一下代码,使用测试类App测试增删改查
App
第三步:添加事务控制
1、添加依赖 aspectj
2、配置事务管理器,本质上是一个
3、配置事务(两种方式)
1.xml方式
复制代码
aop:config
<aop:pointcut id=“pointcut” expression=“execution( * com.test.ssm.service….(…))”/>
<aop:advisor advice-ref=“txAdvice” pointcut-ref=“pointcut”/>
</aop:config>
<tx:advice id=“txAdvice” transaction-manager=“txManager”>
tx:attributes
<tx:method name=“find*” read-only=“true”/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
复制代码
2.使用注解的方式
配置事务管理器,需要配置事务管理器注解驱动@Transactional即可
<tx:annotation-driven transaction-manager="txManager"/>
第四步:配置前端页面
1、导入依赖servlet-api
2、在web.xml中配置前端控制器(本质上是一个servlet)
客户端访问时会先通过前端控制器,再通过拦截器
复制代码
dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springMVC.xml 2 dispatcherServlet *.do 复制代码 注意:配置中的文件关联有没有将配置信息引入,可以在springMVC中使用import标签进行引入复制代码
<?xml version="1.0" encoding="UTF-8"?><!--引入后台的Spring配置文件-->
<import resource="classpath:applicationContext.xml"/>
复制代码 3、在web.xml中配置编码过滤器,解决中文乱码问题
复制代码
characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true characterEncodingFilter /* 复制代码 4、在springMVC中配置拦截器,拦截想要跳过登录界面访问受保护资源的请求复制代码
mvc:interceptors
mvc:interceptor
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login.do"/>
</mvc:interceptor>
</mvc:interceptors>
复制代码
拦截器
MyInterceptor
第五步:编写Controller和访问页面
在web.xml中添加如下代码,可以默认访问此页面
UserController
页面代码
index.html
下面两个页面在WEB-INF下的views里,是受保护页面,list中现在还没有分页功能,将page.list替换为list即可,分页功能在下篇博客中详细说明。
edit.jsp
list.jsp
第六步:加入多条件查询
可以将条件封装到一个类中的属性上
条件查询时封装的条件类QueryBean
sql查询语句select * from users where name like concat(’%’,#{},’%’),concat的作用是合并字符串
多条件查询xml中的配置