一.Spring核心配置文件applicationContext.xml的配置以及Java类的注解
i:修改spring.xml—加载数据库连接信息的属性文件
加载上方的jabc-config.properties数据库连接的基础信息
ii:配置Druid数据源的Bean
利用阿里巴巴的数据库连接池,根据上方的jabc-config.properties的文件创建一个dataSource连接信息
iii:配置SqlSessionFactory的Bean,并注入DataSource
把数据库连接存放在工厂中
iiii:配置自动扫描mapper的Bean—MapperScannerConfigurer
把上方的mapper接口文件都自动注入到IoC容器中,实现类Bean的名称默认为接口类名的首字母小写
二.@Transactional 注解
@Transactional 实质是使用了 JDBC 的事务来进行事务控制的
@Transactional 基于 Spring 的动态代理的机制
三.代码
1.controller层
@Controller
public class StudentController {
@Autowired
StudentService ss;
public String query(){
List<Student> list = ss.query();
System.out.println(list);
return null;
}
public String add(Student student){
ss.add(student);
return null;
}
//public void update(Student student);
public String update(Student student){
ss.update(student);
return null;
}
//public Student queryById(Integer id);
public Student queryById(Integer id){
Student student = ss.queryById(id);
System.out.println(student);
return student;
}
//public void delete(Integer id);
public void delete (Integer id){
ss.delete(id);
}
2.dao层
public interface StudentDao {
public List<Student> query();
void add(Student student);
public void update(Student student);
public Student queryById(Integer id);
public void delete(Integer id);
3.entity层
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
4.service层
public interface StudentService {
List<Student> query();
void add(Student student);
void update(Student student);
Student queryById(Integer id);
void delete(Integer id);
}
5.serviceimpl层
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
StudentDao dao;
@Override
public List<Student> query() {
List<Student> list = dao.query();
return list;
}
@Override
public void add(Student student) {
dao.add(student);
}
@Override
public void update(Student student) {
dao.update(student);
}
@Override
public Student queryById(Integer id) {
Student Byid = dao.queryById(id);
return Byid;
}
@Override
public void delete(Integer id) {
dao.delete(id);
}