spring+springMVC+MyBatis集成
2.在WEB-INF中创建lib文件夹,放入jar包
3.右键设置为library
4.创建文件夹resources,上色,设置为资源文件夹
5.创建applicationContext.xml资源文件
Spring官方文档中找到配置文件
6.拷贝到applicationContext中进行修改,创建测试bean,Data类的注入
7.测试spring环境是否成功,新建测试包,上色
8.要改为spring的测试环境,先导junit的测试包,再导入spring的测试
RunWith:运行spring的测试
ContextConfiguration:读取核心配置文件中配置的bean
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringTest {
@Autowired
private Date date;
@Test
public void test() throws Exception {
//测试。。。
System.out.println(date);
}
}
9.注入成功说明spring运行环境可以使用
抽取测试类,BaseTest,以后的测试类直接继承
Spring的环境就搭建完成
Spring和springmvc都有自己的容器context,形成子从上下文
3.配置监听器,监听context
org.springframework.web.context.ContextLoaderListener
读取:applicationContext.xml spring容器初始化
transformWsdlLocation
classpath:applicationContext.xml
4.读取:applicationContext-mvc.xml 文件
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext-mvc.xml
1
springmvc
/
5.设置字符编码过滤器
EncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
EncodingFilter
/*
6.完整web.xml配置
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext-mvc.xml
1
springmvc
/
EncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
EncodingFilter
/*
在tomcat8以前的版本需要设置get请求
在tomcat的xml文件中
以上都是web.xml的配置细节
下面配置applicationContext-mvc.xml
7.配置applicationContext-mvc.xml
Spring和spring-mvc集成就完成了
mybatis
spring+mybatis+事务
other
1.配置applicationContext.xml
2.配置连接池
3.要集成mybatis必须配置配置sqlSessionFactory
就相当于取代了MyBatis-Config.xml文件的作用,读取资源文件,创建sqlSessionFactory
原本要引入到MyBatis-Config.xml中的mapper.xml就注入到sqlSessionFactory中
Mapper应该是一个集合
使用Mapper接口时处理数据库数据,直接注入接口,mybatis自动实现,然后调用方法,sqlSessionFactory已经自动实现了
4.开启事务
5.完整applicationContext.xml
6.创建mapper.xml映射文件
INSERT into t_dept(name) values(#{name})
映射数据库的sql,运行时applicationContext.xml中的sqlsessionFactory会找到映射文件
然后找到映射文件里面命名空间中命名的mapper接口,然后自动实现接口
7.创建相应的结构
8.按照规范
XxMapper接口需要与XxMapper.xml放在同一个mapper包下面
现在将XxMapper.xml放在资源文件夹中com/lr/ssm/mapper中,文件在编译时会编译到一起
保证结构正确
编译过后
创建实体类
public class Dept {
private Long id;
private String name;
}
10.创建mapper接口
public interface DeptMapper {
//查询所有
List loadAll();
//添加一个
void save(Dept dept);
}
11.创建service层接口
public interface IDeptService {
//查询所有
List loadAll();
//添加一个
void save(Dept dept);
}
12.创建service实现,并且调用接口方法
@Service
public class DeptServiceImpl implements IDeptService{
//直接注入自动实现
@Autowired
DeptMapper deptMapper;
//卧槽。。注意单词错误。。
@Override
public List loadAll() {
List depts = deptMapper.loadAll();
return depts;
}
//注意开启事务
@Override
public void save(Dept dept) {
deptMapper.save(dept);
}
}
13.Controller层测试
@RequestMapping("/loadAll")
@ResponseBody
public List loadAll(){
System.out.println("=-----------===============");
List list = iDeptService.loadAll();
//System.out.println("=-----------===============");
return list;
}
14.Service层开启注解事务
失败回滚
@Service
@Transactional(readOnly = true,propagation = Propagation.SUPPORTS)
public class DeptServiceImpl implements IDeptService{
//直接注入自动实现
@Autowired
DeptMapper deptMapper;
//卧槽。。注意单词错误。。
@Override
public List loadAll() {
List depts = deptMapper.loadAll();
return depts;
}
//注意开启事务
@Override
@Transactional
public void save(Dept dept) {
deptMapper.save(dept);
}
}
集成完成