主要内容
1)掌握jQuery常用AJAX-API
2)掌握Java调用MySQL / Oracle过程与函数
jQuery常用AJAX-API
目的:简化客户端与服务端进行局部刷新的异步通讯
(1)取得服务端当前时间
简单形式:jQuery对象.load(url)
返回结果自动添加到jQuery对象代表的标签中间
如果是Servlet的话,采用的是GET方式
复杂形式:jQuery对象.load(url,sendData,function(backData,textStatus,ajax){… …})
sendData = {“user.name”:”jack”,”user.pass”:”123”};
以JSON格式文本方式发送,使用POST方式发送,服务端能收到数据
注意:对于load方法而言,如果请求体无参数发送的话,load方法
采用GET方式提交
注意:对于load方法而言,如果请求体有参数发送的话,load方法
采用POST方式提交
注意:使用load方法时,自动进行编码,无需手工编码
<code class="hljs xml has-numbering"> <span class="hljs-tag"><<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>></span><span class="javascript"> $(<span class="hljs-string">":button"</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-keyword">var</span> url = <span class="hljs-string">"${pageContext.request.contextPath}/loadTimeRequest?time"</span>+<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().getTime(); <span class="hljs-keyword">var</span> sendData = <span class="hljs-literal">null</span>; $.load(url,sendData,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,ajax)</span>{</span> <span class="hljs-keyword">var</span> jsonJAVA = ajax.responseText; <span class="hljs-keyword">var</span> jsonJS = <span class="hljs-built_in">eval</span>(<span class="hljs-string">"("</span>+jsonJAVA+<span class="hljs-string">")"</span>); <span class="hljs-keyword">var</span> strTime = jsonJS.strTime; $(<span class="hljs-string">"span:first"</span>).html(strTime).css(<span class="hljs-string">"color"</span>,<span class="hljs-string">"red"</span>); $(<span class="hljs-string">"span:last"</span>).html(strTime).css(<span class="hljs-string">"color"</span>,<span class="hljs-string">"blue"</span>); }); <span class="hljs-comment">//$("span").load(url);</span> }); </span><span class="hljs-tag"></<span class="hljs-title">script</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li></ul>
load()方法参数解释:
参数一:url发送到哪里去
参数二: sendData发送请求体中的数据,符合JSON格式,例如:{key:value,key:value}
参数三:function处理函数,类似于传统方式ajax.onreadystatechange = 处理函数
其中参数三为function处理函数最多可以接收三个参数,含义如下
第一个参数:服务端返回的数据,例如:backData
第二个参数:服务端状态码的文本描述textStatus,例如:success、error、
第三个参数:ajax异步对象,即XMLHttpRequest对象
以上所有参数的名字可以任意,但必须按顺序书写,尽量做到见名知意
(2)检查注册用户名和密码是否存在
.get(url,sendData,function(backData,textStatus,ajax)……)
.post(url,sendData,function(backData,textStatus,ajax){… …})提倡
注意:使用get或post方法时,自动进行编码,无需手工编码
jQuery对象.serialize()
作用:自动生成JSON格式的文本
注意:为每个jQuery对象设置一个name属性,因为name属性会被认为请求参数名
注意:必须用标签元素
适用:如果属性过多,强烈推荐采用这个API
<code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>></span><span class="javascript"> <span class="hljs-comment">//定位按钮,同时添加单击事件</span> $(<span class="hljs-string">":button"</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-comment">//获取用户名和密码</span> <span class="hljs-keyword">var</span> username = $(<span class="hljs-string">":text:first"</span>).val(); <span class="hljs-keyword">var</span> password = $(<span class="hljs-string">":text:last"</span>).val(); <span class="hljs-comment">//去空格</span> username = $.trim(username); password = $.trim(password); <span class="hljs-comment">//异步发送到服务端</span> <span class="hljs-keyword">var</span> url = <span class="hljs-string">"${pageContext.request.contextPath}/checkRequest?time="</span>+<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().getTime(); <span class="hljs-comment">/*手工书写JSON文本 var sendData = { "user.username":username, "user.password":password }; */</span> <span class="hljs-comment">/*工具生成JSON文本*/</span> <span class="hljs-keyword">var</span> sendData = $(<span class="hljs-string">"form"</span>).serialize(); $.post(url,sendData,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(backData,textStatus,ajax)</span>{</span> <span class="hljs-comment">//backData是一个JSON文本/对象,你得通过.号访问其属性值</span> <span class="hljs-keyword">var</span> tip = backData.tip; <span class="hljs-comment">//创建img节点</span> <span class="hljs-keyword">var</span> $img = $(<span class="hljs-string">"<img src='"</span> + tip + <span class="hljs-string">"' height='18px' widht='18px'/>"</span>) <span class="hljs-comment">//清空span节点中的内容</span> $(<span class="hljs-string">"span"</span>).text(<span class="hljs-string">""</span>); <span class="hljs-comment">//将img节点添加到span节点中</span> $(<span class="hljs-string">"span"</span>).append( $img ); }); }); </span><span class="hljs-tag"></<span class="hljs-title">script</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li></ul>
Action
<code class="hljs java has-numbering"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">RegisterAction</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">ActionSupport</span>{</span> <span class="hljs-keyword">private</span> User user; <span class="hljs-keyword">public</span> User <span class="hljs-title">getUser</span>() { <span class="hljs-keyword">return</span> user; } <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setUser</span>(User user) { <span class="hljs-keyword">this</span>.user = user; } <span class="hljs-javadoc">/** * 检查注册用户名和密码是否存在 */</span> <span class="hljs-keyword">public</span> String <span class="hljs-title">checkMethod</span>() <span class="hljs-keyword">throws</span> Exception { tip = <span class="hljs-string">"images/MsgSent.gif"</span>; <span class="hljs-keyword">if</span>(<span class="hljs-string">"帅帅"</span>.equals(user.getUsername()) && <span class="hljs-string">"123"</span>.equals(user.getPassword())){ tip = <span class="hljs-string">"images/MsgError.gif"</span>; } <span class="hljs-keyword">return</span> <span class="hljs-string">"ok"</span>; } <span class="hljs-keyword">private</span> String tip; <span class="hljs-keyword">public</span> String <span class="hljs-title">getTip</span>() { <span class="hljs-keyword">return</span> tip; } <span class="hljs-javadoc">/** * var backData = { * "tip":"images/MsgError.gif" * } */</span> }</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li></ul>
jQuery解析XML
XML
<code class="hljs xml has-numbering"><span class="hljs-pi"><?xml version="1.0" encoding="UTF-8"?></span> <span class="hljs-tag"><<span class="hljs-title">root</span>></span> <span class="hljs-tag"><<span class="hljs-title">city</span>></span>广州<span class="hljs-tag"></<span class="hljs-title">city</span>></span> <span class="hljs-tag"><<span class="hljs-title">city</span>></span>中山<span class="hljs-tag"></<span class="hljs-title">city</span>></span> <span class="hljs-tag"><<span class="hljs-title">city</span>></span>深圳<span class="hljs-tag"></<span class="hljs-title">city</span>></span> <span class="hljs-tag"><<span class="hljs-title">city</span>></span>佛山<span class="hljs-tag"></<span class="hljs-title">city</span>></span> <span class="hljs-tag"><<span class="hljs-title">city</span>></span>珠海<span class="hljs-tag"></<span class="hljs-title">city</span>></span> <span class="hljs-tag"></<span class="hljs-title">root</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul>
<code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>></span><span class="javascript"> $(<span class="hljs-string">":button"</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-keyword">var</span> url = <span class="hljs-string">"${pageContext.request.contextPath}/03_city.xml"</span>; <span class="hljs-keyword">var</span> sendData = <span class="hljs-literal">null</span>; $.get(url,sendData,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(backData,textStatus,ajax)</span>{</span> <span class="hljs-comment">/* //将xml文件转成jquery对象,目的是用jquery api解析xml文件 var $xml = $(backData); var $city = $xml.find("city"); $city.each(function(){ //获取每一个city节点 var city = $(this).text(); alert(city); }); */</span> <span class="hljs-keyword">var</span> xml = ajax.responseXML; <span class="hljs-keyword">var</span> $xml = $(xml); <span class="hljs-keyword">var</span> $city = $xml.find(<span class="hljs-string">"city"</span>); $city.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-comment">//获取每一个city节点</span> <span class="hljs-keyword">var</span> city = $(<span class="hljs-keyword">this</span>).text(); alert(city); }); }); }); </span><span class="hljs-tag"></<span class="hljs-title">script</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li></ul>
省份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】
<code class="hljs css has-numbering"> $<span class="hljs-class">.ajax</span>( <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">type</span>:<span class="hljs-value"><span class="hljs-string">"POST"</span>, url:<span class="hljs-string">"${pageContext.request.contextPath}/findCityByProvinceRequest?id="</span>+new <span class="hljs-function">Date()</span>.<span class="hljs-function">getTime()</span>, data:{<span class="hljs-string">"province"</span>:province</span></span></span>}, <span class="hljs-tag">success</span><span class="hljs-pseudo">:function(backData</span>,<span class="hljs-tag">textStatus</span>,<span class="hljs-tag">ajax</span>)<span class="hljs-rules">{<span class="hljs-rule">}</span></span> } );</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul>
<code class="hljs xml has-numbering"> <span class="hljs-tag"><<span class="hljs-title">select</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"province"</span>></span> <span class="hljs-tag"><<span class="hljs-title">option</span>></span>选择省份<span class="hljs-tag"></<span class="hljs-title">option</span>></span> <span class="hljs-tag"><<span class="hljs-title">option</span>></span>广东<span class="hljs-tag"></<span class="hljs-title">option</span>></span> <span class="hljs-tag"><<span class="hljs-title">option</span>></span>湖南<span class="hljs-tag"></<span class="hljs-title">option</span>></span> <span class="hljs-tag"></<span class="hljs-title">select</span>></span> <span class="hljs-tag"><<span class="hljs-title">select</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"city"</span>></span> <span class="hljs-tag"><<span class="hljs-title">option</span>></span>选择城市<span class="hljs-tag"></<span class="hljs-title">option</span>></span> <span class="hljs-tag"></<span class="hljs-title">select</span>></span> <span class="hljs-tag"><<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>></span><span class="javascript"> $(<span class="hljs-string">"#province"</span>).change(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-comment">//删除原城市下拉框中的内容,除第一项外</span> $(<span class="hljs-string">"#city option:gt(0)"</span>).remove(); <span class="hljs-keyword">var</span> province = $(<span class="hljs-string">"#province option:selected"</span>).text(); <span class="hljs-keyword">if</span>(<span class="hljs-string">"选择省份"</span> != province){ $.ajax({ <span class="hljs-string">"type"</span>:<span class="hljs-string">"POST"</span>, <span class="hljs-string">"url"</span>:<span class="hljs-string">"${pageContext.request.contextPath}/findCityByProvince?time="</span>+<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().getTime(), <span class="hljs-string">"sendData"</span>:{<span class="hljs-string">"province"</span>:province}, <span class="hljs-string">"success"</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(backData,textStatus,ajax)</span>{</span> <span class="hljs-comment">//js对象</span> <span class="hljs-keyword">var</span> city = backData.cityList; <span class="hljs-comment">//jquery对象</span> <span class="hljs-keyword">var</span> $city = $(city); <span class="hljs-comment">//each()</span> $city.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span>{</span> <span class="hljs-comment">//this表示每个城市</span> <span class="hljs-keyword">var</span> $option = $(<span class="hljs-string">"<option>"</span> + <span class="hljs-keyword">this</span> + <span class="hljs-string">"</option>"</span>); $(<span class="hljs-string">"#city"</span>).append( $option ); }); } }); } }); </span><span class="hljs-tag"></<span class="hljs-title">script</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li></ul>
<code class="hljs java has-numbering"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ProvinceCityAction</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">ActionSupport</span>{</span> <span class="hljs-keyword">private</span> String province;<span class="hljs-comment">//广东</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setProvince</span>(String province) { <span class="hljs-keyword">this</span>.province = province; } <span class="hljs-keyword">public</span> String <span class="hljs-title">findCityByProvince</span>() <span class="hljs-keyword">throws</span> Exception { cityList = <span class="hljs-keyword">new</span> ArrayList<String>(); <span class="hljs-keyword">if</span>(<span class="hljs-string">"广东"</span>.equals(province)){ cityList.add(<span class="hljs-string">"湛江"</span>); cityList.add(<span class="hljs-string">"汕头"</span>); }<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(<span class="hljs-string">"湖南"</span>.equals(province)){ cityList.add(<span class="hljs-string">"邵阳"</span>); cityList.add(<span class="hljs-string">"浏阳"</span>); } <span class="hljs-keyword">return</span> <span class="hljs-string">"ok"</span>; } <span class="hljs-keyword">private</span> List<String> cityList; <span class="hljs-keyword">public</span> List<String> <span class="hljs-title">getCityList</span>() { <span class="hljs-keyword">return</span> cityList; } <span class="hljs-javadoc">/** * var backData = { * "cityList":["邵阳","浏阳"] * } */</span> }</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li></ul>
strutsl.xml
<code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">struts</span>></span> <span class="hljs-tag"><<span class="hljs-title">package</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"timePackage"</span> <span class="hljs-attribute">extends</span>=<span class="hljs-value">"json-default"</span> <span class="hljs-attribute">namespace</span>=<span class="hljs-value">"/"</span>></span> <span class="hljs-tag"><<span class="hljs-title">global-results</span>></span> <span class="hljs-tag"><<span class="hljs-title">result</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"ok"</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"json"</span>/></span> <span class="hljs-tag"></<span class="hljs-title">global-results</span>></span> <span class="hljs-comment"><!-- 获取服务端时间 --></span> <span class="hljs-tag"><<span class="hljs-title">action</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"loadTimeRequest"</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"cn.itcast.javaee.js.time.TimeAction"</span> <span class="hljs-attribute">method</span>=<span class="hljs-value">"loadTimeMethod"</span>/></span> <span class="hljs-comment"><!-- 检查用户名和密码是否存在 --></span> <span class="hljs-tag"><<span class="hljs-title">action</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"checkRequest"</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"cn.itcast.javaee.js.register.RegisterAction"</span> <span class="hljs-attribute">method</span>=<span class="hljs-value">"checkMethod"</span>/></span> <span class="hljs-comment"><!-- 根据省份查询城市 --></span> <span class="hljs-tag"><<span class="hljs-title">action</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"findCityByProvince"</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"cn.itcast.javaee.js.provincecity.ProvinceCityAction"</span> <span class="hljs-attribute">method</span>=<span class="hljs-value">"findCityByProvince"</span>/></span> <span class="hljs-tag"></<span class="hljs-title">package</span>></span> <span class="hljs-tag"></<span class="hljs-title">struts</span>></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li></ul>
掌握Java调用Oracle过程与函数
写一个计算个人所得税的应用
<code class="hljs oxygene has-numbering">--定义过程 <span class="hljs-keyword">create</span> <span class="hljs-keyword">or</span> replace <span class="hljs-function"><span class="hljs-keyword">procedure</span> <span class="hljs-title">get_rax</span><span class="hljs-params">(salary <span class="hljs-keyword">in</span> number,rax <span class="hljs-keyword">out</span> number)</span> <span class="hljs-title">as</span> --需要交税的钱 <span class="hljs-title">bal</span> <span class="hljs-title">number</span>;</span> <span class="hljs-keyword">begin</span> bal := salary - <span class="hljs-number">3500</span>; <span class="hljs-keyword">if</span> bal<=<span class="hljs-number">1500</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.03</span> - <span class="hljs-number">0</span>; elsif bal<=<span class="hljs-number">4500</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.1</span> - <span class="hljs-number">105</span>; elsif bal<=<span class="hljs-number">9000</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.2</span> - <span class="hljs-number">555</span>; elsif bal<=<span class="hljs-number">35000</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.25</span> - <span class="hljs-number">1005</span>; elsif bal<=<span class="hljs-number">55000</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.3</span> - <span class="hljs-number">2755</span>; elsif bal<=<span class="hljs-number">80000</span> <span class="hljs-keyword">then</span> rax := bal * <span class="hljs-number">0.35</span> - <span class="hljs-number">5505</span>; <span class="hljs-keyword">else</span> rax := bal * <span class="hljs-number">0.45</span> - <span class="hljs-number">13505</span>; <span class="hljs-keyword">end</span> <span class="hljs-keyword">if</span>; <span class="hljs-keyword">end</span>; / --调用过程 declare --交税 rax number; salary number := &salary; <span class="hljs-keyword">begin</span> get_rax(salary,rax); dbms_output.put_line(salary||<span class="hljs-string">'元工资需要交'</span>||rax||<span class="hljs-string">'元税'</span>); <span class="hljs-keyword">end</span>; /</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li></ul>
<code class="hljs cs has-numbering"><span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> TestCallOracleProc { <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String[] args) throws Exception{ String sql = <span class="hljs-string">"{call get_rax(?,?)}"</span>; Connection conn = JdbcUtil.getConnection(); CallableStatement cstmt = conn.prepareCall(sql); cstmt.setInt(<span class="hljs-number">1</span>,<span class="hljs-number">10000</span>); <span class="hljs-comment">//设置第二个参数的输出类型</span> cstmt.registerOutParameter(<span class="hljs-number">2</span>,Types.INTEGER); cstmt.execute(); Integer rax = cstmt.getInt(<span class="hljs-number">2</span>); System.<span class="hljs-keyword">out</span>.println(<span class="hljs-string">"10000元需要交"</span> + rax + <span class="hljs-string">"元税"</span>); JdbcUtil.close(cstmt); JdbcUtil.close(conn); } }</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li></ul>
查询7788号员工的的姓名,职位,月薪
<code class="hljs sql has-numbering"><span class="hljs-comment">--定义函数</span> <span class="hljs-operator"><span class="hljs-keyword">create</span> <span class="hljs-keyword">or</span> <span class="hljs-keyword">replace</span> function findEmpNameAndJobAndSal(pempno <span class="hljs-keyword">in</span> <span class="hljs-keyword">number</span>,pjob out varchar2,psal out <span class="hljs-keyword">number</span>) return varchar2 <span class="hljs-keyword">as</span> pename emp.ename%type;</span> <span class="hljs-operator"><span class="hljs-keyword">begin</span> <span class="hljs-keyword">select</span> ename,job,sal <span class="hljs-keyword">into</span> pename,pjob,psal <span class="hljs-keyword">from</span> emp <span class="hljs-keyword">where</span> empno = pempno;</span> return pename; <span class="hljs-operator"><span class="hljs-keyword">end</span>;</span> / <span class="hljs-comment">--调用函数</span> declare pename emp.ename%type; pjob emp.job%type; psal emp.sal%type; <span class="hljs-operator"><span class="hljs-keyword">begin</span> pename := findEmpNameAndJobAndSal(<span class="hljs-number">7788</span>,pjob,psal);</span> dbms_output.put_line('7788'||'<span class="hljs-comment">--'||pename||'--'||pjob||'--'||psal);</span> <span class="hljs-operator"><span class="hljs-keyword">end</span>;</span> /</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li></ul>
<code class="hljs avrasm has-numbering"> public class TestCallOracleFunc { public static void main(String[] args) throws Exception{ String sql = <span class="hljs-string">"{?=call findEmpNameAndJobAndSal(?,?,?)}"</span><span class="hljs-comment">;</span> Connection conn = JdbcUtil<span class="hljs-preprocessor">.getConnection</span>()<span class="hljs-comment">;</span> CallableStatement cstmt = conn<span class="hljs-preprocessor">.prepareCall</span>(sql)<span class="hljs-comment">;</span> cstmt<span class="hljs-preprocessor">.registerOutParameter</span>(<span class="hljs-number">1</span>,Types<span class="hljs-preprocessor">.VARCHAR</span>)<span class="hljs-comment">;</span> cstmt<span class="hljs-preprocessor">.setInt</span>(<span class="hljs-number">2</span>,<span class="hljs-number">7788</span>)<span class="hljs-comment">;</span> cstmt<span class="hljs-preprocessor">.registerOutParameter</span>(<span class="hljs-number">3</span>,Types<span class="hljs-preprocessor">.VARCHAR</span>)<span class="hljs-comment">;</span> cstmt<span class="hljs-preprocessor">.registerOutParameter</span>(<span class="hljs-number">4</span>,Types<span class="hljs-preprocessor">.INTEGER</span>)<span class="hljs-comment">;</span> cstmt<span class="hljs-preprocessor">.execute</span>()<span class="hljs-comment">;</span> String ename = cstmt<span class="hljs-preprocessor">.getString</span>(<span class="hljs-number">1</span>)<span class="hljs-comment">;</span> String job = cstmt<span class="hljs-preprocessor">.getString</span>(<span class="hljs-number">3</span>)<span class="hljs-comment">;</span> Integer sal = cstmt<span class="hljs-preprocessor">.getInt</span>(<span class="hljs-number">4</span>)<span class="hljs-comment">;</span> System<span class="hljs-preprocessor">.out</span><span class="hljs-preprocessor">.println</span>(ename+<span class="hljs-string">":"</span>+job+<span class="hljs-string">":"</span>+sal)<span class="hljs-comment">;</span> JdbcUtil<span class="hljs-preprocessor">.close</span>(cstmt)<span class="hljs-comment">;</span> JdbcUtil<span class="hljs-preprocessor">.close</span>(conn)<span class="hljs-comment">;</span> } }</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul>