??xml version="1.0" encoding="utf-8" standalone="yes"?> 1.常见OR框架Q?br />
hibernate?U状?nbsp; ID生成{略 2.helloword程?/p>
clent—》app server -》strus—》action—》service—》DAO—》model—》DB 3.面向接口~程 4.把一个对象存到数据库Q怎么做呢Q?br />
首先实例化对象,链接数据库,通过sql语句对象插入到数据库。sql语句不是面向对象的语a?/p>
5.通过hibernate对象插入到数据库:(x) 通常是:(x)Build Path->Add External Archives d外部扩展.jar包,但是如果有多?jar包同属于一个项目,例如hibernate有多?jar包,可以把hibernate的多个包攑օ一个包中,做法如下QWindow->Preferences->java->Build Path->User Libraries(User自定义的librares)Q然后根据右侧提C操作即可?/p>
Hibernate的包 建立hibernate的配|文?/p>
ddl:数据定义语言Q徏表语句,hbmQhibernate mapping。hbm2ddlQ是否自动生成徏表语句?br />
数据库表名不区分大小写?/p>
可以通过几个cL交道QConfiguration、SessionFactory、Session(java里面?、然后对象调用Session的saveҎ(gu)Q就可以对象插入到数据库了(jin)。而不用通过sql语句Q这U方式是面向对象的。sql语句已经被Hibernate取代?jin)。把对象持久化到数据库?/p>
6.学hibernate风格
先脉l,后细?br />
先操作,后原?br />
重AnnotationQ轻xml配置文g?/p>
Annotation又分两种QJPA的Annotation ?Hibernate-extention。前者是重点?/p>
d.jar包,
Hibernate的包在Hibernate的源文g的lib目录下,其中lib目录里面有bytecode、optional和required3个目录,bytecode试试生成二进制字节码所需要的.jar包,optional是可选的包,required是必ȝ包,我们选择required下的包,全部引进我们的项目包?br />
建立一个hibernate目Q除?jin)hibernate?jar包以外,q要与之对应版本的slf4j?jar包,因ؓ(f)Hibernate?jar包里面虽然有?jin)slf4j-api-1.5.8.jarq个包,但是q个包只有apiQ但是ƈ没有具体的实玎ͼq需要引入slf4j目下的slf4j-nop-1.5.8.jarq个包,q个包定义了(jin)slf4j的具体实现?/p>
建立数据?》徏立modelc?/p>
首先从网上下载一个jquery的api(我给提供?Q解压后把shared、Extensions、codehints三个文g夹复制到
WinXP:C:\Documents and Settings\Administrator\Application Data\Adobe\Dreamweaver CS5\zh_CN\Configuration
win7:C:\Users\Administrator\AppData\Roaming\Adobe\Dreamweaver CS5\zh_CN\Configuration
重新启动Adobe Dreamweaver CS5卛_。我从网上查?jin)些资料Q说不用重新启动Adobe Dreamweaver CS5Q但是我q没启动前没有效果,重新启动?jin)下可以自动提CZ(jin)?br />
语言包太大了(jin)Q传不上来,可以到其他的|站下蝲?br />
http://www.aygfsteel.com/Files/yansj1997/jqueryAPI.rar
]]>
]]>
相对于用了(jin)十多q的HTML表单Q这是一个革命性的q步。虽然IE的落后让很多开发者还在观望中Q但是Gmail邮箱的附件拖拽功
能已l给部分用户带来?jin)极大的方便Q而需要大量上传文件的CMSQ内容管理系l)(j)也将?x)从中受益?/p>
让我们看一下Firefox 是如何用拖拽上传功能的Q?br />
首先提供一个区域来攄文gHtml代码
<div name="image" id="dropbox" style="min-width:300px;min-height:100px;border:3px dashed silver;"></div>
然后监听拖拽q程中的dragenter、dragleave、drop{事?br />
Js代码
document.addEventListener("dragenter", function(e){ dropbox.style.borderColor = 'gray'; }, false);
document.addEventListener("dragleave", function(e){ dropbox.style.borderColor = 'silver'; }, false);
dropbox.addEventListener("dragenter", function(e){dropbox.style.borderColor = 'gray'; dropbox.style.backgroundColor = 'white'; }, false);
dropbox.addEventListener("dragleave", function(e){ dropbox.style.backgroundColor = 'transparent'; }, false);
dropbox.addEventListener("dragenter", function(e){ e.stopPropagation(); e.preventDefault(); }, false);
dropbox.addEventListener("dragover", function(e){ e.stopPropagation(); e.preventDefault(); }, false);
dropbox.addEventListener("drop", function(e){e.stopPropagation(); e.preventDefault(); handleFiles(e.dataTransfer.files); submit.disabled = false;}, false);
其中最主要的是drop事g中用handleFiles()依次处理所有文?br />
Js代码
handleFiles = function(files) {for (var i = 0; i < files.length; i++) { var file = files[i]; }}
对于囄cd的文件可以直接读取内容,昄预览?/p>
Js代码
if (!file.type.match(/image*/)) { continue; }
var img = document.createElement("img");
img.classList.add("obj");
img.file = file;
preview.appendChild(img);
var reader = new FileReader();
reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img);
reader.readAsDataURL(file);
接下来就是核?j)功能?x)ajax上传。首先新Z个XHRh
js代码
var xhr = new XMLHttpRequest();
xhr.open('post', '/file/upload', true);
监听上传q度和完成事?nbsp;
Js代码
xhr.upload.addEventListener("progress", function(e) {
if (e.lengthComputable) {
var percentage = Math.round((e.loaded * 100) / e.total);
img.style.opacity = 1-percentage/100.0;
}
}, false);
xhr.upload.addEventListener("load", function(e){
}, false);
最后把数据模拟成multipart/form-data的格式上?nbsp;
Js代码
xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); // simulate a file MIME POST request.
xhr.setRequestHeader("Content-Length", fileSize);
var body = '';
body += "--" + boundary + "\r\n";
body += "Content-Disposition: form-data; name=\""+dropbox.getAttribute('name')+"\"; filename=\"" + fileName +
"\"\r\n";
body += "Content-Type: "+fileType+"\r\n\r\n";
body += fileData + "\r\n";
body += "--" + boundary + "--\r\n";
xhr.sendAsBinary(body);