专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

超市订单管理系统

  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

青瓷游戏上半年销售开支为研发费14倍主力游戏排名跌来源中国经济网中国经济网编者按12月9日,青瓷游戏有限公司(以下简称青瓷游戏)赴港IPO已完成申购,拟发行8500万股,招股价在11。2港元股至14港元股之间,拟最多集资11。9亿CFHD冠军杯落幕,上线仅半年的新游,如何击中电竞玩家痛点?12月11日晚,CFHD冠军杯结束了最后一场战斗。AG战队以大比分31击败AC顺利捧杯,拿走了200万元冠军奖金。CFHD冠军杯正赛自9月下旬开打,总计进行了60场比赛,是近期穿越金铲铲之战6D狂斗秘法火了,运营简单无脑吃分稳到爆阵容决定下限,装备决定上限,运营才是王道!弈士们好,我是摩昂,很多朋友都在催更摩昂更新时空裂痕的强势上分阵容,说实话摩昂也是非常想给大家更新,但摩昂只是一个人,不是机器,更新双城,魔兽世界怀旧57到60级去哪升级?谢谢邀请!题主所说这个等级以个人经验而言,建议根据个人情况决定其升级路线。副本路线如果你有固定的队伍或加入了一个比较休闲的公会,选择副本路线的话,可以大幅提高你的升级效率,同时运气英雄联盟中,如果诺克萨斯和祖安打起来,哪边会获胜?作为一名英雄联盟的老玩家,下面是我的答案从两边的阵容背景比较,很明显诺克萨斯可以秒杀祖安几条街。1诺克萨斯是一个威名震天的强大帝国。在诺克萨斯境外的人眼中,它拥兵自重血腥野蛮欲壑难全华班!TES补齐关键上单位Zoom,JDG这波有情有义LPL冬转即将结束,这意味着我们LPL赛区各大战队终于要官宣新赛季名单了不过,正如同无数水友们调侃的那样LPL转会期只有最后一天!不到转会期最后一刻,各大战队是不会公布新赛季人员配英雄联盟狗熊介绍沃利贝尔不灭疯狂之雷在一些人心中,他是雷电的咆哮,是雷电的风暴,是瓦尔海尔。在一些人心中,他是落魄的受千万刺刀的巨熊还是屹立着的?但是,在仍然遵循旧习惯的部落中,他被称为沃利贝尔。Ale秀翻Bin和Meiko!全明星1打2反杀2人,放话明年一定突破16强LPL全明星周末在12号晚上落下帷幕,随着颁奖典礼solo赛传奇对抗赛新生对抗赛以及全明星正赛的结束,也意味着今年的全明星圆满完成。而对比之前几年的全明星,今年好评度还是很高的,主国外战队进步神速,第一赛区或将易主!延迟当借口真的很LOW最近这段时间和平精英2021PMGC全球总决赛正在如火如荼的进行,众所周知国内开发的和平精英王者荣耀在国际赛事上,一直都是国内占据压倒性的力量。因为这个原因,所以不少玩家都愿意称呼开服必炸魔咒?B站终焉誓约多次维护达四天,何时开服成迷现在哪个手游开服不炸个服都不好意思和同行打招呼,甚至我一度怀疑这是手游厂商们设计好的。开服把服务器一炸,顺便发点补偿,再找点水军在论坛发一发十连失忆这种评论,你看这热度不就来了吗?TES转会期压哨拿下Zoom,补强至臻全华班,跻身S级阵容TES转会期压哨拿下Zoom,补强至臻全华班,跻身S级阵容今年是转会期,是LPL成立以来,最为热闹的一届了。各种拉扯,各种骚操作,属实有点眼花缭乱。最受关注的队伍,莫过于TES,R
大话西游手游小伙手气逆天,造出一套顶级装备,被神豪70万秒了大话西游手游首先看第一张图片的9亿仙玉!然后对这个大话无限仙玉服感兴趣的,可以看文章第一张图片的箭头指向!剩下的文字可以不用看,看图片和文章结尾即可!后面的文章不用看,直接看图片和传奇世界元神版,幽泉套,幽冥之下是黄泉传奇世界,幽泉套大合集幽泉套幽泉盔防御57魔防23道术12幽泉镯防御34道术36幽泉链幸运3道术49幽泉戒防御23魔防23道术39幽泉靴防御12魔防12道术14幽泉带防御13魔防2S26赛季前瞻,后羿二次加强,紫刀流达摩或将崛起昨晚,体验服进行了一次更新,调整了6名英雄。芈月被动新增效果暗影之力会为芈月增加移速和治疗效果,最多增加30点移速和30治疗效果解读芈月有了全新被动,在产生乌鸦时,可以提升自身的移我的2021LPL年终总结,第一部分喜悦又到年底了,又到了各种年终总结TOP10排行满天飞的时候了。在即将过去的一年里面,我们LPL赛区又一次拿到2个世界比赛冠军,喜提MSI冠军和全球总决赛冠军,双喜临门。与2018年S王者荣耀神鸡营大战花果山,听安拿小予神没辙,德华自信进决赛王者荣耀最近又迎来了一个全新的名叫KPI杯的赛事,这也算是王者荣耀第三个类型的比赛了,比如KPL次级联赛全国大赛是职业赛事,像梦之队TUT和其他主播队伍参加的是主播赛事,这次KPI暗黑2之7大职业实用性强度排名与评测,各大角色流派主要的用途说游戏,聊故事,大家好,我是小翎暗黑2重制版即将开启天梯竞赛模式,届时,所有想参与天梯的玩家们,再次站到同一起跑线,体会从0开荒的日子。这时,对于玩家们来说,首先要面对的就是重新建梦幻西游网页版梦幻嘉年华跨年晚会倒计时,云上之约缺你不可一眨眼,2021年进入了尾声,曾经以为很遥远的2022正在向我们招手。此时此刻,骨妹的脑海中突然闪现出这样一句歌词就当是一场梦,醒来依然还是很感动!过去的一年,梦幻西游网页版携手各10款Steam冬季特卖史低价游戏推荐,都是玩家眼中yyds的作品Steam冬季特卖在12月23日正式开启,将于1月6日结束,不少玩家已经着手购买那些心仪的大作了。如果还在犹豫的玩家,可以看看这10款史低价游戏,是很多玩家心目中yyds的作品。方s26排位赛突变,回归玩家笑了,后羿典藏帅哭,孙策吕布笑了可乐要加冰,乔妹在你心,大家好我是小乔妹,每天为您分享有趣的王者荣耀新皮肤新版本,最新攻略等文章内容。王者荣耀S25赛季已经接近尾声了,而新的赛季也即将开启,S26赛季预计会在明年三个月了,LOL手游走向衰败,曾退坑王者的玩家表示,还是王者香大家好我是指尖,不知不觉王者荣耀六周年已经过去了三个月的时间,现在回想起来,周年庆期间,王者荣耀给玩家发放的福利可以说几个赛季合在一起也比不上,以至于王者玩家虽然心系王者,却对LO战地2042玩家卡出现罗技广告还是EA会整活EA之前宣布过,如果你购买了战地2042推广版的罗技周边外设,你将获得独特的罗技系列皮肤,和一个新的玩家卡。但是让玩家没有想到的是,玩家卡上是一个罗技G502的广告牌。虽然植入广告
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件