学习记录-mybatis+vue+elementUi实现品牌查询

news2024/11/18 21:25:24

和以往不同的是,这一次使用了vue和axios来接收后端传过来的参数,并且新建了impl文件来继承service层的接口。该过程实现一共分为4步骤

步骤一 ①mapper mapper 写mapper接口

其实就是写SQL语句了,第一步就是写SQL。这里使用的是注解开发,没有在配置文件中写语句。
查询的SQL语句:

/**
     * 查询所有
     * @return
     */
    @Select("select * from tb_brand")
    @ResultMap("brandResultMap")
    List<Brand>  selectAll();

步骤二 ②写service层代码

1. 新建BrandService接口。

以后就是按表来操作,这是brand表,就用这个名字,如果是user表就用UserService这个名字
下面是接口的代码,其实就是一个方法,和mapper中的方法名是一样的。
代码:

public interface BrandMapper {
    /**
     * 查询所有
     * @return
     */
    @Select("select * from tb_brand")
    @ResultMap("brandResultMap")
    List<Brand>  selectAll();
}

2. 写一个Java文件实现刚写的接口。

这里才是真正的实现service功能的作用,之前的接口文件可以认作一个管理的东西。以后所有的实现代码都一个一个罗列在现在这个文件里面,成为一个一个的方法。统一多了
代码:

public class BrandServiceImpl implements BrandService {
    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

    @Override
    public List<Brand> selectAll() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        List<Brand> brands = mapper.selectAll();
        sqlSession.close();
        return brands;
    }
}

在这里插入图片描述

步骤三③写servlet的代码

目前这里跟之前学习的差不多。不做过多说明。只是有一点,在继承service方法的时候,用的是: private BrandService brandService = new BrandServiceImpl();

核心代码:

@WebServlet("/SelectAllServlet")
public class SelectAllServlet extends HttpServlet {

    private BrandService brandService = new BrandServiceImpl();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1. 调用service进行查询
        List<Brand> brands = brandService.selectAll();

        //2. 转为json
        String jsonString = JSON.toJSONString(brands);

        //3. 防止乱码以及写数据
        response.setContentType("text/json;charset=utf-8");
        response.getWriter().write(jsonString);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

步骤四 ④通过aixos接收数据

前端的内容已经布置好了,只需接收数据即可。
接收的核心代码:

mounted(){
            var that  = this;
            axios({
                method:"get",
                url:"http://localhost:8080/SelectAllServlet"
            }).then(function (resp){
                that.tableData =  resp.data;
            })
        },
  1. mounted()这个意思是在页面加载完成之后就立即发送异步请求,可能使用这个就是会使速度更快,更符合用户的体验吧。
  2. that.tableData这个就是表单,resp.data就是传来的数据,把传来的数据赋值给这个表单,让表单进行展示。

学习总结

