需要要serviceImple类里添加二个注解
@Transactional()所有的方法都使用事务
@Transactional(readOnly=true) readOnly=true该方法不使用事务
package cn.et.ssmboot.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.et.ssmboot.dao.EmpDao;
import cn.et.ssmboot.entity.Emp;
import cn.et.ssmboot.service.EmpService;
import cn.et.ssmboot.utils.PageEntity;
import cn.et.ssmboot.utils.PageUtils;
/**
* 服务层掉用dao层的方法
* @author Administrator
* @Transactional()所有的方法都使用事务
* 除query
*/
@Transactional()
@Service
public class EmpServiceImpl implements EmpService {
//自动装配
@Autowired
private EmpDao dao;
/* 查询
* @see cn.et.emp.dao.impl.EmpDao#query(java.lang.String)
* readOnly=true该方法不使用事务
*/
@Transactional(readOnly=true)
public PageEntity query(String ename,int curPage){
//获取到总条数
int total = dao.queryCount(ename);
//再创建PageEntity实体类把当前页,每页显示多少条数据和总共多少条数据传进去
PageEntity pe = PageUtils.calc(curPage, 10, total);
List list = dao.queryPage(ename, pe.getStartIndex(), pe.getEndIndex());
pe.setData(list);
return pe;
}
/* 新增
* @see cn.et.emp.dao.impl.EmpDao#add(java.lang.String, java.lang.String)
*/
public void add(String ename,String sal){
dao.add(ename, sal);
}
/* 删除
* @see cn.et.emp.dao.impl.EmpDao#delete(java.lang.String)
*/
public void delete(String eno){
dao.delete(eno);
}
/* 修改
* @see cn.et.emp.dao.impl.EmpDao#update(en.et.emp.entity.Emp)
*/
public void update(Emp emp){
dao.update(emp);
}
public PageEntity query(String ename) {
// TODO Auto-generated method stub
return null;
}
}
然后还要在Main方法入口添加一个注解
@EnableTransactionManagement
表示全局启用事务
package cn.et.ssmboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 自动增加spring.xml文件,并且配置自动扫描
* 自动增加web.xml 同时在web.xml过滤器、拦截器...
*
* @EnableAutoConfiguration要替换成@SpringBootApplication
* 不然扫描不到dao层,装配不了EmpDaoImpl
* 要装配的对象必须位于HelloController类共一个包或它的子包下才可以扫描的到
*
* @EnableTransactionManagement
* 表示全局启用事务
*
* @ImportResource(locations="classpath:/spring.xml")
* 加载spring的配置文件,会自动加载spring里所有的bean
* 也会自动配置
*/
@EnableTransactionManagement
@ImportResource(locations="classpath:/spring.xml")
@SpringBootApplication
public class MyStarter {
public static void main(String[] args) {
//发布程序的方法入口
SpringApplication.run(MyStarter.class, args);
}
}