如何简化数据库操作
admin
2023-02-20 19:20:01
0

我们在写代码的时候,什么东西让我们最痛苦?  我想大部分人都会说是重复的工作,但是重复的工作又是指什么呢?  我想了想可能包含以下几点:

  1. 实体类

  2. 建sqlMapper.xml,或者其他框架的注解映射

  3. 建DAO去关联sqlMapper.xml,或者用代码去替代sql

  4. Controller

所以我在想,如果可以不需要实体类,不需要sqlMapper.xml,不需要Controller就好了,这样一来,如果需要开发一个后端功能,只需要写Service就好了,而这一段几乎是编程中最有乐趣的地方(仅限应用层编程,底层研发的当我没说)

而Mars-java就是在这样的一个思路下诞生的

  1. 只需要在Service的父接口上加上两个注解,即可对外提供一个http接口,又或者可以重新创建一个interface+注解 去代替Controller

  2. 操作数据库只需要一行注解,没有sqlMapper.xml

  3. 如果你能够接受无实体类编程的话,可以不创建实体类,而采用Map

简单示例

如果我们需要写一个登录接口只需要这么几步

创建一个DAO
@MarsDao
public abstract class UserInfoDAO {

    // 可以返回Map也可以返回实体类
    @MarsSelect(sql = "select * from `userinfo` where uname=#{uname} and passwd=#{passwd}")
    public abstract List selectUserInfo(Map userInfo);
}
创建Service

按照惯例来说,我们需要先写一个interface,再写一个实现类

Interface

public interface UserInfoService {

  UserInfo login(Map userInfo);
}

实现类

@MarsBean
public interface UserInfoServiceImpl implements  UserInfoService {

  public UserInfo login(Map userInfo){
    // 在这里面调用DAO
  }
}

开放一个http接口

只需要在UserInfoService上加两个注解即可

@MarsApi
public interface UserInfoService {

  @MarsReference(beanName = "userInfoServiceImpl",refName = "login")
  UserInfo login(Map userInfo);
}

整个流程省掉了很多重复性的代码,让我们专注在Service这一层

相关内容

热门资讯

刚刚,Claude Opus ... 昨晚,科技圈刚上演了一场开源 AI 大团建。英伟达创始人黄仁勋在社交媒体发表公开信,拉上 Meta、...
瑞松科技获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示瑞松科技(688090)新获得一项发明专利授权,专利名为“一种...
中信科智联申请数据关联方法专利... 国家知识产权局信息显示,中信科智联科技有限公司申请一项名为“一种数据关联方法及相关装置”的专利,公开...
福州AI产业发展跑出“加速度” 7月17日至20日,2026世界人工智能大会暨人工智能全球治理高级别会议在上海举行,吸引了全球目光。...
乌民众再度走上街头:不恢复他防... 虽然乌军总司令瑟尔斯基被解除了职位,但是被解职的费多罗夫并未恢复防长职务,乌克兰民众7月24日再度走...
姗姗来迟!万斯晒新生儿照片 美国副总统万斯夫妇日前迎来第4个孩子,他们7月24日终于晒出了新生儿的照片。据美国有线电视新闻网(C...
洗衣机正常洗,水出不出去什么原... 这种情况原因有很多种,1、电机故障造成洗衣机不能脱水,洗衣机电动机有嗡嗡声响而不转动,多数是电动机匝...
半自动洗衣机排不出水是什么原因 1、排水管扭曲,保持排水管的畅通才能让洗衣机正常排水。2、排水缓慢时,有可能是因排水口过高,排水阀拉...
西门子洗衣机经常故障 西门子是全球著名的家电品牌,其洗衣机在国内市场也拥有广泛的用户群体。然而,近年来,一些西门子洗衣机用...
西门子洗衣机平衡自检故障 西门子洗衣机平衡自检故障是一种非常常见的问题,它通常是由于洗衣机内部出现平衡不良的问题导致的。当洗衣...