JQuery(入门三)

主要内容
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>
转自:http://blog.csdn.net/zxiang248/article/details/52197515
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值