面向接口编程:接口的目的是用来抽象方法的,接口里面只是定义方法,最终的方法在实现类里面
目的:实现了层级的解耦
控制层
UserController
public class UserController{
@Autowired //依赖注入
private UserService userService;
}
业务层
UserService 接口
public interface UserService{
}
UserServiceImpl 实现类 //接口和实现类是实现关系
public class UserSerImpl implements UserService{
}
UserMapper 持久层
public interface UserMapper{//持久层的接口
public List<User> findAll();//这个方法表示要查询user表中的所有数据
数据库不认识findAll()方法,只认sql语句,所有要转化成sql,sql要去映射文件里写(xml)
}
编译mapper的映射文件 (resources=>mybatis=>mappers=>创建UserMapper.xml)
Mybatis最终是要操作数据库 是半自动化ORM 其中的SQL要自己写
Mybatis根据接口的规范,需要在自己指定的映射文件中添加sql语句,从而实现数据的操作
特点:一个接口对应一个映射文件
UserMapper.xml 里
//namespacce是mybatis映射文件的唯一标识,与接口对应
<mapper namespace= "com.jt.mapper.UserMapper"> //接口的路径 一对一对应
//标签说明:1查询 select标签 2 新增 insert标签 3更改 update标签 4删除 delete标签
<select id ="findAll" resultType="com.jt.pojo.User"> select * from demo_user </select> //select标签 id属性 必须与方法名称一致 resultType 返回值pojo类型
resultType="com.jt.pojo.User" 把结果集封装成对象,在这里标识
调用接口方法,获取返回值类型
List<User> userList = userMapper.findAll();
System.out.println(userList);
本文介绍了面向接口编程的概念,强调了接口在解耦系统层级中的作用。通过一个具体的例子展示了在Spring MVC中,如何使用接口进行依赖注入。在业务层,UserService接口被实现为UserServiceImpl。在持久层,UserMapper接口定义数据库操作,而实际的SQL语句则在对应的UserMapper.xml映射文件中编写。MyBatis作为半自动化ORM框架,要求每个接口对应一个映射文件,通过namespace与接口路径一对一对应,利用select标签等进行SQL定义,实现数据操作。
1万+

被折叠的 条评论
为什么被折叠?



