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

超市订单管理系统

  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

搭载国产芯片!荣耀独立后的又一款新机,网友就这?在美国的制裁下,华为不得不与荣耀分离。然而,独立后的荣耀依然没有解决芯片短缺的问题,作为独立后的首款手机,荣耀V40却只能搭载天玑1000处理器,直接导致这款手机的销量并不是很高,PC显卡进化史2(3D初混战时代)当所有显卡都进化到了AGP接口的时候,显卡的3D时代到来了。在3D时代刚刚开始的时候,真的是狼烟四起,群雄并起。除了之前所说的S3,Trident两家老牌显卡芯片厂商,后来的SIS中古游戏漫谈DOS游戏之美少女梦工厂2这是一款霸榜N月的游戏这是一款第一代宅男的最爱这是一款老父亲的心酸系列的游戏它就是美少女梦工厂2。美少女梦工厂2我们为什么不来聊聊1代呢?因为2代是美少女梦工厂系列移植版本最多,发买前生产力,买后玩游戏!联想要统治轻薄本市场了?联想在前几天发布了小新系列轻薄本,自从出来后就一直是属于性价比产品,现在的小新产品线已经从13寸覆盖16寸。作为整个产品系列最顶级的存在,小新Pro16自然是将性价比与性能发挥到极晚点遇到你余生都是你(情头)晚点遇到你余生都是你往后余生,全部是你卦不敢算尽,畏天道无常,情不敢至深,恐大梦一场。等闲却变故人心,却道故人心易变。因为刚好遇见你,所以余生多指教。我一直在等,等一个人将我小心收盗版光盘的兴衰在上世纪的九十年代中期到宽带普及之前,对于PC党们来说,买盗版光盘是无法回避的历史。在那个互联网没有普及,即使有也是33。6或者56k拨号上网的时代,下载速度只有5k的时候。在U盘测评丨软硬件全方位升级的猎豹峡谷会成为最完美的NUC吗?英特尔11代NUC猎豹峡谷虽然外观看起来和以往的NUC一样,但仔细观察对比后就会发现不同之处非常多,处处都不相同。那么这台i7版带有无线充电的猎豹峡谷与之前的NUC相比到底升级了哪中古游戏漫谈DOS游戏之沙丘魔堡II提起RTS即时战略游戏,大家第一个想到的不是红警系列就是星际系列,或者是魔兽争霸系列。但是我们今天来聊一聊,真实确立了即时战略游戏形态的,始祖级的游戏沙丘魔堡2。沙丘魔堡II的开始矿潮下一台顶配电脑要多少钱?看完之后你还能淡定吗?自矿潮以来,电脑硬件的价格就随着虚拟货币的价格一路水涨船高。尤其是显卡,目前一块RTX3060的价格已经被炒到了7000多块钱,有谁还记得这张显卡的官方指导价只有2499元?虽然买vivo终于超越华为成为第一!iPhone12成为史上最畅销机型近日,著名调研机构Canalys发布了2021年第一季度智能手机市场出货量相关报告。国产手机厂商vivo的出货量为2160万台,同比增长79,份额占比达到23,成为今年第一季度手机中古游戏漫谈DOS游戏之皇帝养闺女,养宠物,培养明星这些游戏你是不是都玩腻了?要不要试试更刺激的?我们来养个皇帝怎么样?那么这款皇帝,你一定不要错过。在这款游戏中,你将体验到皇帝的一生,要领导你的大臣在德智体
火龙三职业传奇时间最短的游戏版本在2003年热血传奇开放封魔谷之后,玩家们的热情也随之高涨。可以说,此时恰逢SARS病毒渐渐地在全国范围内肆虐,公共场所迫在眉睫地采取了治理措施。那时个人电脑只有一小部分家庭拥有,韩国今年起正式废强制防沉迷制度并推行游戏时间选择制?必会有一大堆人沉迷。但对于韩国来说,那又如何呢?从最前沿科技来说,真正注定的天才有多少因为玩游戏耽误的,就有多少玩游戏上来的。从个人生活出发,有玩游戏耽误了人生的,但剩下来的名额自热血传奇比奇骷髅洞的三大好处,老玩家都知道热血传奇玩家们在新手期过渡得差不多之后就开启第一次下图打怪之旅,而绝大多数玩家最先选择的就是比奇上方的几个洞窟,因为空库里面大多数都是骷髅系的怪物,因此这两个洞窟也被玩家称为骷髅洞什么!苹果电脑也可以玩超大型网游了?网易这是要毁了显卡行业吗对电脑硬件略有了解的网友都知道,因为苹果的Mac系统过于封闭以及底层设计等原因,尽管现在Mac的硬件配置已经越来越高,但是软件荒却依旧是个严峻的问题,很多原本在Windows端轻而超级人类延长测试时间新手如何设置中文超级人类最近宣布,将会延长这一次的测时间,结束时间也被官方改为待定。这样一来,大家就可以多玩一会超级人类了。有很多小伙伴听到这个消息之后,兴冲冲的也想来体验以下超级人类有多好玩,但热血传奇当年的小家族是如何兴起的?热血传奇作为一款大型的火热游戏,问世至今日已经走过十几个年头,小编作为一名热血传奇的忠实玩家一直以来对于这款游戏都十分的喜爱狼族,全名饿狼传说,建于2004年初,是由网缘家族和几个王者荣耀新赛季更新时间确定,这几个英雄一定要在新赛季练练之前为大家分析了远古生物和排位赛的调整,今天我们继续有关新赛季的分析。就在之前的一则公告中,官方已经明确了新赛季的更新时间,已经确定为1月6日更新。新赛季的赛年名称为千色云中,S2外媒评转会期最佳五人,LPL只有一人上榜,北枫称Uzi是永远的神随着2022年的到来,越来越多LPL战队开始官宣新赛季的阵容,目前各大赛区基本上都已经官宣完毕,所以外媒又开始整活了。这一次国外媒体Upcomer直接来了一出盘点休赛期人员变动五佳2021年移动游戏市场寒冬来了,但市场卷得火热文丨锌刻度,作者丨流星,编辑丨李觐麟年年都是行业寒冬,素来是游戏市场的一句玩笑话,这说法虽然有些夸张,但也间接反映出了游戏行业近年来面临的一些艰难状况,在行业内卷加剧监管政策收紧的盘点今年最值得期待的四款射击游戏,射击爱好者的福音来了近年来,游戏圈的射击类游戏可谓是反响平平,一直都没有出现那种可以让玩家眼前一亮的存在。或许是受到多方面因素所影响,开发商们已逐渐将重心转移到了别的领域,这让很多射击游戏爱好者十分伤2021年,最烂游戏的角逐比年度游戏更激烈何必非要有个巫妖王。从结果而言,刚刚过去的2021无疑成为了一个游戏小年,不论是饱受期待的重量级大作,还是让人眼前一亮的意外惊喜,都只能说屈指可数。这从连续两年TGA的最受期待游戏