2.7.3 整合静态页面
2.8 修改taotao-manager-mapper的pom文件
在pom文件加入如下内容:
src/main/java
**/*.properties
**/*.xml
false
2.9 整合测试
2.10 页面初始化
如果不使用tomcat插件,可以利用idea对tomcat进行配置
注意:
这里之所以访问localhost:8080/index会自动返回一个index.jsp页面,是因为在web.xml中配置了欢迎页,
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
欢迎页的功能类似于一个如下的controller:
@Controller
public class indexController {
@RequestMapping("/index")
public String showIndex(){
return "index";
}
注意:
web.xml中关于DispatcherServlet的url路径配置/
,其实有很多讲究,如果url-pattern设置为/
,则所有的静态资源都会被拦截,但不会影响jsp,对静态资源的访问都会除去后缀名,处理为对controller的调用。
2.11页面的切换
@Controller
public class PageController {
//打开首页
@RequestMapping("/")
public String showIndex(){
return "index";
}
//展示其他页,儒新增商品,查询商品等等
@RequestMapping("/{page}")
public String showPage(@PathVariable String page){
return page;
}
}
3. 商品列表查询
3.1 商品列表页面
红色画圈部分表示请求对应的jsp为item-list.jsp,对应于2.11 PageControlller
中的@RequestMapping("/{page}")
在加载出item-list.jsp,页面发起一个url为/item/list的get请求,请求参数为page和rows,为EasyUI自带的两个参数在item-list.jsp中table的标签上可以看到,如下,
客户端发起get请求:
服务端响应回json数据:
请求返回的数据必须为以下类型的实体转为的json字符串,EasyUI会根据这种格式的json字符串,自动解析json数据,渲染到页面,渲染结果即为上图查询商品列表所示
public class EUDataGridResult {
private long total;
private List rows;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
}
其中rows列表中的实体类属性要与item-list.jsp的table标签中filed属性名一一对应,如下: TbItem实体:
public class TbItem {
private Long id;
private String title;
private String sellPoint;
private Long price;
private Integer num;
private String barcode;
private String image;
private Long cid;
private Byte status;
private Date created;
private Date updated;
//set和get方法省略。。。
}
item-list.jsp的table标签中filed属性:
商品ID
商品标题
叶子类目
卖点
价格
库存数量
条形码
状态
创建日期
更新日期
当Controller返回一个EUDataGridResult对象时,@ResponseBoby会自动将其转为json格式的字符串,
@Controller
public class ItemController {
@Autowired
ItemService itemService;
@RequestMapping("/item/list")
@ResponseBody
public EUDataGridResult getItemList(Integer page,Integer rows){
EUDataGridResult result = itemService.getItemList(page,rows);
return result;
}
}
service的实现类中的getItemList方法,分页利用MyBatis的一个插件PageHelper,但是注意该插件对联合查询不友好
@Override
public EUDataGridResult getItemList(int page, int rows) {
//查询商品列表
TbItemExample example = new TbItemExample();
//分页处理
PageHelper.startPage(page, rows);
List list = itemMapper.selectByExample(example);
//创建一个返回值对象
EUDataGridResult result = new EUDataGridResult();
result.setRows(list);
//取记录总条数
PageInfo pageInfo = new PageInfo<>(list);
result.setTotal(pageInfo.getTotal());
return result;
}
3.3 分页处理
3.3.1 Mybatis分页插件 - PageHelper说明
如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
3.3.2 使用方法
第一步:在Mybatis配置xml中配置拦截器插件:
第二步:在代码中使用
1、设置分页信息:
//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
//紧跟着的第一个select方法会被分页
List list = countryMapper.selectIf(1);
2、取分页信息
//分页后,实际返回的结果list类型是Page,如果想取出分页信息,需要强制转换为Page,
Page listCountry = (Page)list;
listCountry.getTotal();
3、取分页信息的第二种方法
//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
List list = countryMapper.selectAll();
//用PageInfo对结果进行包装
PageInfo page = new PageInfo(list);
//测试PageInfo全部属性
//PageInfo包含了非常全面的分页属性
assertEquals(1, page.getPageNum());
assertEquals(10, page.getPageSize());
assertEquals(1, page.getStartRow());
assertEquals(10, page.getEndRow());
assertEquals(183, page.getTotal());
assertEquals(19, page.getPages());
assertEquals(1, page.getFirstPage());
assertEquals(8, page.getLastPage());
assertEquals(true, page.isFirstPage());
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());
assertEquals(true, page.isHasNextPage());
你可能感兴趣的:(分布式商城项目总结二之整合静态页面)
【文魁大脑《博赞思维导图管理师认证班》】朱凯丽+第七幅+策划项目步骤
朱凯丽
【姓名】朱凯丽【导师】王玉印、袁文魁【导图解说】平时记笔记都比较随意,内容很杂乱,后期看的时候经常就看不懂,所以自己这次尝试用思维导图记录。在听课的时用软件记录重点,发现自己的总结能力、抓关键字能力需要多锻炼。第一遍听课无法有效抓取关键词,需要第二遍在原基础上总结,增减。中心图:没有特意找图片,直接在云朵上说明。分支:首先简单说明项目的内容,个人计划和活动的策划、组织都可以作为一个项目。策划项目的
2023-01-21
花芊落
元旦跨年的那一晚,我是在理发店和Tony老师一起度过的,年度总结更新失败。后面断断续续写得不顺,也就搁置了。写学校年度绩效考核表的个人总结部分时,我突然发现,这不就是最好的年度总结吗?因字数限制,全文言简意赅,要点突出,德能勤绩全覆盖,比自己漫无边际地写,好太多了。你看,体制内也可以是高效的。寒假真长。前段时间一直在一拖二带娃,每天都会心生感慨:还好我不用每天如此,还好我有自己喜欢的工作,还好娃一
进制间的转化
谁染霜林醉
日常代码 linux c语言
进制间的转化(一)常用进制:二进制八进制十进制十六进制(二)转化思路:1.任何进制都先转化成二进制2.再转化成自己想要的进制1.其他进制转化二进制八进制转二进制:从低位开始,每一位(4+2+1)看成三位(421)016->00001110十进制转二进制:短除法拿余数十六进制转二进制:从低位开始,每一位(8+4+2+1)看成四位(8421)0x1e->000111102.二进制转其他进制:二进制转八
【Selenium】Selenium运行时报cannot find Chrome binary错误的解决办吧
程序媛_
Selenium UI自动化 Python selenium chrome python
文章目录问题描述问题分析解决方法问题描述Selenium运行时报错:selenium.common.exceptions.WebDriverException:Message:unknownerror:cannotfindChromebinary问题分析这种情况一般是浏览器对应的驱动没有在默认路径下找到浏览器的二进制文件。解决方法卸载浏览器,重新安装到默认路径下。配置浏览器的安装目录到环境变量中。
厕所中的秘密
鬼怪说说说
一直以来在传统的风水学中,厕所一直被认为是污秽之地会产生味煞。在空间布置上有这几种讲究:一,不能把厕所设置在房子的正中间,国人都有正中认为是最重要的,是权力的集中地,像一个人的心脏部位,故不宜把厕所设置在房子的正中位置,现在的开放商都请专业的设计公司设计,设计公司里都有风水布局上的讲究,因此这种情况较少见。二,厕所不宜正对厨房,风水学上认为,厨房属火,厕所属水,水火不相容。也不宜对着主人房门,风水
linux默认网口4个,Linux——网络配置命令
晨曦姜
linux默认网口4个
一、ifconfig自ubuntu17起,已经不提供这个命令了,要自动安装sudoaptinstallnet-toolsifconfig-a:查看当前系统所有的网络接口ifconfiginterface(PS:这里是网络接口的名称)down:禁用当前网络接口ifconfiginterfaceup:启用网络接口二、ip命令1、管理网络接口1)、iplinklist显示网络设备的运行状态byXiaoG
ARM架构学习(二)——流水线
浪矢杂谈
ARM体系结构学习 arm 架构 arm开发
本期主题:ARM流水线往期地址:ARMv7架构学习ARM流水线1.流水线概念2.指令的分解步骤1.流水线概念硬件资源总是有限的,有一个明显的方法能改善硬件资源的利用率,这就是pipeline(流水线)技术,其实就是在当前指令结束之前就开始执行下一条指令。ARM中的流水线是这么做的:当一条指令刚执行完步骤1,准备转向步骤2时,下一条条指令开始执行步骤1。2.指令的分解步骤一条指令在被处理器运行时,实
阅读笔记12
无弦凡音
阅读笔记12《再活一次用写作来调心》之《别光讲,展现出来》2019/1/16读着写着,写着读着,我心里的写作和阅读都和从前很不一样了。我甚至发现我对生活的看法也越来越不一样。上稿是一定要的,但是不再迫切;打卡也是必须要做的,不过已经不再痛苦。我的努力不再欺骗我自己,它有了更加踏实的意义。努力和我,我们从未和彼此这么亲近,我打碎了那个自以为是、莫名清高、眼高手低、词不达意的自己,用越来越有质感的文字
【编程规范具体案例(基于Qt、微软、谷歌和AUTOSAR C++14 参考)】 C++ 编码规范 之并发篇
泡沫o0
软件编码规范 qt microsoft c++ arm linux 嵌入式 c++20
目录标题并发目录12.并发编程规范12.1线程创建与管理规则12.1.1\[必须]明确定义线程的生命周期管理策略12.1.2\[必须]为关键线程设置明确的标识符12.1.3\[必须]在多线程环境中安全地处理异常12.2线程同步规则12.2.1\[必须]使用线程安全的数据结构和访问模式12.2.2\[必须]使用RAII技术管理锁的生命周期12.2.3\[必须]使用适当的粒度管理锁12.2.4\[必须
Linux三剑客之sed命令详解
promise524
linux shell bash sed 运维 后端
sed(StreamEditor)是Linux中的一种流编辑器,主要用于文本的过滤和转换。与大多数文本编辑器不同,sed用于非交互式的文本处理,常被用在批处理任务中。它可以对输入的文本流进行逐行处理,并根据脚本或命令对文本进行修改。1.sed的基本语法sed[选项]'script'[文件]script:sed脚本,由命令和模式组成,用来定义对文本进行的操作。[文件]:需要处理的文本文件。如果不指定
(二)人们的想法不会因为事实而改变 2019-05-17
缘起比尔哥
Theminddoesn’tfollowthefacts.Facts,asJohnAdamsputit,arestubbornthings,butourmindsareevenmorestubborn.Doubtisn’talwaysresolvedinthefaceoffactsforeventhemostenlightenedamongus,howevercredibleandconvinci
7.13
Serenaliu85
1.花在孩子身上的时间越多,未必就是个合格的母亲。我一直认为周一到周五上班陪儿子的时间很短,没给孩子做顿饭,所以周末我做饭,想尽点做妈妈的责任,即便育儿家说很多妈妈因上班未能照顾孩子而有负罪感,我认为育儿家是支持我的观点的,可以爱他,但不要溺爱。她想描述的是,你要做个权威的妈妈,不要过于顺从孩子,将他当成家里的焦点,不用将全部时间奉献给儿子而忽略自己的事情。你想帮他变得更加独立,就得开始控制你们之
Spark-RDD迭代器管道计算
隔着天花板看星星
spark 大数据 scala
一、上下文《Spark-Task启动流程》中讲到我们提交Stage是传入的是这个Stage最后一个RDD,当Task中触发ShuffleWriter、返回Driver数据或者写入Hadoop文件系统时才触发这个RDD调用它的iterator(),下面我们就来看下RDD.iterator()背后的故事。二、RDD中的iterator我们先来看下rdd.iterator()以及后面一些列的调用fina
node.js版本管理器——NVM
小清20
npm node.js 前端
在日常工作中,需同时开发好几个前端项目的时候,可能不同项目使用的node的版本也不一样,而一台电脑只能安装和同时使用一个版本的node,这个时候我们需要借助NVM来管理node的版本了。下面一起来看下是怎么使用NVM的吧。一、什么是NVMnvm的全称是node.jsversionmanagement,是专门用来管理node版本的工具,可用对node的版本进行查看、下载、切换使用等操作二、如何安装N
微服务CI/CD实践(二)服务器先决准备
lbmydream
微服务 ci/cd 服务器
微服务CI/CD实践系列:微服务CI/CD实践(一)环境准备及虚拟机创建微服务CI/CD实践(二)服务器先决准备微服务CI/CD实践(三)gitlab部署微服务CI/CD实践(四)nexus3部署微服务CI/CD实践(五)数据库,redis,nacos等基础中间件部署微服务CI/CD实践(六)Jenkins部署微服务CI/CD实践(七)Server服务器环境初始化微服务CI/CD实践(八)Jenk
Linux命令find:搜索指定文件
洪恒远
Linux linux
一命令作用搜索指定的文件,可按文件名查找,也可按文件大小查找。按文件名查找方式,支持使用通配符*。二命令格式2.1按文件名搜索find起始路径-name"文件名"例:find/-name"test"2.2按文件大小搜索find起始路径-size±n[k/M/G]﹢:表示大于;-:表示小于;n:表示数字大小;k(小写):表是KB;M:表示MB;G:表示GB;例:find/-size+10K
叶延珍 焦点网络七期 洛阳伊川 坚持分享第159天(2018.01.23星期二)
叶子_6c11
1、要解决问题,必须先跳脱问题的框架2、所有的问题,其实都是经过伪装的礼物和宝贵经验。3、你所看到的每件事,都是你内心世界的投射。4、每个人都有能力为自己生活中遇到的事百分之百负责。5、自由并非来自答案,而是来自问题。6、没有什么问题是大到爱无法解决的。
STM32CubeIDE实现Bootloader
洪恒远
STM32 stm32 单片机 嵌入式硬件
一、简介1.1、开发环境STM32CubeIDE软件版本:V1.9.0。单片机型号:STM32F103ZETx。1.2、主要内容使用STM32CubeIDE实现Bootloader跳转到APP程序。需分别建立Bootloader和APP两个工程。二、Bootloader工程Bootloader的CubeMX无需设置,直接生成程序。2.1、Bootloader跳转程序Bootloader跳转程序,主
Modbus-RTU错误响应
洪恒远
Modbus stm32
目录一、基础信息1.1、适用场景1.2、变量类型1.3、调用非本文函数二、主要程序内容2.1、头文件声明内容2.2、子函数三、使用示例3.1、STM32的HAL库串口1发送响应数据3.2、STC单片机串口1发送响应数据一、基础信息1.1、适用场景C程序Modbus-RTU模式,主机发指令给从机,从机解码出错时,生成错误响应数据。错误判断及响应数据参照GB-T19582.1-2008《基于Modbu
修改STM32的HAL库的系统时钟(SysTick)周期
洪恒远
STM32 stm32 单片机
目录一、简介1.1、开发环境1.2、实现功能1.3、思路解析二、系统时钟周期为100us2.1、重新定义初始化函数2.2、重新定义中断调用的函数三、系统时钟周期为10ms3.1、重新定义初始化函数3.2、重新定义中断调用的函数一、简介1.1、开发环境STM32CubeIDEV1.9。1.2、实现功能使用STM32CubeIDE配置完后,分别修改系统时钟周期为100us和10ms,并使用。1.3、思
魔力 感恩之旅 第十九天
王小仙的天涯
感恩慈悲上师及诸佛菩萨的加持和庇佑让我坚持修行懂得感恩看到修行的意义谢谢谢谢感恩父母赐予我生命养育我长大感恩她对我无私的爱感恩妈妈每天给我们做好吃的感恩有你们在让我体会到家的温暖谢谢谢谢感恩张新生请我吃饭帮我找关系解决问题感恩我们的友谊感恩他得慷慨大方谢谢谢谢感恩饭店的服务人员是你们辛勤的工作让我们能吃到可口的饭菜谢谢谢谢感恩王三的努力考上理想的大学感恩二叔请我们吃丰盛的晚餐让我们一家齐乐乐融融聚
中了思维导图的“毒”
农安164孙娜瑞
思维导图,第一次学习你的时候,我形容你好比登天,再次学习你的时候,我形容你如获至宝。八月二日,我第一次通过思思老师分享的学科整合教学思想理念和实践,课堂不再是单一乏味,不在出现像小徐老师说的生硬的1+1=2,而是思维导图的方式在让你明白什么是1+1=2。让我重新认识教育,重新做出选择。第一次接触到了思维导图,原来把抽象的事物可以这样地呈现面前,想象的事物可以这样跃然纸上。这次课后打卡我真的感觉有难
【话题】国产游戏崛起:技术驱动下的新机遇
何遇mirror
话题 游戏
目录国产游戏技术能否引领全球?引言方向一:技术解析图形渲染与视觉效果物理引擎AI技术方向二:行业影响对国内游戏开发行业的影响IT人才需求变化方向三:未来展望发展前景技术创新点跨界合作机会后记国产游戏技术能否引领全球?近年来,国产游戏行业蓬勃发展,技术水平不断提升,多款作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,中国游戏开发者在各个领域都取得了显著进步。面对全球游戏市场的
2019.4.30
赵赞成
《六项精进》打卡第176天姓名:赵赞成公司:宁波镇海承迪文具有限公司组别:乐观二组【知-学习】背《大学》0遍,共98遍读《六项精进》通篇0遍,共72遍背《六项精进》大纲0遍,共98遍【实践-行】一,修身少玩手机,好好保护眼睛早睡早起,按时吃饭,多喝开水二,齐家给老妈打电话、视频聊天三:建工做好本职工作【省~觉悟】工作需要细心更细心自律、行动【感谢】感谢父母的养育之恩感谢所有在我生命里出现过的人今日
RK3568笔记二十二:基于TACO的垃圾检测和识别
殷忆枫
RK3568学习笔记 笔记
若该文为原创文章,转载请注明原文出处。基于TACO数据集,使用YOLOv8分割模型进行垃圾检测和识别,并在ATK-RK3568上部署运行。一、环境1、测试训练环境:AutoDL.2、平台:rk35683、开发板:ATK-RK3568正点原子板子4、环境:buildroot5、虚拟机:正点原子提供的ubuntu20二、测试个人电脑没有GPU,在AutoDL租了服务器,配置如下:将在上面测试并训练。P
生而为人实属不易,好好活
蒋沅臻_cb46
姓名~沅臻【日精进打卡第91天】【知~学习】苦中生能力,难中长智慧【行~实践】一、修身:(对自己个人)1、找爸爸好处第65天。2、相由心生,相随心转,修4一颗灵巧心。二、齐家:(对家庭和家人)收到干妈7月初来深圳的消息,高兴,在她去英国之前终于可以见一面。三、建功:(对工作)1.京瓷哲学学习打卡。2.日精进打卡。3.见了几位老朋友和以前的同事。【省~觉悟】1.爱是无条件的付出,并着眼于光明面。2.
开学卖被子暴利下是什么?
阿匡呀
开学季,作为一个穷苦的大二狗,作为一个20岁都庸碌无为的人,很迫切的想利用开学来赚取一笔钱。同宿舍的有个妹子在卖被子,一套床上用品要价449和499,卖出一套被子个人可提成100。她一天卖了5套,也就是一天赚了500多,她说还有一天开十多单的,赚够一个月的生活费了。我听到了也颇为心动,想去卖被子。但我想呢,我开学买被子,六件套买下来总共350左右,这个价钱也确实有点儿贵了。我把这个想法告诉了男友,
2019-4-2晨间日记
文馨_
今天是什么日子4月2日星期二起床:5:50就寝:12:00天气:多云心情:佳纪念日:无任务清单昨日完成的任务,最重要的三件事:1.阅读。2.税务局。3.整理家里一角。改进:早睡习惯养成:阅读周目标·完成进度打卡文章未完成。学习·信息·阅读阅读健康·饮食·锻炼清淡饮食人际·家人·朋友和朋友聊天工作·思考税务局,完成三月份工作最美好的三件事1.阅读。2.去税务办事。3.完成三月份工作。思考·创意·未来
日更第六十二天的想法
一涅
自从参加了日更活动,不知不觉已经过去了六十一天,竟然我也能坚持下来了。在,有个好处,就是可以随心所欲的写。不论题材(不要写些邪魔歪道的),不限时间(一天二十四小时任选),不限字数(100字也只是几句话),体裁随意。所以我觉得每天一更也没啥压力,就好像跟一个既存在又不存在的人话唠话唠而已。然后我也没奢望,心存在发财的想法。毕竟自己有多少斤两,我还有那么一点自之知明。要写到有一定数目的变现不是那么容易
日更300字‖№80.到底还有多少坑在等着我啊?
笑笑13194023537
文/笑笑2019年1月8日星期二阴6号中午一点,为了配合快板组表演成员,再次进行排练,我匆匆吃过午饭,就赶去了。可是很不巧,电动车出了点故障,我只能改坐公车。等公车的时间是漫长的,也是很浪费时间的,眼看着时间一点点溜走,心里着急得不行,却无能为力。等我赶到约定地点,已经快两点了。其它还有部分成员没到,又得继续等待。我们差不多两点开始排练。排练了两遍后,我看时间差不多了,得赶去上班了。因为要等公车,
Spring中@Value注解,需要注意的地方
无量
spring bean @Value xml
Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作
1、在applicationContext.xml文件(或引用文件中)中配置properties文件
<bean id="appProperty"
class="org.springframework.beans.fac
mongoDB 分片
开窍的石头
mongodb
mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
第一步启动两台以上的mongo服务
&nb
OVER(PARTITION BY)函数用法
0624chenhong
oracle
这篇写得很好,引自
http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
OVER(PARTITION BY)函数用法
2010年10月26日
OVER(PARTITION BY)函数介绍
开窗函数 &nb
Android开发中,ADB server didn't ACK 解决方法
一炮送你回车库
Android开发
首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。
参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。
&nb
canvas中的像素绘制问题
换个号韩国红果果
JavaScript canvas
pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。
2.如果绘制点为一个像素的
编码乱码问题
灵静志远
java jvm jsp 编码
1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。
3、getBytes()、getByte
java 求几个月后的日期
darkranger
calendar getinstance
Date plandate = planDate.toDate();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(plandate);
// 取得三个月后时间
cal.add(Calendar.M
数据库设计的三大范式(通俗易懂)
aijuans
数据库复习
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.
目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。
想学工作流怎么入手
atongyeye
jbpm
工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。
系统学习工作流,很重要的一本书《JBPM工作流开发指南》。
本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。
1 首先要
Context和SQLiteOpenHelper创建数据库
百合不是茶
android Context创建数据库
一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLi
浅谈group by和distinct
bijian1013
oracle 数据库 group by distinct
group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。
譬如:统计每id数并且只显示数大于3
select id ,count(id) from ta
vi opertion
征客丶
mac opration vi
进入 command mode (命令行模式)
按 esc 键
再按 shift + 冒号
注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】
一、文件操作
1.1、强制退出不保存
$ q!
1.2、保存
$ w
1.3、保存并退出
$ wq
1.4、刷新或重新加载已打开的文件
$ e
二、光标移动
2.1、跳到指定行
数字
【Spark十四】深入Spark RDD第三部分RDD基本API
bit1129
spark
对于K/V类型的RDD,如下操作是什么含义?
val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))
rdd.reduceByKey(_+_).collect
reduceByKey在这里的操作,是把
java类加载机制
BlueSkator
java 虚拟机
java类加载机制
1.java类加载器的树状结构
引导类加载器
^
|
扩展类加载器
^
|
系统类加载器
java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。
虚拟机区分一个Cla
动态添加文本框
BreakingBad
文本框
<script> var num=1; function AddInput() { var str=""; str+="<input 
读《研磨设计模式》-代码笔记-单例模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
public class Singleton {
}
/*
* 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题
*/
class LazySingleton
iOS应用打包发布常见问题
chenhbc
ios iOS发布 iOS上传 iOS打包
这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。
1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc
工作流复杂拓扑结构处理新思路
comsci
设计模式 工作 算法 企业应用 OO
我们走的设计路线和国外的产品不太一样,不一样在哪里呢? 国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很
oracle 11g新特性Flashback data archive
daizj
oracle
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
多叉树:2-3-4树
dieslrae
树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:
1、有一个数据项的节点总是有2个子节点(称为2-节点)
2、有两个数据项的节点总是有3个子节点(称为3-节
C语言学习七动态分配 malloc的使用
dcj3sjt126com
c language malloc
/*
2013年3月15日15:16:24
malloc 就memory(内存) allocate(分配)的缩写
本程序没有实际含义,只是理解使用
*/
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int i = 5; //分配了4个字节 静态分配
int * p
Objective-C编码规范[译]
dcj3sjt126com
代码规范
原文链接 : The official raywenderlich.com Objective-C style guide
原文作者 : raywenderlich.com Team
译文出自 : raywenderlich.com Objective-C编码规范
译者 : Sam Lau
0.性能优化-目录
frank1234
性能优化
从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。
主要内容包括:
一、性能测试指标
吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间
http://frank1234.iteye.com/blog/2180305
二、性能测试策略
生产环境相同 基准测试 预热等
htt
Java父类取得子类传递的泛型参数Class类型
happyqing
java 泛型 父类 子类 Class
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao<T> {
public void getType() {
//Class<E> clazz =
跟我学SpringMVC目录汇总贴、PDF下载、源码下载
jinnianshilongnian
springMVC
----广告--------------------------------------------------------------
网站核心商详页开发
掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架;
掌握数据库技术,表设计和索引优化,分库分表/读写分离;
了解缓存技术,熟练使用如Redis/Memcached等主流技术;
了解Ngin
the HTTP rewrite module requires the PCRE library
流浪鱼
rewrite
./configure: error: the HTTP rewrite module requires the PCRE library.
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. s
第12章 Ajax(中)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Optimize query with Query Stripping in Web Intelligence
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence
and a very straightfoward video
http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936
Java开发者写SQL时常犯的10个错误
tomcat_oracle
java sql
1、不用PreparedStatements 有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个: 他们对PreparedStatements不了解 他们认为使用PreparedStatements太慢了 他们认为写Prepar
世纪互联与结盟有感
阿尔萨斯
10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。
全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。
众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