精华内容
下载资源
问答
  • 2021-10-13 17:56:59

    1、Service层:业务层-->控制业务

    业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。

    好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

    2、Controller层:控制层-->调用业务层方法来控制业务逻辑

    controller层主要调用Service层里面的接口来控制具体的业务流程,控制层的配置也要在配置文件中进行。

    Controller和Service的区别是:Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计

    3、Dao/Mapper层:持久层,主要与数据库交互

    Dao层首先会创建Dao接口,接着就可以在配置文件中定义该接口的实现类;然后就可以在模块中调用Dao的接口进行数据业务的处理,而不用关注此接口的具体实现类是哪一个类,Dao层的数据源和数据库连接的参数都是在配置文件中进行配置的。

    更多相关内容
  • Java 通用Mapper的设计

    2021-03-22 11:55:21
    springBoot推荐使用JPA 它对sql 进行了高度映射如果你还是喜欢 自由的mybatis那我们今天来试试tk.mybatis.mapper 通用Mapper1. 引入依赖引入必要依赖2.编写application.yml我们使用阿里的连接池 驱动使用mysql 8.0 ...

    springBoot推荐使用JPA 它对sql 进行了高度映射

    如果你还是喜欢 自由的mybatis

    那我们今天来试试tk.mybatis.mapper 通用Mapper

    1. 引入依赖

    f314ba18d2c66478a71acd871fa031bb.png引入必要依赖

    2.编写application.yml

    我们使用阿里的连接池 驱动使用mysql 8.0 以上版本 常规操作

    4ebd01b6f5c3b50a831fcbc852c76395.png数据库配置

    3. 编写自己的工具类

    8b83d711520fcfbb583a14c6debca9bc.png通用Mapper

    我们看一下它继承的类 点击Ctrl 单击

    a72ae13328facbc86f6ae289c10c98b8.pngBaseMapper继承

    1. BaseMapper 继承了查询接口,新增接口,更新接口,删除接口

    查询接口

    1251c2d8e307ffddea5897ce6dac981d.pngBaseSelectMapper继承

    新增接口

    a7ce21fd4a454d192db995985e671af5.pngBaseInsertMapperji'cheng

    更新接口

    3ac61db07d7a6884af3632b07eb153c1.pngBaseUpdateMapper继承

    删除接口

    ae0eb0c8bfb12f296e9ec3659a45bbe7.pngBaseDeleteMapper继承

    我们最简单的增删改查,就不需要写sql了

    2. 除了BaseMapper 我们还使用了 IdsMapper InsertListMapper

    IdsMapper 我们可以对依据id进行操作 依据id 批量查询表数据 批量删除表数据

    InsertListMapper 没有继承 用于批量新增数据

    这里我们只贴一下继承

    68a0cd3cfcda30d3d82cfceab61aa520.pngIdsMapper继承

    我们只需要继承一下就可以 这些代码就不需要再次手动编写了

    4. 具体实例

    目录结构

    8e64565d715933603b2772ab9d89d3c4.png项目结构随意

    0fb2e00c3d4a15e616e8a34c9aaa4436.png这里是用户实体

    注意:一定要声明id 一定要声明id 因为框架不认识哪个字段是主键

    2. Mapper层

    2b71d3dc23dbfb960404406cf739f98a.png继承工具类

    注意:我们继承的Mapper是我们自己的工具类 不要引错了包

    3. service层

    f4402c8cf6a4b7978cbc8d78555ebec1.pngservice层

    4. serviceImpl层

    7722b3ac396f3c99961a4f5bf7d7ad1d.png查找和新增

    8fc69a26c090d5a29689f93eb385ea1a.png修改与删除

    web层 我就不多写了 大家也看腻了

    5. 启动类加入注解

    9b536c304cf4e8f06193b6c3e245000b.png启动类

    注意:引入包

    6. 小结

    很多人喜欢在实现类层再加上 Service AbstractService

    因为在实际操作中 我们在实现类层中 要加入缓存 队列 会显得很拘束

    对于复杂的查询,我们依旧可以使用xml配置复杂sql 两不耽误

    结束

    27a49f4c239d1a74bf80c7fe6725e0ce.png

    展开全文
  • 一、entity 别名: model ,domain 用途: 用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。 例子:user表的实体user public class User { /** * 用户id */ @Id @...

    一、entity层

    别名: model层 ,domain层
    用途: 实体层,用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。
    例子:user表的实体User

    public class User {
        /**
         * 用户id
         */
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        /**
         * 用户昵称
         */
        private String nick;
    
        /**
         * 手机号
         */
        private String mobile;
    
        /**
         * 头像地址
         */
        @Column(name = "head_image_url")
        private String headImageUrl;
    
      
        /**
         * 获取用户id
         *
         * @return id - 用户id
         */
        public Long getId() {
            return id;
        }
    
        /**
         * 设置用户id
         *
         * @param id 用户id
         */
        public void setId(Long id) {
            this.id = id;
        }
    
        /**
         * 获取用户昵称
         *
         * @return nick - 用户昵称
         */
        public String getNick() {
            return nick;
        }
    
        /**
         * 设置用户昵称
         *
         * @param nick 用户昵称
         */
        public void setNick(String nick) {
            this.nick = nick;
        }
    
        /**
         * 获取手机号
         *
         * @return mobile - 手机号
         */
        public String getMobile() {
            return mobile;
        }
    
        /**
         * 设置手机号
         *
         * @param mobile 手机号
         */
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        /**
         * 获取头像地址
         *
         * @return head_image_url - 头像地址
         */
        public String getHeadImageUrl() {
            return headImageUrl;
        }
    
        /**
         * 设置头像地址
         *
         * @param headImageUrl 头像地址
         */
        public void setHeadImageUrl(String headImageUrl) {
            this.headImageUrl = headImageUrl;
        }
    
        
    }
    

    二、mapper层

    别名: dao层
    用途: 对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射。
    示例:userMapper

    public interface userMapper {
        int deleteByPrimaryKey(Long id);
    
        int insert(user record);
    
        int insertSelective(user record);
    
        user selectByPrimaryKey(Long id);
    
        int updateByPrimaryKeySelective(user record);
    
        int updateByPrimaryKey(user record);
    }
    

    三、service层

    用途:业务service层,给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。
    示例:UserService

    public interface UserService extends Service<User> {
    
    }
    
    

    四、controller层

    别名:web 层
    用途: 控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。
    示例:UserController

    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Resource
        private UserService userService;
    
        @PostMapping("/add")
        public Result add(User user) {
            userService.save(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/delete")
        public Result delete(@RequestParam Integer id) {
            userService.deleteById(id);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/update")
        public Result update(User user) {
            userService.update(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/detail")
        public Result detail(@RequestParam Integer id) {
            User user = userService.findById(id);
            return ResultGenerator.genSuccessResult(user);
        }
    
        @PostMapping("/list")
        public Result list(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size) {
            PageHelper.startPage(page, size);
            List<User> list = userService.findAll();
            PageInfo pageInfo = new PageInfo(list);
            return ResultGenerator.genSuccessResult(pageInfo);
        }
    }
    
    展开全文
  • SSM是sping+springMVC+...存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层mapper层是直接跟数据库打交道的,他...

    SSM是sping+springMVC+mybatis集成的框架。

    MVC即model view controller。

    model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。

    service层。存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。

    mapper层=dao层,现在用mybatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。

    (多说一句,数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。)

    controller层。控制器,导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。

    在实际开发中的Service层可能被处理为实体Service层,而不是接口,业务逻辑直接写在Service(Class,不是Interface)层中,Controller直接调用Service,Service调用Mapper。

    当然了,Service之间也是可以互相调用!

    展开全文
  • Mapper的内置方法model就是实体类,对应数据库的表。controller是Servlet,主要是负责业务模块流程的控制,调用service接口的方法,在struts2就是Action。Service主要做逻辑判断,Dao是数据访问,与数据库...
  • entityA:entity就是属性类,通常定义在model里面,相当于MVC的M,属于数据模型B:一般得实体类对应一个数据表,其中的属性定义数据表中的字段,实体类的字段数量 >= 数据库表中需要操作的字段数量daoA...
  • mapper层的 .java 和 .xml

    2022-03-26 15:41:24
    mapper层 即数据层,也叫Dao层。 .java 和 .xml分别放在 java层 和 resource层 为了实现在maven默认环境下打包时,Mybatis的接口和mapper文件在同一包中,可以通过将接口文件放在src/main/java某个包中,而在src/...
  • DAO层(data access object) 数据访问层,和数据库的一张表相对应。通常在DAO层写接口,里面封装了和数据打交道的方法。 public interface AppDao{ ...Mapper层 直接对数据库进行操作,写入的是s
  • 目录 简介 entity层 ...存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层mapper层是直接跟数据库打交道
  • Mapper层参数传参

    2022-03-30 14:59:19
    文章目录 一、@Param注解 1.@Param注解单一属性 2.@Param注解JavaBean对象 @二、Java Bean传参法 一、@Param注解 1.@Param注解单一属性 Mapper层 OrderDoRes selectOrderViewByOrderSn(@Param("orderSn1") String ...
  • MyBatis实践之DAO与Mapper

    2020-09-02 16:09:31
    MyBatis前身是iBatis,是一个基于Java的数据持久/对象关系映射(ORM)框架.通过本文给大家介绍MyBatis实践之DAO与Mapper的相关知识,需要的朋友参考下吧
  • 作者:咖啡拿铁代码分层,对于任何一个Java开发来说应该都不陌生。...这样就可以降低之间的依赖,还能最大程度的复用各的逻辑。本文就来介绍下Java 项目的代码到底应该如何分层。1.背景说起应用分层,大部分...
  • @Component->public static TestUtil testUtil->...import com.xxxx.mapper.AlarmLogMapper; import com.xxxx.mapper.DefenceMapper;; import com.xxxx.model.AlarmLog; import lombok.extern.slf4j.S.
  • Mapper 中几种update的区别说明

    千次阅读 2021-03-10 01:02:15
    这两个update都是使用generator生成的mapper.xml文件中,对dao的更新操作update更新传回数据的所有字段,没有传回的字段保持原样。updateByPrimaryKey对实体类的字段全部更新(不判断是否为Null),即如果字段为空就...
  • 为了省事,直接在mapper层通过@select@update等注解形式写sql (此时大都是单表查询没有创建mapper.xml文件)代码如下: @Update("") void updateSortBySort(Integer newSort, Integer platform, Integer ...
  • 同类: mapper层 = dao层 作用: 对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的 三、service层 同类: 只有一个 service层 作用: service层 是针对 controller层的 controller,也...
  • Java逆向生成dao.xml:包括基础字段声明sql,保存,更新,批量保存,批量更新方法的声明等。配套的还有entity, dao,service,serviceImpl的生成文件,在其他下载资源中。
  • https://mp.csdn.net/mp_blog/creation/editor/123984796 使用地址教程在这里
  • 一键生成java代码、数据库设计文档、接口对接文档(dao、entity、mapper、service、controller),一键启动非常适合偷懒的各位
  • DAO层叫数据访问层,全称为data access object,也叫mapper层 。某个DAO一定是和数据库的某一张表一一对应的,其中封装了CRUD(增加Create、检索Retrieve、更新Update和删除Delete)基本操作,DAO只做原子操作。无论...
  • tk.mapper 新增一条数据之后,要想获得该信息的 id , 只需要在新增完数据之后,获取一下该实体类的 id。
  • javamapper文件批量新增和删除 和 遇到的问题 ## 批量添加 <insert id="insertRobotJobListEntity" parameterType="java.util.List"> insert into robot_job( robot_id, job_id, <foreach item=...
  • SSM 是 Spring + SpringMVC + Mybatis集成的框架。 MVC即model view controller。(模型,视图,控制器) ...二、mapper层(dao层) 数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。对数
  • 在mybatis数据库开发过程中,一开始是先写dao ,pojo然后通过映射文件来...<property name="enableSubPackages" value="true"/> sqlMapGenerator> 生成dao接口 <javaClientGenerator type="XMLMAPPER" targetPackage=...
  • 因为java没有保存行参的记录,所有java在运行的时候会把例如List queryAll(int offset,int limit);中的参数变成这样:queryAll(int arg0,int arg1),这样我们就没有...(mapper层) List<ProductOnAppBO> getProd
  • 由于根据条件查出来的值为多个,Mapper层用List来接收,Mapper.xml层返回类型即为返回值的类型 1://分类查找相对应的全部指南标题 List queryTittles(@Param("busguideBelongClass") String busguideBelongClass);...
  • Mapper

    2021-01-11 16:10:23
    一、Mapper 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:...
  • 测试进一步封装到Service4.定义Service接口的抽象方法5.实现Service接口的方法6.测试 介绍 使用SpringBoot和Mybatis Plus进行后端开发时,想要自定义SQL与Mapper方法,而不仅仅是使用逆向工程自动生成的那些方法。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,476
精华内容 40,590
关键字:

javamapper层

java 订阅