  1. 与之前学习的唯一的不不同就是,在service这一层,再一次进行了细化,但是更好进行管理,以后在servlet中也更好写代码。
  2. 传递数据这里确实让我感觉出了奇的简单,居然直接赋值给表单就行。这一次真真切切感受到了element和vue的强大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员危机如何化解?

很多人认为程序员一定要干到管理层&#xff0c;才会有继续走下去的希望&#xff0c;而踏实做技术的程序员&#xff0c;只会面临淘汰。事实真是如此吗&#xff1f; △ 截图来源脉脉&#xff0c;如侵删 先不说结论&#xff0c;我们一起先看看网友们的看法&#xff1a; △ 截…

报表控件Stimulsoft v2023.1全新发布 | 附免费下载试用

Stimulsoft Ultimate 宣布发布新版本2023.1&#xff01;在最新版本中添加了对Razor Pages的支持、新的数据监视器可视化工具、为PHP和Blazor平台更新了组件,欢迎下载试用&#xff01; Stimulsoft Ultimate官方正版下载 Razor Pages 在 2023.1.1 版中&#xff0c;我们添加了对…

跨域问题以及解决跨域问题的vue-cli解决方案

跨域问题 写项目前要问后端,接口支持跨域吗? 支持就不会出现问题,不支持就需要解决跨域问题 1.如何判断一个浏览器的请求是否跨域&#xff1f; 在A地址&#xff08;发起请求的页面地址&#xff09;向B地址&#xff08;要请求的目标页面地址&#xff09;发起请求时&#xff…

【JavaEE】多线程(三)线程的状态

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:线程的状态&#xff0c;线程安全问题&#xff01; &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE初阶代码存放&a…

抗癌药物之多肽药物偶联物技术(PDC)介绍

长期以来&#xff0c;心血管疾病是全球中年人死亡的主要原因。这种情况最近在高收入国家发生了变化&#xff0c;现在癌症导致的死亡人数是心血管疾病的两倍。2018 年&#xff0c;癌症导致全球 960 万人死亡&#xff0c;1810 万新病例被诊断出来。女性最常发生的癌症是乳腺癌&am…

12Python继承与多态

继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中继承 实现代码的重用&#xff0c;相同的代码不需要重复的编写多态 不同的对象调用相同的方法&#xff0c;产生不同的执行结果&#xff0c;增加代码的灵活度 1继承的概念、语法和特点 继承的概…

奖项快报 | ALVA Systems 上榜 《2022 高成长企业 TOP100》!

近日&#xff0c;《2022 高成长企业 TOP 100》榜单发布&#xff0c;凭借卓越的创新能力与在工业 AR 领域的赋能价值&#xff0c;ALVA Systems 在2022年度高成长企业TOP100大赛活动中脱颖而出&#xff0c;成功入选榜单。 *ALVA Systems 入选榜单 创新驱动&#xff0c;赋能数字经…

【ARM -- stm32 汇编代码点亮LED灯】

ARM -- stm32 汇编代码点亮LED灯实现过程查询开发手册分析RCC章节分析GPIO章节编写代码实现过程 查询开发手册 分析RCC章节 一、确定RCC基地址 二、分析RCC_MP_AHB4ENSETR寄存器 1、RCC_MP_AHB4ENSETR寄存器的功能是使能GPIO组相关控制器&#xff1b; 2、RCC_MP_AHB4ENSET…

07第四章:01_常用注解

常用注解 1、Table 作用&#xff1a;建立实体类和数据库表之间的对应关系。 默认规则&#xff1a;实体类类名首字母小写作为表名&#xff0c;如 Employee -> employee 表 用法&#xff1a;在 Table 注解的 name 属性中指定目标数据库的表名&#xff1b; 案例&#xff1…

WPF依赖属性、附加属性、属性继承、类型转换详解

依赖属性 依赖属性回调方法与参数 具有依赖属性的类必须继承自DependencyObject&#xff0c;定义依赖属性要有2个步骤 //1属性包装器&#xff0c;目的是为了向正常属性一样使用依赖属性 public int Name {get { return (int)GetValue(NameProperty); }set { SetValue(NamePr…

国家“数据安全三认证”图解来了

二十大指引新时代新征程。蓝图已经绘就&#xff0c;号角已经吹响&#xff0c;新征程是充满光荣和梦想的远征。二十大报告深刻阐明了实现中华民族伟大复兴的一系列重大问题&#xff0c;系统擘画了以中国式现代化推进民族复兴的宏伟蓝图&#xff0c;是引领中华民族伟大复兴的政治…

论文导读 | GPU上的动态图数据管理技术浅析

一、背景介绍 随着相关技术的发展&#xff0c;图计算与分析系统在大量场景中得到应用。同时&#xff0c;为了解决图规模巨大等因素导致的性能下降问题&#xff0c;研究人员利用GPU这一新型计算硬件&#xff0c;设计了大量高效的图计算与分析解决方案。GPU提供的高并发计算能力…

我司何晓磊受邀参加东盟与中日韩中小企业人工智能产业论坛并担任评委

我司何晓磊受邀参加东盟与中日韩中小企业人工智能产业论坛并担任评委 一、活动背景 为推动东盟与中日韩&#xff08;103&#xff09;中小企业服务联盟务实合作&#xff0c;帮助中小企业提高生产力和技术创新能力&#xff0c;进一步提高国际化发展水平&#xff0c;促进东亚区域…

C++——哈希练习题

文章目录一、编程题1.在长度 2N 的数组中找出重复 N 次的元素2. 两个数组的交集二、面试题给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。【腾讯】&#xff08;一&#xff09;位图应用1. 给定100亿个整…

C++ :STL:初识

1&#xff1a;STL初识 1.1 STL的诞生 STL 诞生来源 长久依赖&#xff0c;软件界一直希望建立一种可重复利用的东西C 的面向对象和泛型思想&#xff0c;目的就是复用性的提升大多数情况下&#xff0c;数据结构和算法都未能有一套标准&#xff0c;导致被迫从事大量重复的工作为了…

多线程问题(一)

目录 一、为什么引入线程&#xff1f; 二、线程和进程的区别 三、创建线程的五种方式 1、创建类继承Thread类 2、创建类实现Runnable接口 3、构造Thread类的匿名内部类 4、构造Runnable的匿名内部类 5、使用lambda表达式 四、start方法与run方法的区别 五、线程…

Promise对象的使用

一、什么是Promise Promise 是异步编程的一种解决方案&#xff0c;比传统的解决方案&#xff08;回调函数和事件&#xff09;更合理和更强大。从语法上说&#xff0c;Promise 是一个对象&#xff0c;从它可以获取异步操作的消息。Promise 提供统一的 API&#xff0c;各种异步操…

攻略丨在小红书高效种草,品牌要问的7个问题

这个圣诞节&#xff0c;小羊人和冬阴功&#xff08;这个冬天依然阴着的打工人&#xff09;们各怀心事&#xff0c;最有圣诞氛围的地方要数小红书了。打开首页就能看到&#xff0c;宅家自制光影圣诞树&#xff0c;被安利好利来蛋糕&#xff0c;再往下滑一滑&#xff0c;还有圣诞…

[开源工具]2022免费临时邮箱(Temp Free Mail)

2022免费临时邮箱Temp Free Mail1、10分钟邮箱2、45分钟邮箱3、60分钟邮箱4、24小时邮箱5、5日邮箱6、其他临时邮箱7、无时间限制临时邮箱8、临时邮箱常见问题答疑临时邮箱&#xff0c;英文名称 Temp Mail&#xff0c;也被称为一次性邮箱或匿名邮箱&#xff0c;根据它的邮件有效…

Vue - npm 批量升级依赖包

参考&#xff1a; npm 如何更新项目最新依赖包 一行命令更新所有 npm 依赖包 npm 升级依赖包 批量升级有风险&#xff01;&#xff01;&#xff01;升级需谨慎&#xff01;&#xff01; 常规的包升级方式 npm update (包) 检查项目可升级的包 方式一 该命令将检查每个已安装的…