锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍥犱負欏圭洰闇瑕侊紝鍓嶅嚑澶╁畬鎴愪簡fusioncharts鐨勫熀鏈嬌鐢紝浣嗘槸榪樹笉鑳芥弧瓚抽」鐩渶姹傘?br />
欏圭洰涓渶瑕佸疄鐜版寜鐓у鎴風殑闇姹傚鍑烘寚瀹氭牸寮忕殑鏂囦歡錛岃屼笖鍙互鍥捐〃娣風紪絳夛紝榪欏氨闇瑕佽嚜宸卞幓鎵╁睍fusioncharts鏈韓鐨勫鍑恒?br />
涓嬮潰綆鍗曚粙緇嶅浣曞湪鏈嶅姟鍣ㄧ浣跨敤JSP瀵煎嚭鍚勭鏂囦歡鏍煎紡錛屽茍鑳借嚜鐢辨墿灞曘傚洜涓烘椂闂存瘮杈冪揣錛屽啓鐨勫緢鍑屼貢錛屽笇鏈涘ぇ瀹剁悊瑙c?br />
鍦↗2EE妗嗘灦涓嬬敤JSP瀵煎嚭鏂囦歡
1.灝?exportAtClient瀵煎嚭灞炴ц緗負0錛堟湇鍔″櫒瀵煎嚭錛夛紝exportHandler璁劇疆涓?exp.jsp'銆?br />
鍙互鍦╟hart.exportChart({exportFormat:'pdf',exportHandler:'exp.jsp',exportFileName:'test',exportParameters:'test'});璁劇疆錛屼篃鍙互鍦╔ML閲岃緗傦紙娉ㄦ剰鍦↗S閲岃緗細閲嶅啓XML閲岄潰鐨勫鍑哄睘鎬ц緗級
2.exp.jsp涓哄鐞嗘暟鎹殑鏂囦歡錛屽彲瀹炵幇鍚勭鏂囦歡鏍煎紡鐨勫鍑恒?/span>
<%@ page language="java" import="com.hjtp.incas.chart.*" pageEncoding="utf-8"%>
<%@ page import="com.hjtp.incas.chart.helper.*"%>
<%@ page import="com.hjtp.incas.chart.exporthelper.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>瀵煎嚭鍥劇墖</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
try
{
ExportHelperBean exportHelperBean=FusionChartsExportHelper.parseExportRequestStream(request);
ExportFactory exportFactory=ExportFactory.getInstance();
String type=(String)exportHelperBean.getExportParameterValue("exportformat");
String fileName = (String)exportHelperBean.getExportParameterValue("exportfilename");
ExportFormat exportFormat=new ExportFormat(type);
String contentType=exportFormat.getContentType();
String fix=exportFormat.getPostfix();
response.reset();
response.setContentType(contentType);
response.addHeader("Content-Disposition","attachment; filename=\""+fileName+"."+fix+"\"");
java.io.OutputStream os=response.getOutputStream();
IFusionCharts iFusionCharts=exportFactory.getFusionCharts(type);
iFusionCharts.export(exportHelperBean,os);
os.flush();
os.close();
out.clear();
out=pageContext.pushBody();
}
catch (Exception e)
{
e.printStackTrace();
}
%>
</body>
</html>
3.濡備綍鎵╁睍瀵煎嚭鐨勬枃浠舵牸寮忎負欏圭洰鎵闇銆?br />
1.鑷畾涔夊鍑?br />
灝嗘湇鍔″櫒绔鍑哄弬鏁拌涓篹xportHandler:'exp.jsp'錛屽嵆涓轟嬌鐢ㄦ垜浠嚜宸?br />
鍐欑殑瀵煎嚭鏂瑰紡瀵煎嚭銆?br />
2.濡備綍鎵╁睍鑷畾涔夊鍑?br />
(1)鍦╡xp.jsp涓紝鍙互鐪嬪埌濡備笅涓よ浠g爜
IFusionCharts iFusionCharts=exportFactory.getFusionCharts(type);
iFusionCharts.export(exportHelperBean,os);
鍏朵腑exportFactory涓轟竴涓伐鍘傜被,璧峰垎鍙戝櫒鐨勪綔鐢紝閫氳繃姝ょ被鍙互鏍規嵁
鎵╁睍瀹為檯闇姹傝繘琛岃嚜瀹氫箟鎵╁睍銆?br />
(2)鑷畾涔夋墿灞曞疄鐜?錛屼緥濡傚儚瀹炵幇瀵箃xt鏂囦歡鏍煎紡鏀寔鐨勫鍑猴紝闇瑕佸湪鏂板鍔?br />
涓涓被瀹炵幇IFusionCharts 鎺ュ彛鐨別xport鏂規硶鍗沖彲錛屽悓鏃跺湪exportFactory
宸ュ巶綾婚噷娣誨姞瀵規鏀寔鐨勫垽鏂垎鍙戝疄鐜板嵆鍙?br />
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'ManageMenu.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css">
<script src="js/dhtmlXCommon.js"></script>
<script src="js/dhtmlXTree.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/util.js"></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/service.js'> </script>
<style type="text/css">
.input
{
width:300px;
height:20px;
border:solid 0px;
}
.input1
{
width:70px;
height:20px;
border:solid 0px;
}
.input2
{
width:300px;
height:20px;
border:solid 1px;
}
</style>
<script type="text/javascript">
var oPopup = window.createPopup();
var array_info;
function showmenu(height)
{
var lefter2 = event.clientY+12;
var topper2 = event.clientX+10;
var height2=file_menu.clientHeight;
oPopup.document.body.innerHTML = oContextHTML.innerHTML+"<input type='hidden' id='file_id' value='"+event.srcElement.id+"' name='file_id'>";
oPopup.show(topper2, lefter2, 150,height,this_win);
}
function viewRight()
{
var id=tree.getSelectedItemId();//琚変腑鐨勮妭鐐?br />
//tree.insertNewNext(id,'1',"FFTT",viewRight,"tombs_mag.gif","magazines_open.gif","magazines_close.gif","鍥炲","SELECT");
if(id!="0_0_-1")//褰撲笉鏄牴鑿滃崟鏃?br />
{
//alert(":::"+array_info[0]);
var chs = new Array();
chs = id.split("_");
var id=chs[0];
var ids=chs[1];
var v=array_info[0];
var height=0;
var adds=document.getElementById("add");
var edits=document.getElementById("edit");
var deletes=document.getElementById("delete");
var st_add="";
var st_edit="";
var st_delete="";
var dis_add="";
var dis_edit="";
var dis_delete="";
if(ids==-1)//涓綰х洰褰?br />
{
height=75;
st_add="<SPAN ONCLICK=\"parent.add('"+chs[2]+"')\">鏂板鑺傜偣錛?lt;u>A</u>dd錛?lt;/SPAN> ";
st_edit="<SPAN ONCLICK=\"parent.edit('"+v[0]+"','"+v[1]+"','"+v[2]+"','"+v[3]+"','"+v[4]+"','"+v[5]+"')\">淇敼鑺傜偣錛?lt;u>E</u>dit錛?lt;/SPAN> ";
st_delete=" <SPAN ONCLICK=\"parent.deletes('"+id+"')\">鍒犻櫎鑺傜偣錛?lt;u>D</u>elete錛?lt;/SPAN> ";
dis_add="";//灝嗚涓烘樉紺?br />
dis_edit="";//灝嗚涓烘樉紺?br />
dis_delete="";//灝嗚涓烘樉紺?br />
}
else
{
height=50;
st_add="";
st_edit="<SPAN ONCLICK=\"parent.edit('"+v[0]+"','"+v[1]+"','"+v[2]+"','"+v[3]+"','"+v[4]+"','"+v[5]+"')\">淇敼鑺傜偣錛?lt;u>E</u>dit錛?lt;/SPAN> ";
st_delete=" <SPAN ONCLICK=\"parent.deletes('"+id+"')\">鍒犻櫎鑺傜偣錛?lt;u>D</u>elete錛?lt;/SPAN> ";
dis_add="none";//灝嗚涓烘樉紺?br /> dis_edit="";//灝嗚涓烘樉紺?br /> dis_delete="";//灝嗚涓烘樉紺?/p>
}
adds.innerHTML=st_add;
edits.innerHTML=st_edit;
deletes.innerHTML=st_delete;
adds.style.display=dis_add;//灝嗚涓烘樉紺?br />
edits.style.display=dis_edit;//灝嗚涓烘樉紺?br />
deletes.style.display=dis_delete;//灝嗚涓烘樉紺?br />
showmenu(height);
}
else//鏍圭洰褰?br />
{
var adds=document.getElementById("add");
var edits=document.getElementById("edit");
var deletes=document.getElementById("delete");
adds.innerHTML="<SPAN ONCLICK=\"parent.add('root')\">鏂板鑺傜偣錛?lt;u>A</u>dd錛?lt;/SPAN> ";
edits.innerHTML="";
deletes.innerHTML="";
adds.style.display="";//灝嗚涓烘樉紺?br />
edits.style.display="none";//灝嗚涓烘樉紺?br />
deletes.style.display="none";//灝嗚涓烘樉紺?br />
var height=25;
showmenu(height);
}
}
function tonclick()
{
var id=tree.getSelectedItemId();//琚変腑鐨勮妭鐐?br />
if(id!="0_0_-1")//褰撲笉鏄牴鑿滃崟鏃?br />
{
var chs = new Array();
chs = id.split("_");
service.getMenuInfo(chs[0],menuclick);
var table=document.getElementById("table");//鏄劇ず鑺傜偣淇℃伅鐨勮〃
var tdshow=document.getElementById("tdshow");//鏄劇ず鑺傜偣淇℃伅鐨勮〃
var add_show=document.getElementById("add_show");
tdshow.style.display="";//灝嗚〃鏍艱涓烘樉紺?br />
add_show.style.display="none";//灝嗚〃鏍艱涓烘樉紺?br />
table.style.display="";//灝嗚〃鏍艱涓烘樉紺?br />
//alert(table_style);
//tree.insertNewNext(id,'1',"FFTT",viewRight,"tombs_mag.gif","magazines_open.gif","magazines_close.gif","鍥炲","SELECT");
}
}
function hander()
{
// var id=tree.getSelectedItemId();//琚変腑鐨勮妭鐐?br />
// alert(id);
tonclick();
viewRight();
}
function menuclick(data)
{
array_info=data;
var array=data[0];
var cms_name=document.getElementById("name");//鏄劇ず鑺傜偣鐨勫悕縐?br />
var cms_link=document.getElementById("link");//鏄劇ず鑺傜偣鐨勯摼鎺?br />
var cms_orders=document.getElementById("orders");//鏄劇ず鑺傜偣鐨勬帓搴忓彿
var cms_is_show=document.getElementById("is_show");//鑺傜偣鏄惁鏄劇ず
var cms_is_quick=document.getElementById("is_quick");//鑺傜偣鏄惁浣滀負蹇熼氶亾
var legend=document.getElementById("legend");//
legend.innerHTML=array[0];
cms_name.value=array[0];
cms_link.value=array[1];
cms_orders.value=array[2];
if(array[3]==0)
{
cms_is_show.value="鏄劇ず";
}
else
{
cms_is_show.value="涓嶆樉紺?;
}
if(array[4]==0)
{
cms_is_quick.value="鏄?;
}
else
{
cms_is_quick.value="鍚?;
}
}
</script>
<script type="text/javascript">
function add(id)
{
//鑿滃崟鍝嶅簲娣誨姞鏃惰皟鐢?br />
var add_show=document.getElementById("add_show");
var tdshow=document.getElementById("tdshow");
var click=document.getElementById("click");
var add_legend=document.getElementById("add_legend");
var add_cms_name=document.getElementById("add_name");//鏄劇ず鑺傜偣鐨勫悕縐?br />
var add_cms_link=document.getElementById("add_link");//鏄劇ず鑺傜偣鐨勯摼鎺?br />
var add_cms_orders=document.getElementById("add_orders");//鏄劇ず鑺傜偣鐨勬帓搴忓彿
var add_cms_is_show=document.getElementById("add_is_show");//鑺傜偣鏄惁鏄劇ず
var add_cms_is_quick=document.getElementById("add_is_quick");//鑺傜偣鏄惁浣滀負蹇熼氶亾
add_show.style.display="";
tdshow.style.display="none";
//bt.style.display="";
//bt.value="娣誨姞鑺傜偣";
add_legend.innerHTML="娣誨姞鑺傜偣";
click.innerHTML="<input type=\"button\" name=\"bt\" value=\"娣誨姞鑺傜偣\" onclick=\"adds('"+id+"')\" id=\"bt\">";
add_cms_name.value="";
add_cms_link.value="";
add_cms_orders.value="";
add_cms_is_show.value="0";
add_cms_is_quick.value="1";
}
</script>
<script type="text/javascript">
function edit(name,link,orders,is_show,is_quick,id)
{
//鑿滃崟鍝嶅簲淇敼鏃惰皟鐢?br />
var add_show=document.getElementById("add_show");
var tdshow=document.getElementById("tdshow");
var click=document.getElementById("click");
var add_legend=document.getElementById("add_legend");
var add_cms_name=document.getElementById("add_name");//鏄劇ず鑺傜偣鐨勫悕縐?br />
var add_cms_link=document.getElementById("add_link");//鏄劇ず鑺傜偣鐨勯摼鎺?br />
var add_cms_orders=document.getElementById("add_orders");//鏄劇ず鑺傜偣鐨勬帓搴忓彿
var add_cms_is_show=document.getElementById("add_is_show");//鑺傜偣鏄惁鏄劇ず
var add_cms_is_quick=document.getElementById("add_is_quick");//鑺傜偣鏄惁浣滀負蹇熼氶亾
add_show.style.display="";
tdshow.style.display="none";
//bt.style.display="";
//bt.value="淇敼鑺傜偣";
add_legend.innerHTML="淇敼"+name;
click.innerHTML="<input type=\"button\" name=\"bt\" value=\"淇敼鑺傜偣\" onclick=\"edits('"+id+"')\" id=\"bt\">";
add_cms_name.value=name;
add_cms_link.value=link;
add_cms_orders.value=orders;
add_cms_is_show.value=is_show;
add_cms_is_quick.value=is_quick;
}
</script>
<script type="text/javascript">
var stname;
function adds(id)
{
//alert("娣誨姞鎸夐挳--"+id);
//鏁版嵁搴撴坊鍔犳椂璋冪敤
var form =document.form1;
var name=form.add_name.value;
var link=form.add_link.value;
var orders=form.add_orders.value;
var is_show=form.add_is_show.value;
var is_quick=form.add_is_quick.value;
if(name==""||name==null)
{
alert("鑺傜偣鍚嶇О涓嶈兘涓虹┖!");
return false;
}
if(link==""||link==null)
{
link="#";
}
if(orders==""||orders==null)
{
orders="1";
}
if(is_show==""||is_show==null)
{
is_show="0";
}
if(is_quick==""||is_quick==null)
{
is_quick="1";
}
stname=name;
//alert(id);
service.Add(id,name,link,orders,is_show,is_quick,clickAdd);
}
function clickAdd(info)
{
var returninfo=new Array();
returninfo = info.split(";");
if(returninfo[0]=="true")
{
alert("鏂板銆?+stname+"銆戣妭鐐規垚鍔?");
var id=tree.getSelectedItemId();//琚変腑鐨勮妭鐐?br />
var insertid=returninfo[1]+"_"+returninfo[2]+"_"+returninfo[3];
//alert("::::"+insertid);
tree.insertNewChild(id,insertid,stname,hander,"book_titel.gif","books_open.gif","book.gif","","") ;
//var form2=document.form2;
//form2.action="cms/manageMenu.jsp";
//form2.submit();
}
else
{
alert("鏂板銆?+stname+"銆戣妭鐐瑰け璐?");
}
}
</script>
<script type="text/javascript">
function deletes(id)
{
//鑿滃崟,鏁版嵁搴撳垹闄ゆ椂璋冪敤
var bln = window.confirm("鎮ㄧ‘瀹氳鍒犻櫎姝ょ晫闈㈠悧?");
if(bln==true)
{
service.deleteAll(id,clickDelete);
tree.deleteItem(tree.getSelectedItemId(),true);
}
else
{
return false;
}
}
function clickDelete(info)
{
alert(info);
}
</script>
<script type="text/javascript">
function edits(id)
{
//鏁版嵁搴撲慨鏀規椂璋冪敤
var form =document.form1;
var name=form.add_name.value;
var link=form.add_link.value;
var orders=form.add_orders.value;
var is_show=form.add_is_show.value;
var is_quick=form.add_is_quick.value;
service.modify(id,name,link,orders,is_show,is_quick,clickModify);
}
function clickModify(info)
{
alert(info);
}
</script>
</head>
<body id="this_win">
<table>
<tr>
<td valign="top">
<form name="form2" method="post" action="">
<div id="treeboxbox_tree" style="width:250; height:600;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div>
<script>
tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
tree.setImagePath("images/imgs/");
tree.setXMLAutoLoading("cms/cmsmenu.jsp?op=open");
tree.loadXML("cms/cmsmenu.jsp?op=init");
//tree.enableItemEditor(true);
tree.setOnClickHandler(tonclick);//鍗曞嚮浜嬩歡璋冪敤鏂規硶
tree.setOnRightClickHandler(viewRight);//璁劇疆鍙抽敭璋冪敤鏂規硶
// tree.insertNewChild('root',5,"鏂拌妭鐐?,viewRight,"0","0","0","0","SELECT") ;
//tree.insertNewItem('0',100,"New Node 1",0,0,0,0,"SELECT");
</script>
</form>
</td>
<td rowspan="2" style="padding-left:25" valign="top" >
<form name="form1" method="post" action="">
<fieldset style="DISPLAY:none " id="tdshow">
<legend id="legend"></legend>
<table width="554" border="0" id="table" style="DISPLAY: none">
<tr>
<td width="102" height="24" scope="col">
<div align="left"><font size="2">鍚嶅瓧錛?lt;/font></div>
</td>
<td width="168" scope="col">
<div align="left" >
<input name="name" type="text" value="name" id="name" readonly class='input' >
</div>
</td>
</tr>
<tr>
<td width="98" scope="col">
<div align="left"><font size="2">閾炬帴:</font> </div>
</td>
<td width="168" scope="col">
<div align="left" >
<input name="link" type="text" value="link" id="link" readonly class='input'>
</div></td>
</tr>
<tr>
<td height="21"><font size="2">搴忓彿錛?nbsp; </font></td>
<td height="21">
<div align="left" >
<input name="orders" type="text" value="orders" id="orders" readonly class='input'>
</div>
</td>
</tr>
<tr>
<td>
<div align="left"><font size="2">鏄惁鏄劇ず錛?lt;/font> </div></td>
<td>
<div align="left" >
<input name="is_show" type="text" value="is_show" id="is_show" readonly class='input'>
</div>
</td>
</tr>
<tr>
<td height="21"><font size="2">鏄惁蹇熼氶亾錛?lt;/font></td>
<td height="21">
<div align="left" >
<input name="is_quick" type="text" value="is_quick" id="is_quick" readonly class='input'>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="21"></td>
<td height="21">
</td>
<td></td>
<td> </td>
</tr>
</table>
</fieldset>
<fieldset style="DISPLAY:none " id="add_show">
<legend id="add_legend"></legend>
<table width="554" border="0" id="add_table">
<tr>
<td width="102" height="24" scope="col">
<div align="left"><font size="2">鍚嶅瓧錛?lt;/font></div>
</td>
<td width="168" scope="col">
<div align="left" >
<input name="add_name" type="text" value="name" id="add_name" class='input2' >
</div>
</td>
</tr>
<tr>
<td width="98" scope="col">
<div align="left"><font size="2">閾炬帴:</font> </div>
</td>
<td width="168" scope="col">
<div align="left" >
<input name="add_link" type="text" value="link" id="add_link" class='input2'>
</div></td>
</tr>
<tr>
<td height="21"><font size="2">搴忓彿錛?nbsp; </font></td>
<td height="21">
<div align="left" >
<input name="add_orders" type="text" value="orders" id="add_orders" class='input2'>
</div>
</td>
</tr>
<tr>
<td>
<div align="left"><font size="2">鏄惁鏄劇ず錛?lt;/font> </div></td>
<td>
<div align="left" >
<select name="add_is_show" id="add_is_show">
<option value="0" selected>鏄劇ず
<option value="1">涓嶆樉紺?/p>
</select>
</div>
</td>
</tr>
<tr>
<td height="21"><font size="2">鏄惁蹇熼氶亾錛?lt;/font></td>
<td height="21">
<div align="left" >
<select name="add_is_quick" id="add_is_quick">
<option value="0" selected>鏄?br />
<option value="1">鍚?/p>
</select>
</div>
</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="21"> </td>
<td height="21">
</td>
<td id="click"></td>
<td> </td>
</tr>
</table>
</fieldset>
</form>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<DIV ID="oContextHTML" STYLE="display:none;">
<div id="file_menu">
<DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#99ccff, EndColorStr=#FFFFFF)';"
onmouseout="this.style.filter='';"
STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px; cursor:hand;DISPLAY: none" id="add">
</DIV>
<DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=yellowgreen,EndColorStr=#FFFFFF)';"
onmouseout="this.style.filter='';"
STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px; cursor:hand; border-top:0px solid black;DISPLAY: none" id="edit">
</DIV>
<DIV onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=gold, EndColorStr=#FFFFFF)';"
onmouseout="this.style.filter='';"
STYLE="font-family:verdana; font-size:70%; height:25px; background:#e4e4e4; border:1px solid black; padding:3px; padding-left:20px; cursor:hand;DISPLAY: none" id="delete">
</DIV>
</div>
</DIV>
</body>
</html>
瀛樺偍榪囩▼涓猴細
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
鐒跺悗鍛紝鍦?/span>java閲岃皟鐢ㄦ椂灝辯敤涓嬮潰鐨勪唬鐮侊細
package com.hyq.src;
import java.sql.*;
import java.sql.ResultSet;
public class TestProcedureOne {
public TestProcedureOne() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521: hyq ";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
CallableStatement cstmt = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, " hyq ", " hyq ");
CallableStatement proc = null;
proc = conn.prepareCall("{ call HYQ.TESTA(?,?) }");
proc.setString(1, "100");
proc.setString(2, "TestOne");
proc.execute();
}
catch (SQLException ex2) {
ex2.printStackTrace();
}
catch (Exception ex2) {
ex2.printStackTrace();
}
finally{
try {
if(rs != null){
rs.close();
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
catch (SQLException ex1) {
}
}
}
}
褰撶劧浜嗭紝榪欏氨鍏堣姹傝寤哄紶琛?/span>TESTTB,閲岄潰涓や釜瀛楁錛?/span>I_ID錛?/span>I_NAME錛夈?/span>
浜岋細鏈夎繑鍥炲肩殑瀛樺偍榪囩▼錛堥潪鍒楄〃錛?/span>
瀛樺偍榪囩▼涓猴細
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1;
END TESTB;
鍦?/span>java閲岃皟鐢ㄦ椂灝辯敤涓嬮潰鐨勪唬鐮侊細
package com.hyq.src;
public class TestProcedureTWO {
public TestProcedureTWO() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, " hyq ", " hyq ");
CallableStatement proc = null;
proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }");
proc.setString(1, "100");
proc.registerOutParameter(2, Types.VARCHAR);
proc.execute();
String testPrint = proc.getString(2);
System.out.println("=testPrint=is="+testPrint);
}
catch (SQLException ex2) {
ex2.printStackTrace();
}
catch (Exception ex2) {
ex2.printStackTrace();
}
finally{
try {
if(rs != null){
rs.close();
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
catch (SQLException ex1) {
}
}
}
}
}
娉ㄦ剰錛岃繖閲岀殑proc.getString(2)涓殑鏁板?/span>2騫墮潪浠繪剰鐨勶紝鑰屾槸鍜屽瓨鍌ㄨ繃紼嬩腑鐨?/span>out鍒楀搴旂殑錛屽鏋?/span>out鏄湪絎竴涓綅緗紝閭e氨鏄?/span>proc.getString(1)錛屽鏋滄槸絎笁涓綅緗紝灝辨槸proc.getString(3)錛屽綋鐒朵篃鍙互鍚屾椂鏈夊涓繑鍥炲鹼紝閭e氨鏄啀澶氬姞鍑犱釜out鍙傛暟浜嗐?/span>
涓夛細榪斿洖鍒楄〃
鐢變簬oracle瀛樺偍榪囩▼娌℃湁榪斿洖鍊鹼紝瀹冪殑鎵鏈夎繑鍥炲奸兘鏄氳繃out鍙傛暟鏉ユ浛浠g殑錛屽垪琛ㄥ悓鏍蜂篃涓嶄緥澶栵紝浣嗙敱浜庢槸闆嗗悎錛屾墍浠ヤ笉鑳界敤涓鑸殑鍙傛暟錛屽繀欏昏鐢?/span>pagkage浜?/span>.鎵浠ヨ鍒嗕袱閮ㄥ垎錛?/span>
1錛?nbsp;寤轟竴涓▼搴忓寘銆傚涓嬶細
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
2錛屽緩绔?/span>瀛樺偍榪囩▼錛屽瓨鍌ㄨ繃紼嬩負錛?/span>
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR) IS
BEGIN
OPEN p_CURSOR FOR SELECT * FROM HYQ.TESTTB;
END TESTC;
鍙互鐪嬪埌錛屽畠鏄妸娓告爣錛堝彲浠ョ悊瑙d負涓涓寚閽堬級錛屼綔涓轟竴涓?/span>out 鍙傛暟鏉ヨ繑鍥炲肩殑銆?/span>
鍦?/span>java閲岃皟鐢ㄦ椂灝辯敤涓嬮潰鐨勪唬鐮侊細
package com.hyq.src;
import java.sql.*;
import java.io.OutputStream;
import java.io.Writer;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oracle.jdbc.driver.*;
public class TestProcedureTHREE {
public TestProcedureTHREE() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "hyq", "hyq");
CallableStatement proc = null;
proc = conn.prepareCall("{ call hyq.testc(?) }");
proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
proc.execute();
rs = (ResultSet)proc.getObject(1);
while(rs.next())
{
System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");
}
}
catch (SQLException ex2) {
ex2.printStackTrace();
}
catch (Exception ex2) {
ex2.printStackTrace();
}
finally{
try {
if(rs != null){
rs.close();
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
catch (SQLException ex1) {
}
}
}
}
鍦ㄨ繖閲岃娉ㄦ剰錛屽湪鎵ц鍓嶄竴瀹氳鍏堟妸oracle鐨勯┍鍔ㄥ寘鏀懼埌class璺緞閲岋紝鍚﹀垯浼氭姤閿欑殑銆?/span>
濡傛灉鏈変粈涔堥棶棰樺憿錛?/span>鍙互鍜屾垜鑱旂郴hnlyhyq@163.com;qq:77542728.
鎴戠殑蹇冩効錛屾効涓浗鐨勭▼搴忓憳鏃╂棩杈懼埌涓栫晫姘村鉤錛岄鍏堜笘鐣岀鎶銆?br />
琛ュ厖涓涓嬌鐢╫racle瀛樺偍榪囩▼鍒嗛〉鐨勫皬渚嬪瓙錛?
1錛?寤轟竴涓▼搴忓寘銆傚涓嬶細
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
2錛屽緩绔嬪瓨鍌ㄨ繃紼嬶紝瀛樺偍榪囩▼涓猴細
create or replace procedure TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR,lowerNum in numeric,higherNum in numeric) is
begin
OPEN p_CURSOR FOR select * from ( select row_.*, rownum rownum_ from (select id,title,status from HYQTEST) row_ where rownum <= higherNum) where rownum_ >lowerNum;
end TESTC;
浣跨敤plsql嫻嬭瘯錛?
declare
lowerNum integer;
higherNum integer;
id varchar2(10);
title varchar2(500);
status numeric;
c testpackage.Test_CURSOR;
rownum_ integer;
begin
lowerNum:=1;
higherNum:=10;
TESTC(c,lowerNum,higherNum);
LOOP
FETCH c INTO id,title,status,rownum_;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('=琛屽彿='||rownum_||'=='||id||'==='||title||'===='||status||'==');
END LOOP;
CLOSE c;
end;
DWR鏄竴涓狾pen Source鐨?java欏圭洰銆侱WR鍙互璁㎎avaScript璋冪敤榪愯鍦╓eb鏈嶅姟鍣ㄩ噷闈㈢殑JAVA紼嬪簭銆傜畝鍗曚竴鐐規垨鑰呬笓涓氫竴鐐瑰氨鏄疎asy AJAX for JAVA.
涓嬮潰灝嗕竴姝ヤ竴姝ョ殑浠嬬粛鎬庝箞瀹屾垚涓涓畝鍗旸EMO
1錛屼粠瀹樻柟緗戠珯涓嬭澆DWR https://dwr.dev.java.net/files/documents/2427/32252/dwr.war 鎶婁粬鐩存帴鏀懼埌TOMCAT_HOME/webapps 涓嬮潰
2錛岀紪鍐欎竴涓狫ava綾誨涓嬶細
DWRTest.java
package com.test.ajax;
/**
*
* @author 鏂硅鍗?br /> *
*/
public class DWRTest {
public DWRTest(){
}
public String getMyName(){
return "James Fang";
}
}
3, 鎶奃RWTest綾婚厤緗湪dwr.xml涓紝dwr.xml鏄疍WR鐨勯厤緗枃浠訛紝鎵鏈夐渶瑕佸湪JavaScript涓皟鐢ㄧ殑java鐨勭被閮藉繀欏誨湪榪欎釜鏂囦歡涓弿榪?nbsp;銆傝繖涓枃浠剁殑浣嶄簬TOMCAT_HOME/webapps/dwr/WEB-INF/dwr.xml. 鍦?lt;allow>鏍囩涓坊鍔犱互涓嬪唴瀹?/p>
<create creator="new" javascript="MyTest" scope="application">
<param name="class" value="com.test.ajax.DWRTest"/>
</create>
4, 緙栧啓璋冪敤DWRTest綾?getMyName鐨勬柟娉曠殑HTML鏂囦歡錛宼est.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<html>
<head>
<title>DWR - My First AJAX</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type='text/javascript' src='/dwr/dwr/interface/MyTest.js'></script>
<script type='text/javascript' src='/dwr/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/dwr/util.js'></script>
<script language="javascript">
var mycall=function callBack(data){
DWRUtil.setValue("demo1",data);
}
function showMyName(){
MyTest.getMyName(mycall);
}
function clearName(){
demo1.value="";
}
</script>
</head>
<body>
<h1>Ajax Test Page</h1>
<input type="button" value="setMyName" onclick="javascript:showMyName()"><input type="button" value="Clear" onclick="javascript:clearName()"><br>
<input type="text" id="demo1"></select><br>
</body></html>
5, 榪愯錛屽湪嫻忚鍣ㄤ腑杈撳叆 http://localhost:8080/dwr/test.html
濡傛灉灝?form 鎻愪氦鍒版湇鍔″櫒绔?ASP 紼嬪簭錛孉SP 紼嬪簭瑕佽幏寰楃敤鎴烽夋嫨鐨勯偅涓?Radio 鐨?value 鏄潪甯告柟渚跨殑錛岀敤 request.Form("RadioName")錛屼笉蹇呯悊浼氭湁鍑犱釜 Radio銆?/p>
浣嗗湪 JS(JavaScript) 涓氨瑕佸鏉傚浜嗭紝鎴戜滑涓嶈兘鍍忓鍏跺畠鍏冪礌錛堝錛氭枃鏈錛変竴鏍鳳紝浣跨敤 formid.objName.value 鏉ュ彇鍊鹼紝鎴戜滑搴旇寰幆榪欎釜緇勭殑 Radio錛屽垽鏂叾 checked 灞炴э紝鍐嶅彇鍊箋?/p>
涓轟簡鏂逛究浣跨敤javascript鑾峰彇radio鐨勫鹼紝鎴戝啓浜嗕竴涓氱敤鐨勫嚱鏁版潵瀹炵幇錛?/p>
function GetRadioValue(RadioName){
var obj;
obj=document.getElementsByName(RadioName);
if(obj!=null){
var i;
for(i=0;i<obj.length;i++){
if(obj[i].checked){
return obj[i].value;
}
}
}
return null;
}
姣斿錛屾垜浠湁涓涓猲ame灞炴т負錛?#8220;myradio”鐨勫崟閫夋帶浠剁粍錛岃寰楀埌閫変腑鐨勫鹼紝鍙渶榪欐牱璋冪敤灝卞彲浠ヤ簡錛?/p>
var RValue;
RValue=GetRadioValue("myradio");
濡傛灉娌℃湁緇欏嚭鐨剅adioname鎺т歡錛屽垯鐩存帴榪斿洖null錛屾垨鑰呰繖涓緇勬帶浠舵病鏈夎閫夋嫨鐨勯」錛屽垯涔熻繑鍥瀗ull銆?/p>
// 鑾峰彇緙栬緫鍣ㄤ腑HTML鍐呭
function getEditorHTMLContents(EditorName) {
var oEditor = FCKeditorAPI.GetInstance(EditorName);
return(oEditor.GetXHTML(true));
}
// 鑾峰彇緙栬緫鍣ㄤ腑鏂囧瓧鍐呭
function getEditorTextContents(EditorName) {
var oEditor = FCKeditorAPI.GetInstance(EditorName);
return(oEditor.EditorDocument.body.innerText);
}
// 璁劇疆緙栬緫鍣ㄤ腑鍐呭
function SetEditorContents(EditorName, ContentStr) {
var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
oEditor.SetHTML(ContentStr) ;
}
FCKeditorAPI鏄疐CKeditor鍔犺澆鍚庢敞鍐岀殑涓涓叏灞瀵硅薄錛屽埄鐢ㄥ畠鎴戜滑灝卞彲浠ュ畬鎴愬緙栬緫鍣ㄧ殑鍚勭鎿嶄綔銆?/font>
鍦ㄥ綋鍓嶉〉鑾峰緱 FCK 緙栬緫鍣ㄥ疄渚嬶細
var Editor = FCKeditorAPI.GetInstance('InstanceName');
浠?FCK 緙栬緫鍣ㄧ殑寮瑰嚭紿楀彛涓幏寰?FCK 緙栬緫鍣ㄥ疄渚嬶細
var Editor = window.parent.InnerDialogLoaded().FCK;
浠庢鏋墮〉闈㈢殑瀛愭鏋朵腑鑾峰緱鍏跺畠瀛愭鏋剁殑 FCK 緙栬緫鍣ㄥ疄渚嬶細
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');
浠庨〉闈㈠脊鍑虹獥鍙d腑鑾峰緱鐖剁獥鍙g殑 FCK 緙栬緫鍣ㄥ疄渚嬶細
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');
鑾峰緱 FCK 緙栬緫鍣ㄧ殑鍐呭錛?br />
oEditor.GetXHTML(formatted); // formatted 涓猴細true|false錛岃〃紺烘槸鍚︽寜HTML鏍煎紡鍙栧嚭
涔熷彲鐢細
oEditor.GetXHTML();
璁劇疆 FCK 緙栬緫鍣ㄧ殑鍐呭錛?br /> oEditor.SetHTML("content", false); // 絎簩涓弬鏁頒負錛歵rue|false錛屾槸鍚︿互鎵瑙佸嵆鎵寰楁柟寮忚緗叾鍐呭銆傛鏂規硶甯哥敤浜?璁劇疆鍒濆鍊?鎴?琛ㄥ崟閲嶇疆"鍝︿綔銆?/font>
鎻掑叆鍐呭鍒?FCK 緙栬緫鍣細
oEditor.InsertHtml("html"); // "html"涓篐TML鏂囨湰
媯鏌?FCK 緙栬緫鍣ㄥ唴瀹規槸鍚﹀彂鐢熷彉鍖栵細
oEditor.IsDirty();
鍦?FCK 緙栬緫鍣ㄤ箣澶栬皟鐢?FCK 緙栬緫鍣ㄥ伐鍏鋒潯鍛戒護錛?br /> 鍛戒護鍒楄〃濡備笅錛?br /> DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo
浣跨敤鏂規硶濡備笅錛?br /> oEditor.Commands.GetCommand('FitWindow').Execute();
= FCKConfig.BasePath + 'plugins/'package com.gpdi.softevaluate.action;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ProjectSetAction extends DispatchAction
{
/**
* <p>妯℃澘楠岃瘉</p>
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward check(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception
{
String rest="";
String lotId="";
String retn="";
String flag="";
CommDaoFactory mgObj = new CommDaoFactory();
try
{
rest=request.getParameter("rest");
lotId=request.getParameter("lotId");
}
catch(Exception e)
{
}
if(!rest.equals("0")||!rest.equals("")||rest!=null)
{
flag="no";
}
else
{
flag="ok";
}
PrintWriter out=response.getWriter();
//鏈嶅姟鍣ㄨ繑鍥炰俊鎭?br />
out.write(flag);
out.close();
//璇誨彇鏈珹ction鎵鏈夌殑璇鋒眰鍙傛暟錛屽皢path閲嶆柊鏋勯狅紝鍔犱笂璇鋒眰鍙傛暟
//ActionForward forward= new ActionForward("project/projectSet.do?do=add&lotId=6");
//forward.setRedirect(true);
//浼犲弬鏁板悗榪斿洖
//return forward;
return mapping.findForward(null);
}
public ActionForward creattable(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception
{
//瀹炵幇鍔熻兘浠g爜
return mapping.findForward("create");
}
}
3.struts.config.xml
<action attribute="projectSetForm" name="projectSetForm"
parameter="do" path="/project/projectSet" scope="request"
type="com.gpdi.softevaluate.action.ProjectSetAction" validate="false">
<forward name="list" path="/project/viewProject.jsp" />
<forward name="add" path="/project/addProject.jsp" />
<forward name="create" path="/project/createTable.jsp" />
</action>
js浠g爜:
<script language="javascript">
var tag = false;
function doDelete()
{
if(deletecheck())
{
var theForm=document.projectSetForm;
theForm.action = "projectSet.do?do=delete&lotId=<%=request.getParameter("lotId") %>";
theForm.submit();
}
}
function deletecheck()
{
var theForm = document.projectSetForm;
var checked = false;
if(typeof(theForm.checkboxDelete.length)=="undefined"){
if(theForm.checkboxDelete.checked == true){
checked = true;
}
}else{
var len = theForm.checkboxDelete.length;
for (var i=0;i<len;i++){
if(theForm.checkboxDelete[i].checked == true){
checked = true;
break;
}
}
}
if(!checked){
alert("璇瘋嚦灝戦夋嫨涓鏉¤鍒犻櫎鐨勮褰曪紒")
return(false);
}
if(confirm("紜畾瑕佸垹闄ゅ悧錛?)){
return(true);
}
return(false);
}
function allcheck(){
var theForm = document.projectSetForm;
var len = theForm.checkboxDelete.length;
var i = 0
if (tag == false)
for (i=0;i<len;i++){
theForm.checkboxDelete[i].checked = true;
tag = true;
}
else{
for ( i=0;i<len;i++){
theForm.checkboxDelete[i].checked = false;
tag = false;
}
}
}
</script>
package com.gpdi.test;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class TestMain {
/**
* 瀛樺偍涓涓敤鎴?br />
* @param user
*/
public void save(User user){
user.setUsername("TEST");
Card card=new Card();
//Card card1=new Card();
card.setCardnum("HGJUYT");
//card1.setCardnum("fghy55");
user.setCard(card);
//user.setCard(card1);
Session session=HibernateSessionFactory.currentSession();
card.setUser(user);
//card1.setUser(user);
Transaction tr=session.beginTransaction();
session.save(user);
//session.save(card);
tr.commit();
session.close();
}
public static void main(String[] args) throws Exception {
TestMain test=new TestMain();
test.save(new User());
}
}
Card.java
package com.gpdi.test;
/**
* Card generated by MyEclipse - Hibernate Tools
*/
public class Card implements java.io.Serializable {
// Fields
private Integer cardid;
private String cardnum;
private User user;
// Constructors
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
/** default constructor */
public Card() {
}
/** full constructor */
public Card(String cardnum) {
this.cardnum = cardnum;
}
// Property accessors
public Integer getCardid() {
return this.cardid;
}
public void setCardid(Integer cardid) {
this.cardid = cardid;
}
public String getCardnum() {
return this.cardnum;
}
public void setCardnum(String cardnum) {
this.cardnum = cardnum;
}
}
User.java
package com.gpdi.test;
import java.util.HashSet;
import java.util.Set;
/**
* User generated by MyEclipse - Hibernate Tools
*/
public class User implements java.io.Serializable {
// Fields
private Integer userid;
private String username;
private Card card;
//private Set card = new HashSet();
// Constructors
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
/** default constructor */
public User() {
}
/** full constructor */
public User(String username) {
this.username = username;
}
// Property accessors
public Integer getUserid() {
return this.userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
}
HibernateSessionFactory.java
package com.gpdi.test;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html}.
*/
public class HibernateSessionFactory {
/**
* Location of hibernate.cfg.xml file.
* NOTICE: Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file. That
* is place the config file in a Java package - the default location
* is the default Java package.<br><br>
* Examples: <br>
* <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml".
* CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code>
*/
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
/** Holds a single instance of Session */
private static final ThreadLocal threadLocal = new ThreadLocal();
/** The single instance of hibernate configuration */
private static final Configuration cfg = new Configuration();
/** The single instance of hibernate SessionFactory */
private static org.hibernate.SessionFactory sessionFactory;
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the <code>SessionFactory</code> if needed.
*
* @return Session
* @throws HibernateException
*/
public static Session currentSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
try {
cfg.configure(CONFIG_FILE_LOCATION);
sessionFactory = cfg.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
/**
* Default constructor.
*/
private HibernateSessionFactory() {
}
}
Card.hbm.xml