增删改查模板java_基于模板模式用java语言实现基本的增删改查(快到起飞)

更新时间:2023-07-17 05:12:04 阅读: 评论:0

增删改查模板java_基于模板模式⽤java语⾔实现基本的增删改
查(快到起飞)
1. 模板模式介绍
⽹上有很多的模板模式的介绍,既然是我⾃⼰的笔记,⾃然要写⼀点关于我⾃⼰的理解。
其实关于模板模式,我国古代的时候就有过这样的例⼦-----北宋庆历间(1041年-1048年)中国的毕昇发明了⼀个活字印刷术。,从那会那开始,模板就成为了我们⽣活中不可或缺的⼀部分。回到正题,既然是模板模式,就是要将代码中重复率较⾼的的那⼏段代码给抽象出来,然后要使⽤这部分抽象出来的代码就可以直接继承或者是实现这部分抽象出来的代码即可。下⾯以常⽤的增删改查应⽤⼀下这个模板模式的设计模式(可以提⾼写代码的效率)。
2.MVC架构中抽象出增删改查
这⾥使⽤ssm架构来实现。
2.1 抽象Dao层模板
⼀般来说dao是⼀个个接⼝,每⼀个接⼝对应着⼀个mapper类,那么这每⼀个mapper⾥⾯就有可能增删改查,想象⼀下,要是⼀整个项⽬多达70,80多张甚⾄是100多张的时候,这个时候就显⽰出了模板模式的优势了,它可以让你少写很多的代码,⼤⼤提⾼写代码的速度。
下⾯来将dao层⾥⾯的基本的增删改查都抽象出来:
public interface TempleteDao {
foundint deleteByPrimaryKey(Integer id);
int inrt(T record);
int inrtSelective(T record);
大耳朵英语首页T lectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(T record);
和风日语网int updateByPrimaryKey(T record);
List lectAll();
}
2.2 抽象rvice层的接⼝模板
Templete;
import java.util.List;
public interface TempleteService {
// 添加
void add(T record);
// 修改
void update(T record);
actual// 查询全部
shieldsList list();
// 删除
void delete(Integer id);
// 获取⼀个
T get(Integer id);
// 想要实现必须要⼀个钩⼦,详细解释看下⾯
TempleteDao getDao();
}
钩⼦:
这⾥钩⼦的其实意思很简单,rvice层要调⽤dao层⾥⾯的⽅法,就需要⼀个dao对象,但是抽象出来的要么是接⼝,要么就是抽象类,况且这个dao对象千变万化,谁也不知道在使⽤这些模板的时候调⽤的是哪个dao对象,所以这⾥直接定义⼀个获取dao对象的⽅法,可以写在rvice接⼝⾥⾯,或者是
rvice实现类的接⼝⾥⾯都可以。⼀有这个钩⼦就可以把所有的⽅法全部勾住。
2.3 rvice层实现类
rvice实现类定义成抽象类,并且实现rvice接⼝
Templete;
import java.util.List;
public abstract class TempleteServiceImpl implements TempleteService{ @Override
public void add(T record) {
getDao().inrtSelective(record);
}
@Override
public void update(T record) {
getDao().updateByPrimaryKeySelective(record);
}
@Override
public List list() {
return getDao().lectAll();
氓翻译
}
@Override
public void delete(Integer id) {
getDao().deleteByPrimaryKey(id);
}
@Override
public T get(Integer id) {
return getDao().lectByPrimaryKey(id);
}
2.4 抽象controller的模板
Templete;
import java.util.List;
public abstract class TempleteController { public abstract TempleteService getService(); // 查询全部
public List list() {
return getService().list();
}
// 删除
greyhoundpublic String delete(Integer id) {
getService().delete(id);
return "redirect:/list";
}
// 获取⼀个
public T get(Integer id) {
return getService().get(id);
}
// 添加
public void add(){
}shag
服装配饰
public String saveAdd(T record) {
getService().add(record);
return "redirect:/list";
}
public void update(){}
// 更新
public String saveUpdate(T record) {
getService().update(record);
return "redirect:/list";
}
}
考研网官方网站
所有的模板直接定义好了,下⾯就可以愉快的使⽤了。
3. 使⽤阶段
3.1 直接继承dao接⼝模板
// 泛型⾥⾯⼀般是实体类
public interface DictionaryTypeDao extends TempleteDao {
// ⾥⾯什么都不⽤写,⽗接⼝⾥⾯直接都有了
}
3.2 直接继承rvice接⼝模板
public interface DictionaryTypeService extends TempleteService {
// ⾥⾯还是什么都不⽤写。。。
}
3.3 直接继承rvice实现类模板并实现原本就需要实现的rvice接⼝
特别需要注意的是,这⾥的“钩⼦”必须要提供给它
@Service
public class DictionaryTypeServiceImpl extends TempleteServiceImpl implements DictionaryTypeService{ @Autowired
DictionaryTypeDao dictionaryTypeDao;
// 提供钩⼦
@Override
public TempleteDao getDao() {
return dictionaryTypeDao;
}

本文发布于:2023-07-17 05:12:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/179885.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模板   实现   抽象   增删   模式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图