在上一篇《 HTML5本地存储之Web Storage篇》中,简单介绍了如何利用localStorage实现本地存储;实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLLite数据库比较熟悉。
HTML5中的数据库操作比较简单,主要有如下两个函数:
1、通过openDatabase方法创建一个访问数据库的对象
var db = openDatabase(databasename,version,description,size)
该方法有四个参数,作用分别为:
databasename:数据库名;
version:数据库版本号,可不填;
description:数据库描述;
size:给数据库分配的空间大小;
2、使用第一步创建的数据库访问对象(如db)执行transaction方法,用来执行事务处理
db.transaction(function(tx)){
//执行访问数据库的语句
});
transaction方法使用一个回调函数作为参数,在这个函数中,执行访问数据库的具体操作;
3、通过executeSql方法执行查询
tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
executeSql方法有四个参数,作用分别如下:
sqlQuery:需要具体执行的sql语句,可以是create、select、update、delete;
[value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
dataHandler:执行成功是调用的回调函数,通过该函数可以获得查询结果集;
errorHandler:执行失败时调用的回调函数;
本文通过HTML5的数据库支持,重新实现一遍上篇文章中的通讯录管理,待实现功能如下:
可创建联系人并保存到数据库中,联系人字段包括:姓名、手机号码、公司、创建时间;
列出当前已保存的所有联系人信息;
可删除特定联系人信息;
同样,先准备一个HTML页面,如下 :
界面展现如下:
要实现创建新联系人并存入数据库功能,需要如下简单的JS代码:
//打开数据库
var db = openDatabase('contactdb','','local database demo',204800);
//保存数据
function save(){
var user_name = document.getElementById("user_name").value;
var mobilephone = document.getElementById("mobilephone").value;
var company = document.getElementById("company").value;
//创建时间
var time = new Date().getTime();
db.transaction(function(tx){
tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError);
});
}
//sql语句执行成功后执行的回调函数
function onSuccess(tx,rs){
alert("操作成功");
loadAll();
}
//sql语句执行失败后执行的回调函数
function onError(tx,error){
alert("操作失败,失败信息:"+ error.message);
}
要展现当前所有已保存的联系人列表,可通过如下JS代码实现:
//将所有存储在sqlLite数据库中的联系人全部取出来
function loadAll(){
var list = document.getElementById("list");
db.transaction(function(tx){
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]);
//查询所有联系人记录
tx.executeSql('select * from contact',[],function(tx,rs){
if(rs.rows.length>0){
var result = "
";
result += "序号 姓名 手机 公司 添加时间 操作 ";
for(var i=0;ivar row = rs.rows.item(i);
//转换时间,并格式化输出
var time = new Date();
time.setTime(row.createtime);
var timeStr = time.format("yyyy-MM-dd hh:mm:ss");
//拼装一个表格的行节点
result += ""+(i+1)+" "+row.name+" "+row.phone+" "+row.company+" "+timeStr+" ";
}
list.innerHTML = result;
}else{
list.innerHTML = "目前数据为空,赶紧开始加入联系人吧";
}
});
});
}
其中,涉及到格式化时间的format函数,可参考如下JS实现 :
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
最后,界面实现效果如下:
要实现具体某个联系人,需执行如下JS代码 :
//删除联系人信息
function del(phone){
db.transaction(function(tx){
//注意这里需要显示的将传入的参数phone转变为字符串类型
tx.executeSql('delete from contact where phone=?',[String(phone)],onSuccess,onError);
});
}
如上截图中的表格样式,可参考如下CSS代码 :
th {
font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
text-align: left;
padding: 6px 6px 6px 12px;
}
td {
border-right: 1px solid #C9DAD7;
border-bottom: 1px solid #C9DAD7;
background: #fff;
padding: 6px 6px 6px 12px;
color: #4f6b72;
}
你可能感兴趣的:(HTML5本地存储之Database Storage应用介绍)
《翻转课堂与微课程教学法》学习心得 4组11号 孙娜
4组11号孙娜
读完《翻转课堂与微课程教学法》这本书让我对为何要进行翻转课堂,以及如何进行有了一些了解,教学观念和思想有了一种新的认识。对翻转课堂和微课程早有耳闻,也或多或少地在网络上进行过一些查阅,但都是一些零碎的、浅尝辄止的了解,现在静下心来读这本系统的著作,使我对翻转课堂和微课程有了更清晰的认识。这本书共分为上、下两部分,上篇主要是翻转课堂的相关理论和目前翻转课堂进行的一些案例,后半部主要介绍如何实施翻转课
在 Conda 中删除环境及所有安装的库
Studying 开龙wu
conda
注意事项1.删除环境前确保你没有在该环境中运行任何程序。2.删除操作是不可逆的,所有该环境中的包和配置都会被永久删除。3.如果你想保留环境的配置信息,可以在删除前使用condaenvexport>environment.yml导出环境配置。关于requirements.txt和environment.yaml文件使用介绍详情可参考以往文章,争对机器学习和深度学习里Python项目开发管理项目依赖的
百度网盘推广赚钱收益怎么样?百度网盘拉新最高价格真相太香了!
清风导师
百度网盘拉新收益一个多少钱?揭秘百度网盘推广最高佣金价格渠道如何对接?百度网盘拉新严格来说应该是百度网盘推广赚钱,包括了拉新、会员分成、转存资源等多个维度的收益和玩法,虽然百度网盘拉新刚上线的时候价格政策并不算非常给力,不过随着近期活动政策和佣金的提高,目前已经俨然成为网盘推广赚钱领域的香饽饽了。下面本文将会为大家介绍一下目前百度网盘拉新最高价格政策,已经如何对接最高佣金的服务商渠道!一、百度网盘
宝妈在家做什么能赚钱?适合宝妈在家做的分享优惠券赚钱方法(附具体操作方式)
高省APP大九
作为一位宝妈,如何在照顾家庭的同时还能有所收入,成为了许多人的难题。而微信羊毛群则为宝妈们提供了一个在家创业的好机会。通过参与羊毛群活动,宝妈们可以利用闲暇时间获取优惠券和折扣信息,然后分享给朋友和亲人,实现赚钱的目的。本文将介绍如何利用高省APP在微信羊毛群中赚钱的方法。一、了解微信羊毛群微信羊毛群是一种以分享优惠券和折扣信息为主的社交群体。群主通常会与商家合作,发布一些带有优惠券和折扣的商品信
通过Netplan为Ubuntu服务器新增DNS以解析内部域名
在企业网络环境中,Ubuntu服务器常常需要访问内部服务,这些服务通常通过内部域名进行寻址。如果服务器默认配置的DNS无法解析这些内部域名,就需要手动添加公司的内部DNS服务器地址。本章节将详细介绍如何在Ubuntu22.04LTS服务器上使用Netplan工具新增DNS服务器IP,并提供解决配置后可能遇到的常见问题的步骤,确保服务器能够顺利解析内部域名。前提条件拥有一台运行Ubuntu22.04
Lua + Redis + SpringBoot = 王炸!
第一部分:Lua脚本简介第二部分:为什么选择Lua脚本第三部分:lua脚本的应用场景第四部分:Lua脚本在SpringBoot中的实现第五部分:Lua脚本来提高SpringBoot应用程序的性能第六部分:错误处理和安全性第七部分:最佳实践和建议曾经有一位魔术师,他擅长将SpringBoot和Redis这两个强大的工具结合成一种令人惊叹的组合。他的魔法武器是Redis的Lua脚本。今天,我们将揭开这
【laravel+redis】分布式锁的实现
起灵人
php laravel redis laravel redis php
laravel官方支持“原子锁”,并且说“要使用这个功能,应用必须使用memcached、dynamodb、redis、database或array缓存驱动作为应用默认的缓存驱动,此外,所有服务器必须和同一台中央缓存服务器进行通信”。前半句不多解释,后半句也强调了laravel的原子锁不负责在集群架构中保障故障转移期间的数据安全性。我贴一下laravel的源码看一下它是怎样用redis实现的分布式
渭南7家正规亲子鉴定中心办理地址大全(附2024年鉴定攻略)
国医基因周主任
渭南市不仅以其独特的地理风貌和丰富的文化传统著称,也因其提供的亲子鉴定服务而受到广泛关注。为了协助市民和家庭找到值得信赖的亲子鉴定中心,我们特别搜集并整理了2024年渭南市7家正规亲子鉴定中心的详细地址,并提供了一份实用的鉴定指南。以下是对这些中心的全面介绍和相关攻略。渭南7家正规亲子鉴定中心办理地址大全1、渭南市国医基因亲子鉴定中心渭南市亲子鉴定中心地址:渭南市临渭区胜利大街35号咨询范围:个人
【一张图背论语】Day 029| 为政第二 | 2.13 子贡问君子
Heger_四维脑图
子贡问君子。子曰:“先行其言而后从之。”子贡问怎样才能做一个君子。孔子说:对于你要说的话,先实行了,然后说出来。在孔子的弟子中,子贡在“言语”一科中,这也说明了子贡本人在言辞方面是比较擅长的。子贡虽然善辩,但是也有言多失礼的地方。孔子在此处的这番言论,意在教育子贡,说得再好都不如做得好更让人信服,这也是孔子“因材施教”的典例。
理解的证据---追求理解的教学设计9
卌行
达尔文,知道得少,但懂(理解)得多。这真是一句很有意思的话。首先,需要理解“理解得多”是什么意思?书中说我们经常将理解表述为“深入”的或“有深度的”,使之区别于浅层次的认知目标---知道。学习者必须在表面下挖掘,揭示不易发觉的核心观点。所有这些内涵强调的都是要透过表层,挖掘隐藏在内部的精华。我们无法通过灌输概念使其被理解;我们必须揭示它们的价值,事实上,这些概念正是探究和讨论的结果。从这段话的描述
使用 .NET 6.0 的简单 WebSocket 客户端和服务器应用程序
几个月前,有同事来找我,问能否用.NET创建一个简单的WebSocket服务器(以及之后的客户端)。据我了解,他想用它来控制对方电脑上的进程。或许对其他人也有用,所以我把它发布在这里。让我们从服务器开始。我这里使用的是.NET6和ASP.NETCore,不需要任何额外的配置。它实际上是一个准系统应用程序,没有任何花哨的附加功能。Console.Title="Server";varbuilder=W
Supervisor 入门指南一篇就够 —— 安装、项目配置与常见报错速查
逻极
python 开发工具 笔记 python 运维 工具 开发 supervisor
Supervisor入门指南一篇就够——安装、项目配置与常见报错速查一、Supervisor是什么在服务器进程管理中,Supervisor是一款用Python编写的进程守护与管理工具。它的核心功能是将普通的命令行进程转变为后台daemon进程,并且在进程因意外情况退出时,能够自动将其重启,保证进程的持续运行。在实际应用中,它常出现在多层架构里。比如在Nginx→Gunicorn/Django→Su
Unreal Engine开发:Unreal Engine基础入门_C++编程基础v1
chenlz2007
游戏开发 虚幻 c++ java unity 游戏引擎 交互 lucene
C++编程基础在开始学习UnrealEngine之前,掌握C++编程基础是非常重要的。C++是一种强大的面向对象编程语言,广泛应用于游戏开发、系统软件开发等领域。本节将介绍C++的基本概念、语法和一些常用的功能,为后续的UnrealEngine开发打下坚实的基础。1.C++简介C++是一种静态类型的、编译式的、通用的、中级到高级的编程语言,它支持多种编程范式,包括面向对象编程、泛型编程和过程化编程
绝佳组合 Lua + Redis + SpringBoot = 王炸!
Java精选
lua redis spring boot junit 单元测试
前言曾经有一位魔术师,他擅长将SpringBoot和Redis这两个强大的工具结合成一种令人惊叹的组合。他的魔法武器是Redis的Lua脚本。今天,我们将揭开这个魔术师的秘密,探讨如何在SpringBoot项目中使用Lua脚本,以解锁新的可能性和提高性能。如果你一直在寻找提升你的应用程序的方法,那么这篇博客将为你揭示其中的神奇之处。Lua脚本简介当涉及Lua编程时,以下是对前述12个关键概念的详细
济南11家无创胎儿亲子鉴定中心大全推荐(附2024年鉴定汇总)
中检国权有限公司
亲子鉴定,作为现代科技在法医学领域的杰出应用,通过精密的DNA序列比对技术,为确认亲子关系提供了无可辩驳的科学证据。在济南这座美丽的城市,寻找一家专业、可靠的亲子鉴定机构,是众多家庭面临的重要选择。以下为您精心梳理了济南地区亲子鉴定的三大选择途径及具体机构介绍。济南市做亲子鉴定的正规机构:1、济南中量亲鉴亲子鉴定咨询中心济南市亲子鉴定中心地址:山东省济南市槐荫区经五纬七路济南市亲子鉴定中心电话:1
大盘依旧低迷,二胎和自动驾驶活跃
虚拟大师
本周来看,大盘依然不温不火,呈现箱形震荡。很多人都在打赌,沪指在上周调整之后有望突破新高,其实不然,目前的沪指基本上很难回复到以前的高位,甚至不会有向上突破的趋势,而且目前大盘的题材不鲜明,权重股没有扛起反攻的大旗。近期来看,二胎在本周表现强势,掀起几度涨停狂潮,金发拉比10天9板,成为目前的市场总龙头(目前已经停牌核查)。与之跟随的是贝因美,高乐股份,安奈儿等。目前我国的生育大家都心知肚明,所以
妻妾成群
小灰象
颂莲被抬进陈家花园做四太太的那一年她十九岁,大学一年级没读完。家里茶厂的倒闭伴着父亲的死和她的辍学。继母给她两条路,做工或嫁人。她说,当然是嫁人。嫁穷人还是有钱人。当然是有钱人,她说。做小也是好的。颂莲嫁进陈家的那天去见大太太,在佛堂诵经的大太太得知后没有抬头看她,随后扯断了手中的佛珠。口中念念有词,罪过,罪过。颂莲的住处在后花园的南厢房里,紧挨着三太太梅珊的住处。早听说三太太有倾国倾城之貌,颂莲
190/365 给宝贝的第84封信:《道德经》第65章:为者败之,执者失之
珍珠能量站
亲爱的宝贝:今天重新听了古典的《超级个体》课,其中“未来职场只有3种人”的说法让我重新审视了自己。文明在发展,新的技术新的材料层出不穷。但是文明的进展本质上是信息的重新组合。信息包括元素、原子、字母、文字。比如今天的半导体技术,其实就是沙子中的Si元素的提纯,Si原子的重新组合;今天的钢铁、塑料,也都是过去已有的元素的重新组合。从信息的角度看职业,不同职业本质上就是对信息处理方式的不同。作家是在重
《六项精进》第二章第四部分
一澍景观
大家好,我是盛和塾诚敬组塾生蒋科峰,也是一澍景观澍阅荟会员。今日共读一本书之六项精进第二章第四部分。P72—73这一部分阐述了京瓷遵循“无贷款经营”。半个世纪以来,不仅实现了无贷款经营,而且因不断积累内部留存,又建立了及其健全的财务体质。衍射到我们一澍景观,我们该如何经营,该如何在当今社会如此激烈的竞争中取胜,针对这一部分我总结几点:1、不断付出不亚于任何人的努力,明天胜过今天,后天胜过明天;2、
高省是什么平台?加入高省赚钱需要什么条件?
高省APP大九
高省是什么平台高省安全吗?高省app,实现你的赚钱梦想,打拼两年的我为大家详细介绍一下高省到底是什么平台。【高省】是一个可省钱佣金高,能赚钱有收益的平台,百度有几百万篇报道,也期待你的加入。高省邀请码999999,注册送2皇冠会员,送万元推广大礼包。下面继续跟大家聊聊高省有什么好处?1学习新的赚钱方法。您可以通过下载高省应用程序独立搜索优惠券,也可以通过加入代理商分享和赚钱。用户黏性高,不需要维护
next.js刷新页面时二级菜单展开状态判断
啃火龙果的兔子
开发DEMO javascript 前端 react.js
在Next.js中保持二级菜单刷新后展开状态的解决方案在Next.js应用中,当页面刷新时保持二级菜单的展开状态,可以通过以下几种方法实现:方法1:使用URL参数保存状态(推荐)import{useRouter}from'next/router';import{useEffect,useState}from'react';constMenuComponent=()=>{constrouter=us
失业离异?本科的她用求职简历引爆全球黑客战争
失业离异?本科的她用求职简历引爆全球黑客战争28岁离异失业的蓉儿,被前夫靖哥哥在面试时嘲讽“大龄废柴”。她将211本科计算机功底炼成武器,将求职简历制成“地狱级蜜罐”。全球黑客组织疯狂破解她的“求职系统”,反被吸干攻击武器库。联合国紧急会议中,首席科学家席位虚位以待。靖哥哥颤抖着递来CEO聘书时,她瞥见邮件闪烁:“暗网帝国女皇之位,待君执掌”。七月的风带着黏腻的潮气,吹不散出租屋里沉甸甸的闷。蓉儿
Spring Boot + Lua = 王炸!
程序没有bug
Java spring boot 编程 java 后端
曾经有一位魔术师,他擅长将SpringBoot和Redis这两个强大的工具结合成一种令人惊叹的组合。他的魔法武器是Redis的Lua脚本。今天,我们将揭开这个魔术师的秘密,探讨如何在SpringBoot项目中使用Lua脚本,以解锁新的可能性和提高性能。如果你一直在寻找提升你的应用程序的方法,那么这篇博客将为你揭示其中的神奇之处。第一部分:Lua脚本简介当涉及Lua编程时,以下是对前述12个关键概念
《九都记》第152章 八方祥云炼雷丹
秦纵横
“盖世英雄!”仙仙一怔,眯着的眸子里闪过一丝朦胧神往之色。这位犹带仙气儿的妙人儿,此时此刻打开了心中的梦幻,遐想无限。“我的盖世英雄会是他吗?我的意中人应该踏着七彩祥云出现吧?我在乱想些什么?”月勾下,心念他,红颜羞答答,朦胧处,念他心,春闺梦里人。皓月长情,一寸还成千万缕,红尘懵懂,半滴已醉女儿红。仙仙的心乱了,像剪不断的乱麻理不清,仙仙的心亦醉了,像沾染了花蜜有些甜。懵懵懂懂间,朦朦胧胧处,她
PHP 性能优化全攻略:提升 Web 应用速度的关键
来恩1003
PHP 从入门到精通 php 性能优化 前端
PHP学习资料PHP学习资料PHP学习资料在Web开发领域,PHP凭借其简单易用、开源免费等特性,成为众多开发者构建网站和应用的首选语言。然而,随着业务的发展和用户量的增加,PHP应用的性能问题逐渐凸显。性能不佳不仅会导致用户体验下降,还可能影响业务的发展。因此,对PHP代码进行性能优化至关重要。本文将深入探讨PHP性能优化的各个方面,包括缓存的使用、代码优化策略以及服务器配置优化等,帮助开发者打
纸船
益智子
日复一日,我在奔流的溪上漂我的纸船,一只只让它们顺水而下。我用大黑字把我的名字和我住的村名写在纸船上。我希望陌生的土地上有人发现它们,知道我是谁。我把花园里的秀莉花载在小船上,希望这些黎明之花会在夜间被平平安安地带到岸上。我让纸船出航,仰望天空,看见小小的云朵正张着鼓满风的白帆。我不知道天上有我的什么玩伴将它们顺着空气放下来,同我的船比赛!夜晚来临的时候,我把脸埋在臂弯里,梦见我的纸船在午夜星光下
【Nacos无压力源码领读】(二) 集成 LoadBalancer 与 OpenFeign
Dexu7
SpringCloud 负载均衡 ribbon
上一篇文章中,详细介绍了Nacos注册中心的原理,相信看完后,大家应该完全掌握了Nacos客户端是如何自动进行服务注册的,以及Nacos客户端是如何订阅服务实例信息的,以及Nacos服务器是如何处理客户端的注册和订阅请求的;本文承上启下,在订阅服务实例的基础上,介绍如何在实例之间进行选择,实现负载均衡;并详细介绍了负载均衡组件LocaBanlancer和函数式调用组件OpenFeign是如何与Na
智慧水库信息化系统建设产品需求文档V2.0
小赖同学啊
test Technology Precious 物联网
智慧水库信息化系统建设产品需求文档1.引言1.1文档目的本文档旨在明确智慧水库信息化系统的建设需求,为系统设计、开发和实施提供全面依据,确保系统功能满足水库管理业务需求,提升水库管理的智能化水平和决策效率。1.2背景介绍传统水库管理面临数据采集不及时、分析手段有限、决策依赖经验等问题,难以应对复杂多变的水文情势和日益增长的管理需求。随着物联网、大数据、人工智能等技术的发展,智慧水库建设成为必然趋势
游戏托哪里找平台 游戏托兼职平台 游戏托兼职
会飞滴鱼儿
(如果你玩手游,请你认真看完这篇文章。因为下面的内容可能会颠覆你的认知。)我本人从2015年从事手游研发和运营5年时间,曾经是某一游戏大厂的运营主管,这五年时间里我接手过17款热门游戏的研发与运营工作。但在2020年,我毅然决然的退出游戏行业。所有才敢爆出手游产业链的内幕。大家玩游戏肯定都遇到过托,其实市面上百分之85的手游里面都有手游托,甚至达到一款游戏一个服都有一个托。我们业内以内部号来称呼。
微信出品了个输入法,直接把AI塞进对话框问
qq_54693727
python
软件介绍微信输入法是TX微信团队打造的一款中文输入法,提供高效的输入体验、精准的推荐策略、多元的创新玩法。简洁、好用、打字快,无广告,适用于Windows/Mac/安卓/iOS软件特点:支持多端使用支持AI模式无广告下载地址:迅雷网盘
枚举的构造函数中抛出异常会怎样
bylijinnan
java enum 单例
首先从使用enum实现单例说起。
为什么要用enum来实现单例?
这篇文章(
http://javarevisited.blogspot.sg/2012/07/why-enum-singleton-are-better-in-java.html)阐述了三个理由:
1.enum单例简单、容易,只需几行代码:
public enum Singleton {
INSTANCE;
CMake 教程
aigo
C++
转自:http://xiang.lf.blog.163.com/blog/static/127733322201481114456136/
CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多。
介绍:http://baike.baidu.com/view/1126160.htm
本文件不介绍CMake的基本语法,下面是篇不错的入门教程:
http:
cvc-complex-type.2.3: Element 'beans' cannot have character
Cb123456
spring Webgis
cvc-complex-type.2.3: Element 'beans' cannot have character
Line 33 in XML document from ServletContext resource [/WEB-INF/backend-servlet.xml] is i
jquery实例:随页面滚动条滚动而自动加载内容
120153216
jquery
<script language="javascript">
$(function (){
var i = 4;$(window).bind("scroll", function (event){
//滚动条到网页头部的 高度,兼容ie,ff,chrome
var top = document.documentElement.s
将数据库中的数据转换成dbs文件
何必如此
sql dbs
旗正规则引擎通过数据库配置器(DataBuilder)来管理数据库,无论是Oracle,还是其他主流的数据都支持,操作方式是一样的。旗正规则引擎的数据库配置器是用于编辑数据库结构信息以及管理数据库表数据,并且可以执行SQL 语句,主要功能如下。
1)数据库生成表结构信息:
主要生成数据库配置文件(.conf文
在IBATIS中配置SQL语句的IN方式
357029540
ibatis
在使用IBATIS进行SQL语句配置查询时,我们一定会遇到通过IN查询的地方,在使用IN查询时我们可以有两种方式进行配置参数:String和List。具体使用方式如下:
1.String:定义一个String的参数userIds,把这个参数传入IBATIS的sql配置文件,sql语句就可以这样写:
<select id="getForms" param
Spring3 MVC 笔记(一)
7454103
spring mvc bean REST JSF
自从 MVC 这个概念提出来之后 struts1.X struts2.X jsf 。。。。。
这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍!
要看业务,和整体的设计!
最近公司要求开发个新系统!
Timer与Spring Quartz 定时执行程序
darkranger
spring bean 工作 quartz
有时候需要定时触发某一项任务。其实在jdk1.3,java sdk就通过java.util.Timer提供相应的功能。一个简单的例子说明如何使用,很简单: 1、第一步,我们需要建立一项任务,我们的任务需要继承java.util.TimerTask package com.test; import java.text.SimpleDateFormat; import java.util.Date;
大端小端转换,le32_to_cpu 和cpu_to_le32
aijuans
C语言相关
大端小端转换,le32_to_cpu 和cpu_to_le32 字节序
http://oss.org.cn/kernel-book/ldd3/ch11s04.html
小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)
Nginx负载均衡配置实例详解
avords
[导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。
负载均衡
先来简单了解一下什么是负载均衡
乱说的
houxinyou
框架 敏捷开发 软件测试
从很久以前,大家就研究框架,开发方法,软件工程,好多!反正我是搞不明白!
这两天看好多人研究敏捷模型,瀑布模型!也没太搞明白.
不过感觉和程序开发语言差不多,
瀑布就是顺序,敏捷就是循环.
瀑布就是需求、分析、设计、编码、测试一步一步走下来。而敏捷就是按摸块或者说迭代做个循环,第个循环中也一样是需求、分析、设计、编码、测试一步一步走下来。
也可以把软件开发理
欣赏的价值——一个小故事
bijian1013
有效辅导 欣赏 欣赏的价值
第一次参加家长会,幼儿园的老师说:"您的儿子有多动症,在板凳上连三分钟都坐不了,你最好带他去医院看一看。" 回家的路上,儿子问她老师都说了些什么,她鼻子一酸,差点流下泪来。因为全班30位小朋友,惟有他表现最差;惟有对他,老师表现出不屑,然而她还在告诉她的儿子:"老师表扬你了,说宝宝原来在板凳上坐不了一分钟,现在能坐三分钟。其他妈妈都非常羡慕妈妈,因为全班只有宝宝
包冲突问题的解决方法
bingyingao
eclipse maven exclusions 包冲突
包冲突是开发过程中很常见的问题:
其表现有:
1.明明在eclipse中能够索引到某个类,运行时却报出找不到类。
2.明明在eclipse中能够索引到某个类的方法,运行时却报出找不到方法。
3.类及方法都有,以正确编译成了.class文件,在本机跑的好好的,发到测试或者正式环境就
抛如下异常:
java.lang.NoClassDefFoundError: Could not in
【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j
bit1129
Stream
先来一段废话:
实际工作中,业务系统的日志基本上是使用Log4j写入到日志文件中的,问题的关键之处在于业务日志的格式混乱,这给对日志文件中的日志进行统计分析带来了极大的困难,或者说,基本上无法进行分析,每个人写日志的习惯不同,导致日志行的格式五花八门,最后只能通过grep来查找特定的关键词缩小范围,但是在集群环境下,每个机器去grep一遍,分析一遍,这个效率如何可想之二,大好光阴都浪费在这上面了
sudoku solver in Haskell
bookjovi
sudoku haskell
这几天没太多的事做,想着用函数式语言来写点实用的程序,像fib和prime之类的就不想提了(就一行代码的事),写什么程序呢?在网上闲逛时发现sudoku游戏,sudoku十几年前就知道了,学生生涯时也想过用C/Java来实现个智能求解,但到最后往往没写成,主要是用C/Java写的话会很麻烦。
现在写程序,本人总是有一种思维惯性,总是想把程序写的更紧凑,更精致,代码行数最少,所以现
java apache ftpClient
bro_feng
java
最近使用apache的ftpclient插件实现ftp下载,遇见几个问题,做如下总结。
1. 上传阻塞,一连串的上传,其中一个就阻塞了,或是用storeFile上传时返回false。查了点资料,说是FTP有主动模式和被动模式。将传出模式修改为被动模式ftp.enterLocalPassiveMode();然后就好了。
看了网上相关介绍,对主动模式和被动模式区别还是比较的模糊,不太了解被动模
读《研磨设计模式》-代码笔记-工厂方法模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 工厂方法模式:使一个类的实例化延迟到子类
* 某次,我在工作不知不觉中就用到了工厂方法模式(称为模板方法模式更恰当。2012-10-29):
* 有很多不同的产品,它
面试记录语
chenyu19891124
招聘
或许真的在一个平台上成长成什么样,都必须靠自己去努力。有了好的平台让自己展示,就该好好努力。今天是自己单独一次去面试别人,感觉有点小紧张,说话有点打结。在面试完后写面试情况表,下笔真的好难,尤其是要对面试人的情况说明真的好难。
今天面试的是自己同事的同事,现在的这个同事要离职了,介绍了我现在这位同事以前的同事来面试。今天这位求职者面试的是配置管理,期初看了简历觉得应该很适合做配置管理,但是今天面
Fire Workflow 1.0正式版终于发布了
comsci
工作 workflow Google
Fire Workflow 是国内另外一款开源工作流,作者是著名的非也同志,哈哈....
官方网站是 http://www.fireflow.org
经过大家努力,Fire Workflow 1.0正式版终于发布了
正式版主要变化:
1、增加IWorkItem.jumpToEx(...)方法,取消了当前环节和目标环节必须在同一条执行线的限制,使得自由流更加自由
2、增加IT
Python向脚本传参
daizj
python 脚本 传参
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[
管理用户分组的命令gpasswd
dongwei_6688
passwd
NAME: gpasswd - administer the /etc/group file
SYNOPSIS:
gpasswd group
gpasswd -a user group
gpasswd -d user group
gpasswd -R group
gpasswd -r group
gpasswd [-A user,...] [-M user,...] g
郝斌老师数据结构课程笔记
dcj3sjt126com
数据结构与算法
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
yii2 cgridview加上选择框进行操作
dcj3sjt126com
GridView
页面代码
<?=Html::beginForm(['controller/bulk'],'post');?>
<?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])
linux mysql
fypop
linux
enquiry mysql version in centos linux
yum list installed | grep mysql
yum -y remove mysql-libs.x86_64
enquiry mysql version in yum repositoryyum list | grep mysql oryum -y list mysql*
install mysq
Scramble String
hcx2013
String
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.
Below is one possible representation of s1 = "great":
跟我学Shiro目录贴
jinnianshilongnian
跟我学shiro
历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。
----广告-----------------------------------------------------
nginx日志切割并使用flume-ng收集日志
liyonghui160com
nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。第二步向nginx主
Oracle死锁解决方法
pda158
oracle
select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.
java之List排序
shiguanghui
list排序
在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。 你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递
servlet单例多线程
utopialxw
单例 多线程 servlet
转自http://www.cnblogs.com/yjhrem/articles/3160864.html
和 http://blog.chinaunix.net/uid-7374279-id-3687149.html
Servlet 单例多线程
Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的