使用注解开发
面向接口编程:
之前学过面向对象编程,也学习过接口,真正开发中,很多时候会选择面向接口的编程。
根本原因:解耦
可拓展,提高复用,
分层开发中,上层不用管具体的实现
大家都遵守共同的标准,使得开发变得容易,规范性更好
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来说就不那么重要了;
而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各个模块之间的交互,在系统设计之初都是要着重考虑额,这也是系统设计的主要工作内容,面向接口编程就是指按照这种思想来编程。
关于接口的理解
接口从更深层次的理解,应是定义(规范,约束)与实现的分离。
接口本身反映了系统设计人员对系统的抽象理解。
接口应有两类:
第一类是对一个个体的抽象,它可对应为一个抽象体(abstract class)。
第二类是对一个个体某一方面的抽象,既形成一个抽象面(interface)
一个体有可能有很多个抽象面,抽象体与抽象面是有区别的。
三个面向的区别:
面向对象 我们考虑问题时,以对象为单位,考虑他的属性及方法
面向过程 我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现。
接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题,更多的体现是对系统整体的架构
使用注解开发
简单增删改查不用走mapper文件了
mapper接口
public interface UserMapper {
mybatis-config.xml 必须使用类注册
//使用类注册
<mappers>
<mapper class="com.zy.dao.UserMapper"/>
</mappers>
测试类
结果
User{id=1, name='zy', password='null'}
User{id=3, name='张六', password='null'}
User{id=4, name='王五', password='null'}
User{id=6, name='阿里', password='null'}
User{id=7, name='王三', password='null'}
User{id=9, name='李一', password='null'}
问题:无法进行映射 password
mybaitis执行流程剖析?
注解增删改查
我们可以在工具类创建的时候通过设置实现自动提交事务
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
openSession中参数设置为true;
增删改查
mapper接口
public interface UserMapper {
测试类
public class ZhuJieTest {
@Param
基本类型参数或者String需要加Param
引用类型不需要加
在sql中引用的名称就是@param(“ ”)中的名称。
Lombok
Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个
1、setting 插件 中 下载安装
2、在项目中导jar包使用
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
3、使用
在实体类中加@Data后看structure中方法,发现会自动生成
缺点:
构造器不能重载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律