范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

超市订单管理系统

  GitHub: github.com/hsowan/somsSOMS
  Supermarket Orders Management System 超市订单管理系统Day 01
  使用MyBatisMyBatis 官方文档
  Refer: www.mybatis.org/mybatis-3/z…类型别名
  类型别名是你的好帮手。使用它们,你就可以不用输入类的完全限定名称了。比如:     复制代码log4j2
  Refer: logging.apache.org/log4j/2.x/m…Eclipse for Mac 快捷键删除一行
  Command + D
  Refer: www.cnblogs.com/TankXiao/p/…格式化代码
  Shift + Command + FDay 02
  MyBatis 核心配置mybatis-config.xml 配置configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源)databaseIdProvider(数据库厂商标识)mappers(映射器)
  Refer: www.mybatis.org/mybatis-3/z…mapper.xml 配置insert – 映射插入语句update – 映射更新语句delete – 映射删除语句select – 映射查询语句resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。sql – 可被其他语句引用的可重用语句块。cache – 对给定命名空间的缓存配置。cache-ref – 对其他命名空间缓存配置的引用。
  Refer: www.mybatis.org/mybatis-3/z…使用单例模式创建SqlSessionFactory/**   * 主配置文件路径   */ private static String config = "mybatis-config.xml"; private static SqlSessionFactory sqlSessionFactory;  /**   * 使用单例模式获取SqlSessionFactory   * @return   */ private static synchronized SqlSessionFactory getSqlSessionFactory() { 	 	if (sqlSessionFactory == null) { 		try { 			// 创建输入流读取配置文件 			InputStream is = Resources.getResourceAsStream(config); 			// 创建SQLSession工厂 			sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); 			 		} catch (IOException e) { 			// TODO Auto-generated catch block 			e.printStackTrace(); 		} 	} 	return sqlSessionFactory; } 复制代码MavenUsing JUnit
  添加下面的插件到pom.xml中: 	org.apache.maven.plugins 	maven-surefire-plugin 	3.0.0-M3  复制代码
  执行单元测试: mvn test
  Refer: maven.apache.org/surefire/ma…Skipping Tests
  mvn install -DskipTests
  Refer: maven.apache.org/surefire/ma…JSP 九大内置对象+四大域对象
  Refer: my.oschina.net/u/3805464/b…Java 八大基本类型byte/8 char/16 short/16 int/32 float/32 long/64 double/64 boolean/~ 复制代码Day 03
  动态SQL官方文档ifchoose (when, otherwise)trim (where, set)foreachbind
  www.mybatis.org/mybatis-3/z…if
  改写UserMapper.xml: 复制代码
  改写单元测试 testListByUsername(使用map进行传参):Map params = new HashMap(); params.put("username", "%user%");  List users = session.selectList("com.ncucoder.mapper.UserMapper.listByUsername", params); 复制代码
  执行结果:==>  Preparing: select id, username, password from user where username like ?  ==> Parameters: %user%(String) 复制代码
  添加单元测试 testListByUsernameUsingLimit:Map params = new HashMap(); params.put("username", "%user%"); params.put("start", 0); params.put("count", 2);  List users = session.selectList("com.ncucoder.mapper.UserMapper.listByUsername", params); 复制代码
  执行结果:==>  Preparing: select id, username, password from user where username like ? limit ?, ?  ==> Parameters: %user%(String), 0(Integer), 2(Integer) 复制代码bind 模糊查询
  修改UserMapper.xml:  复制代码
  修改单元测试 testListByUsername():Map params = new HashMap(); // params.put("username", "%user%"); params.put("username", "user");  List users = session.selectList("com.ncucoder.mapper.UserMapper.listByUsername", params); 复制代码
  执行结果:==>  Preparing: select id, username, password from user where username like ?  ==> Parameters: %user%(String) 复制代码SQL优化 in
  查询user表中id小于5的记录
  使用in的查询执行计划(QEP):mysql> explain select id, username, password from user where id in (1, 2, 3, 4, 5); +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+ | id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       | +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+ |  1 | SIMPLE      | user  | NULL       | ALL  | PRIMARY       | NULL | NULL    | NULL |   10 |    50.00 | Using where | +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+ 1 row in set, 1 warning (0.00 sec) 复制代码
  使用<的QEP:mysql> explain select id, username, password from user where id < 6; +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ | id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra       | +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ |  1 | SIMPLE      | user  | NULL       | range | PRIMARY       | PRIMARY | 4       | NULL |    5 |   100.00 | Using where | +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ 1 row in set, 1 warning (0.00 sec) 复制代码
  使用between的QEP:mysql> explain select id, username, password from user where id between 1 and 5; +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ | id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra       | +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ |  1 | SIMPLE      | user  | NULL       | range | PRIMARY       | PRIMARY | 4       | NULL |    5 |   100.00 | Using where | +----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-------------+ 1 row in set, 1 warning (0.00 sec) 复制代码type表示对表所使用的访问方式(最优到最差: NULL > system > const > eq_ref > ref > range > index > All)key表示MySQL Query Optimizer从possible_keys中所选择使用的索引rows表示MySQL Query Optimizer通过系统收集到的统计信息估算出来的结果集记录条数, 简单理解为查询需要扫描的记录数
  分析: 使用in作为查询条件时没有使用索引而进行了全表扫描(ALL), 使用<和between作为查询条件时使用到主键索引以及索引范围扫描, 所以三者比较in的执行效率是最低的MySQL 批量插入测试数据-- 获取指定长度的随机字符串 drop function if exists `rand_string`; create function `rand_string`(n int) returns varchar(255) charset "utf8" begin     DECLARE chars_str varchar(100) DEFAULT "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";     DECLARE return_str varchar(255) DEFAULT "";     DECLARE i INT DEFAULT 0;     WHILE i < n DO     SET return_str = concat(return_str, substring(chars_str, FLOOR(1 + RAND() * 62), 1));     SET i = i + 1;     END WHILE;     RETURN return_str; end;  -- 插入指定数量的用户 drop procedure if exists `create_users`; create procedure `create_users`(n int) begin     declare i int default 0;     while (i < n) do         insert into user(username, password)         values (rand_string(10), rand_string(32));         set i = i + 1;     end while; end;  -- 调用存储过程 call create_users(1000);  复制代码Day 04MyBatis Generator官方文档
  www.mybatis.org/generator/c…
  问题:改用MySQL8时, 与其他数据库(mysql库)表名相同时出现错误添加依赖和插件
  mybatis-generator-core:    org.mybatis.generator    mybatis-generator-core    ${mybatis-generator.version}   复制代码
  mybatis-generator-maven-plugin:    org.mybatis.generator    mybatis-generator-maven-plugin    ${mybatis-generator.version}           true       true       复制代码添加配置文件generatorConfig.xml生成对应的映射文件、实体类和接口类cd ${your_project} mvn mybatis-generator:generator  复制代码
  Refer:www.cnblogs.com/hhhshct/p/9…blog.csdn.net/liyonghong3…集成SpringMVC添加依赖      org.springframework     spring-core     ${spring.version}       org.springframework     spring-web     ${spring.version}       org.springframework     spring-webmvc     ${spring.version}       org.springframework     spring-beans     ${spring.version}       org.springframework     spring-context     ${spring.version}       org.springframework     spring-test     ${spring.version}     test       org.springframework     spring-jdbc     ${spring.version}       org.springframework     spring-tx     ${spring.version}       org.mybatis     mybatis-spring     ${mybatis-spring.version}         com.alibaba     druid     ${druid.version}   复制代码修改web.xml配置文件      soms-dispatcher     org.springframework.web.servlet.DispatcherServlet              contextConfigLocation         classpath:spring/spring-*.xml          1          true       soms-dispatcher     /        encodingFilter     org.springframework.web.filter.CharacterEncodingFilter              encoding         UTF-8                   forceEncoding         true            encodingFilter     /*  复制代码添加Spring的配置文件spring-web.xmlspring-dao.xmlspring-service.xml使用MySQL8
  修改依赖版本(pom.xml):8.0.16 复制代码
  修改驱动路径(db.properties):driver=com.mysql.cj.jdbc.Driver 复制代码Day 05JWT + SpringSecurity
  github.com/hsowan/jwt-…
  作者:K8sCat
  链接:https://juejin.cn/post/7056040075947147295

漫威银河护卫队新演示做出选择决定故事发展索尼官方公布了SE动作冒险新作漫威银河护卫队的新演示,展示了游戏玩法,一起来了解下吧。演示视频了解如何在探索中与成员们互动,做出选择以主导故事的发展,并通过解锁升级能力解锁服装来定这些被奉为神作的游戏,为什么我却get不到点?8月5日,IGN评选出了Sony史上独占游戏Top10,本次入选到游戏都来自索尼第一方工作室,或者是在该特定游戏发布后收购的工作室,所以一些第三方制作的游戏如最终幻想7合金装备血源LOL手游多不待见王者玩家,谩骂是常态相信这两天很多玩家都知道LOL手游上线的消息,不管是出于好奇,还是尝鲜,很多玩家确实入场尝试了这款游戏,其中有很大一部分的王者荣耀玩家,毕竟同样是moba手游,在国内不玩王者荣耀的英雄联盟手游薇恩带什么符文在lol手游中薇恩带什么符文比较好呢?符文的选择方式内容又是什么样的呢?感兴趣的小伙伴们,下面就让我们一起来看一下吧!lol手游薇恩符文选择推荐方案1征服者,手游中征服者只需要5层荣耀新三国甘宁太史慈攻略在荣耀新三国手游中甘宁太史慈究竟怎么样呢?甘宁太史慈玩法技巧还有不少玩家并不是很清楚呢!那么想了解的话,下面就来看一下吧!荣耀新三国甘宁太史慈攻略配将思路这里面就是利用太史慈和甘宁我那溢价近2倍的PS5尚在吃灰,为何又义无反顾地抢了一台XSX?2020年11月,随着Sony和Microsoft两家次世代主机的正式发售,主机市场再次硝烟四起,新一轮大战一触即发。但与往次不同的是,今年的主机大战由于受全球新冠疫情影响,芯片产云端觅鲜卡萨帝原石Homey系列冰箱耀世首发01Homey原石Homey原石,是宇宙的礼物是山川的眼睛未经人工雕琢却已鬼斧神工采撷冰山原石灵感回归极致自然本味今日,四川甘孜贡嘎雪山卡萨帝原石Homey系列冰箱耀世首发演绎雪山市场,卡萨帝增速翻番家庭,卡萨帝全场景守护当企业做到行业绝对引领份额,还有向上发展的空间吗?卡萨帝以半年报数据证明,即使做到份额第一,依旧拥有增长潜力。卡萨帝上半年营收增幅达74。4,较之2020年Q4营收实现了增速翻番,国庆在即,你选择与什么游戏共度假期?国庆假期长漫漫,何种游戏能作伴?为了应对假期游戏荒,研游说特地准备了一份游戏推荐表,包能助你愉快度过假期!DarkSouls黑暗之魂3作为魂系游戏的代表作,黑暗之魂3在各方面的表现醉逍遥重阳佳节相伴永久九九望遥空,秋水生夕风在这金风送爽,丹桂飘香的时节,我们迎来了一年一度的传统佳节九九重阳节,这是一个登高秋游,敬老爱老,同时也代表着长长久久的节日在这重要的节日里,不彷携上三五好友天山海世界求婚告白圣地遇见爱情,遇见你若人生是一场相遇,在素年锦时,我与你共一场胭脂醉,不醉不休,不停不止,若说世间所有的相遇都是久别重逢,那么每一次重逢,都该被认真纪念。王小波在爱你就像爱生命中写道我把我的整个灵魂都
玩家过年找代打却惨被永久封号,战意硬核暴躁老哥反怼活该随着游戏行业迅速发展,游戏早已成为了现代年轻人的生活必需品,原本玩游戏只是为了娱乐消遣,但总有那么一些游戏玩家却极为较真,自己游戏玩的不好,却又想要自己的游戏战绩或收益不落于人后,霸道总裁爱上灰姑娘,童话故事原来真的实现了曾几何时,迪士尼动画中的灰姑娘,是无数少女的梦想,即使只是个平凡人,也任会期待有王子在路的尽头拿着水晶鞋等你。在腾讯首款沉浸式互动阅读合辑APP一零零一中,也有一个平凡少女遇见奇迹大三女生徒步1800公里回家?996社畜想都不敢想的疯狂最近,在知乎上有一个相当热门的问题,题主表示自己是一名大三的女生,突然想在寒假的时候从海南徒步走回河北老家,大约1800公里,想要疯狂一把,这现实吗?这一问题引起了无数网友的热议,谈婚论嫁阶段男友突然改名,女神发帖求助这样要分手吗?要是让热恋中的小情侣说出对方身上最吸引自己的点,很多人应该都会说长相才华性格要是对方人设崩塌,这些特质消失,那两人间的感情也会受到影响,这事可以理解。不过最近却有个妹子在犹豫要不要设计师才是高危行业!一天要制作100张设计图,不然别下班自从甲方提出五彩斑斓的黑之后,大家对设计师都有着一种同情的心态,面对不理智的客户,设计师确实是非常头疼。但是万万没想到,躲过了甲方,而这位设计师没躲过老板。这名设计师被要求一天之内新人穿汉服登记结婚遭拒,汉服复兴是假,奇装异服才是真?这几年来汉服日渐兴起,平时经常能见到身穿汉服逛街的小哥哥小姐姐,似乎汉服已经进入了我们的日常生活。不过近日,有一对厦门的新婚夫妻想要穿着汉服登记结婚,却遭到了拒绝。工作人员给出的理卢本伟复播实锤?恐怕有个大问题没法解决知名过世主播五五开卢本伟自从29杀引发的一系列骚操作之后,就彻底凉凉。然而作为当年斗鱼三骚,关于卢姥爷任何一点点消息都能引起水友的热烈讨论,也一直有人期待他能复播。然后,就在前段时网易最有归属感的端游,玩家写同人小说,在线征集线索多人响应网易作为端游界老司机,最早的一款端游已经运营了17年,而在十几年的时间里网易也一直不断推出精品端游,所以现在大家玩端游的话,第一个想到的肯定就是网易。要说网易端游,要么就是老牌常青大帮会招新的奇葩条件只招妹子不说,还得会在游戏里ampampquot送死ampampquot?在现实世界里,各种公司和组织的招人标准非常多变,有些老板要求员工拥有一定的学历和经验,有些老板则开出一些奇葩条件,像是要求员工的生辰八字不能和自己冲突,甚至还有要求员工必须是秃子,土豪游戏帮会招人福利曝光包时装包宵夜,帮战奖金3000起发土豪玩网游怎么玩?当然是使用钞能力让全服玩家记住他,然后成为传奇被人歌颂咯。而土豪最让容易被人膜拜的方式,就是在网游中建立帮会称霸一方,随时可以享受一呼百应的感觉,因此现在很多神级玩家质疑游戏中刷喇叭就被官方永封,网友一点也不冤随着游戏的普及,很多人会选择把网游作为日常消遣娱乐的方式,而现在玩个游戏,经常会看到氪金玩家肆无忌惮地使用氪金道具为所欲为的繁华景象,仿佛他们的钱都是大风刮来的,只要玩得爽,在游戏