更新时间:2021年03月18日 08时58分16秒 来源:黑马程序员论坛
电商系统技术特点
通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example相关的单表操作。为什么要用通用mapper?我们这里列举一下原生Mybatis的痛点: 1、mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改 2、需要自己实现sql分页,select * from table where . . . limit 1,3 自己手写分页,除了传参page、pageSize,还需要返回条目总数count。 3、数据库可移植性差:如果项目更换数据库,比如oracle-->mysql,mapper.xml中的sql要重新写,因为Oracle的PLSQL 和mysql 支持的函数是不同的。 4、生成的代码量过大。 5、批量操作,批量插入,批量更新,需要自写。 而这些,通过通用mapper就可以很轻松的解决了。 在线官方文档:https://gitee.com/free/Mapper/wikis/Home 通用mapper与Spring集成官方的文档中介绍了通用mapper的三种使用方式 ,纯java使用方式、与Spring集成方式、与SpringBoot集成方式。我们这里给大家介绍的是与Spring集成方式。 (1)引入依赖 正常情况下,Spring 和 MyBatis 的集成环境中,应该已经存在下面的依赖:<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>版本号</version></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>版本号</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>版本号</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>版本号</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>版本号</version></dependency> 集成通用 Mapper 在上面的基础上添加下面的依赖: <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>最新版本</version></dependency> (2)与spring集成 和通用 Mapper 以前版本一样,可以直接使用 tk.mybatis 提供的 tk.mybatis.spring.mapper.MapperScannerConfigurer 进行配置,这个配置和 MyBatis 官方提供的 org.mybatis.spring.mapper.MapperScannerConfigurer 区别只是第一层的包名,tk 和 org。所以使用这种方式时,如果你项目已经使用 org. 进行了配置,只需要改成 tk. 即可。 <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="扫描包名"/></bean> 我们项目中采用的是这种xml的配置方式,通用mapper还提供了注解方式的配置,详见文档。 实体类映射实体类映射类似下列形式 @Table(name="tb_brand")public class Brand implements Serializable{ @Id private Integer id; private String name; //getter and setter ....} @Table是指定实体类对应的数据库表 @Id指的是主键映射。经过上面简单的配置后,相当于就有了 MyBatis 中的关系映射了 基础接口select List<T> select(T record)根据T对象中的属性名称查询,类似于select * from table where t.name=#{name} and t.password = #{password}T selectOne(T record) 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号T selectByPrimaryKey(Object key) 根据主键查询 说明:根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号int selectCount(T record); 说明:根据实体中的属性查询总数,查询条件使用等号 基础接口insert int insert(T record);说明:保存一个实体,null的属性也会保存,不会使用数据库默认值int insertSelective(T record); 说明:保存一个实体,null的属性不会保存,会使用数据库默认值 基础接口Update int updateByPrimaryKey(T record);说明:根据主键更新实体全部字段,null值会被更新int updateByPrimaryKeySelective(T record); 说明:根据主键更新属性不为null的值 基础接口delete int delete(T record);说明:根据实体属性作为条件进行删除,查询条件使用等号int deleteByPrimaryKey(Object key); 说明:根据主键字段进行删除,方法参数必须包含完整的主键属性什么是ElementUI Element,“饿了么”出品的一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。 ElementUI 常用组件详见elementUI官网 http://element-cn.eleme.io/2.0/#/zh-CN 什么是ES6编程语言JavaScript是ECMAScript的实现和扩展 。ECMAScript是由ECMA(一个类似W3C的标准组织)参与进行标准化的语法规范。ECMAScript定义了: 语言语法 – 语法解析规则、关键字、语句、声明、运算符等。 类型 – 布尔型、数字、字符串、对象等。 原型和继承 内建对象和函数的标准库 – JSON、Math、数组方法、对象自省方法等。 ECMAScript标准不定义HTML或CSS的相关功能,也不定义类似DOM(文档对象模型)的Web API,这些都在独立的标准中进行定义。ECMAScript涵盖了各种环境中JS的使用场景,无论是浏览器环境还是类似node.js的非浏览器环境。 ECMAScript标准的历史版本分别是1、2、3、5。 那么为什么没有第4版?其实,在过去确实曾计划发布提出巨量新特性的第4版,但最终却因想法太过激进而惨遭废除(这一版标准中曾经有一个极其复杂的支持泛型和类型推断的内建静态类型系统)。 ES4饱受争议,当标准委员会最终停止开发ES4时,其成员同意发布一个相对谦和的ES5版本,随后继续制定一些更具实质性的新特性。这一明确的协商协议最终命名为“Harmony”,因此,ES5规范中包含这样两句话
2009年发布的改进版本ES5,引入了Object.create()、Object.defineProperty()、getters和setters、严格模式以及JSON对象。 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,2015年6月正式发布。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 常用语法新特性ES6提供了很多语法新特性,下面我们讲解的是我们《青橙》项目中使用到的语法新特性。 变量声明let我们都是知道在ES6以前,var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升 |
推荐了解热门学科
java培训 | Python人工智能 | Web前端培训 | PHP培训 |
区块链培训 | 影视制作培训 | C++培训 | 产品经理培训 |
UI设计培训 | 新媒体培训 | 产品经理培训 | Linux运维 |
大数据培训 | 智能机器人软件开发 |
传智播客是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。
传智播客从未停止思考
传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”
中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。
何为中高级程序员课程?
传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展。“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。
黑马程序员热门视频教程【点击播放】
Python入门教程完整版(懂中文就能学会) | 零起点打开Java世界的大门 |
C++| 匠心之作 从0到1入门学编程 | PHP|零基础入门开发者编程核心技术 |
Web前端入门教程_Web前端html+css+JavaScript | 软件测试入门到精通 |