面向接口编程

本文介绍了面向接口编程的概念,强调了接口在解耦系统层级中的作用。通过一个具体的例子展示了在Spring MVC中,如何使用接口进行依赖注入。在业务层,UserService接口被实现为UserServiceImpl。在持久层,UserMapper接口定义数据库操作,而实际的SQL语句则在对应的UserMapper.xml映射文件中编写。MyBatis作为半自动化ORM框架,要求每个接口对应一个映射文件,通过namespace与接口路径一对一对应,利用select标签等进行SQL定义,实现数据操作。

面向接口编程:接口的目的是用来抽象方法的,接口里面只是定义方法,最终的方法在实现类里面

目的:实现了层级的解耦

控制层

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值