<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>操作 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/%E6%93%8D%E4%BD%9C/</link><description>Recent content in 操作 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 05 Mar 2020 22:43:00 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/%E6%93%8D%E4%BD%9C/index.xml" rel="self" type="application/rss+xml"/><item><title>ES 增删改查操作</title><link>https://pangyd.com/post/233-es/</link><pubDate>Thu, 05 Mar 2020 22:41:24 +0800</pubDate><guid>https://pangyd.com/post/233-es/</guid><description>&lt;p>&lt;br>&lt;/p>&lt;h2 md-src-pos="12..17">创建&lt;/h2>&lt;h3 md-src-pos="18..29">自定义ID增加&lt;/h3>&lt;pre>&lt;code md-src-pos="30..92">PUT /{index}/{type}/{id}
{
 "field": "value",
 ...
}
&lt;/code>&lt;/pre>&lt;h3 md-src-pos="93..103">自动增加ID&lt;/h3>&lt;blockquote md-src-pos="104..114">&lt;p md-src-pos="106..114">使用post方式&lt;/p>&lt;/blockquote>&lt;pre>&lt;code md-src-pos="115..244">POST /website/blog/
{
 "title": "My second blog entry",
 "text": "Still trying this out...",
 "date": "2014/01/01"
}
&lt;/code>&lt;/pre>&lt;h2 md-src-pos="245..250">更新&lt;/h2>&lt;pre>&lt;code md-src-pos="251..380">PUT /website/blog/123
{
 "title": "My first blog entry",
 "text": "Just trying this out...",
 "date": "2014/01/01"
}
&lt;/code>&lt;/pre>&lt;blockquote md-src-pos="381..467">&lt;p md-src-pos="383..467">我们能看到 Elasticsearch 已经增加了 _version 字段值，created 标志设置成 false ，是因为相同的索引、类型和 ID 的文档已经存在。&lt;/p>&lt;/blockquote>&lt;h2 md-src-pos="468..473">删除&lt;/h2>&lt;pre>&lt;code md-src-pos="474..506">DELETE /website/blog/123
&lt;/code>&lt;/pre>&lt;blockquote md-src-pos="507..554">&lt;p md-src-pos="508..554">如果找到该文档，Elasticsearch 将要返回一个 200 ok 的 HTTP 响应码&lt;/p></description></item><item><title>Collections 内建集合模块</title><link>https://pangyd.com/post/231-collections/</link><pubDate>Fri, 28 Feb 2020 17:01:13 +0800</pubDate><guid>https://pangyd.com/post/231-collections/</guid><description>&lt;p>&lt;/p>&lt;p>&lt;span lang="EN-US">Collections&amp;nbsp;&lt;/span>集合类&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;h3>&lt;span lang="EN-US">namedtuple&lt;/span>&lt;/h3>&lt;p>我们知道&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>可以表示不变集合，例如，一个点的二维坐标就可以表示成：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">p = (&lt;/span>&lt;/code>&lt;span class="number">&lt;span lang="EN-US">1&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, &lt;/span>&lt;/code>&lt;span class="number">&lt;span lang="EN-US">2&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">)&lt;/span>&lt;/code>&lt;/pre>&lt;p>但是，看到&lt;code>&lt;span lang="EN-US">(1, 2)&lt;/span>&lt;/code>，很难看出这个&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>是用来表示一个坐标的。&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>定义一个&lt;span lang="EN-US">class&lt;/span>又小题大做了，这时，&lt;code>&lt;span lang="EN-US">namedtuple&lt;/span>&lt;/code>就派上了用场：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;span class="keyword">&lt;span lang="EN-US">from&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US"> collections &lt;/span>&lt;/code>&lt;span class="keyword">&lt;span lang="EN-US">import&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US"> namedtuple&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">Point = namedtuple(&lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'Point'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, [&lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'x'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, &lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'y'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">])&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">p = Point(&lt;/span>&lt;/code>&lt;span class="number">&lt;span lang="EN-US">1&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, &lt;/span>&lt;/code>&lt;span class="number">&lt;span lang="EN-US">2&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">)&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">p.x&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="number">&lt;span lang="EN-US">1&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">p.y&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="number">&lt;span lang="EN-US">2&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">&lt;/span>&lt;/code>&lt;/pre>&lt;p>&lt;code>&lt;span lang="EN-US">namedtuple&lt;/span>&lt;/code>是一个函数，它用来创建一个自定义的&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>对象，并且规定了&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>元素的个数，并可以用属性而不是索引来引用&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>的某个元素。&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>这样一来，我们用&lt;code>&lt;span lang="EN-US">namedtuple&lt;/span>&lt;/code>可以很方便地定义一种数据类型，它具备&lt;span lang="EN-US">tuple&lt;/span>的不变性，又可以根据属性来引用，使用十分方便。&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>可以验证创建的&lt;code>&lt;span lang="EN-US">Point&lt;/span>&lt;/code>对象是&lt;code>&lt;span lang="EN-US">tuple&lt;/span>&lt;/code>的一种子类：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">isinstance(p, Point)&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="builtin">&lt;span lang="EN-US">True&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="prompt">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; &lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">isinstance(p, tuple)&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="builtin">&lt;span lang="EN-US">True&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">&lt;/span>&lt;/code>&lt;/pre>&lt;p>类似的，如果要用坐标和半径表示一个圆，也可以用&lt;code>&lt;span lang="EN-US">namedtuple&lt;/span>&lt;/code>定义：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;pre>&lt;span class="comment">&lt;span lang="EN-US"># namedtuple('&lt;/span>名称&lt;span lang="EN-US">', [&lt;/span>属性&lt;span lang="EN-US">list]):&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">&lt;/span>&lt;/code>&lt;/pre>&lt;pre>&lt;span class="constant">&lt;span lang="EN-US">Circle&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US"> = namedtuple(&lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'Circle'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, [&lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'x'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, &lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'y'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">, &lt;/span>&lt;/code>&lt;span class="string">&lt;span lang="EN-US">'r'&lt;/span>&lt;/span>&lt;code>&lt;span lang="EN-US">])&lt;/span>&lt;/code>&lt;/pre>&lt;p>&lt;span lang="EN-US">&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;b>&lt;span lang="EN-US">Deque&lt;/span>&lt;/b>&lt;span lang="EN-US">&amp;nbsp;&amp;nbsp;&lt;/span>双向队列&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>使用&lt;code>&lt;span lang="EN-US">list&lt;/span>&lt;/code>存储数据时，按索引访问元素很快，但是插入和删除元素就很慢了，因为&lt;code>&lt;span lang="EN-US">list&lt;/span>&lt;/code>是线性存储，数据量大的时候，插入和删除效率很低。&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>&lt;span lang="EN-US">deque&lt;/span>是为了高效实现插入和删除操作的双向列表，适合用于队列和栈：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>&lt;span lang="EN-US">list&lt;/span>是线性存储，数据量大的时候，效率慢&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p>&lt;code>&lt;span lang="EN-US">deque&lt;/span>&lt;/code>除了实现&lt;span lang="EN-US">list&lt;/span>的&lt;code>&lt;span lang="EN-US">append()&lt;/span>&lt;/code>和&lt;code>&lt;span lang="EN-US">pop()&lt;/span>&lt;/code>外，还支持&lt;code>&lt;span lang="EN-US">appendleft()&lt;/span>&lt;/code>和&lt;code>&lt;span lang="EN-US">popleft()&lt;/span>&lt;/code>，这样就可以非常高效地往头部添加或删除元素。&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p align="left">&lt;b>&lt;span lang="EN-US">defaultdict&lt;/span>&lt;/b>&lt;/p>&lt;p align="left">使用&lt;span lang="EN-US">dict&lt;/span>时，如果引用的&lt;span lang="EN-US">Key&lt;/span>不存在，就会抛出&lt;span lang="EN-US">KeyError&lt;/span>。如果希望&lt;span lang="EN-US">key&lt;/span>不存在时，返回一个默认值，就可以用&lt;span lang="EN-US">defaultdict&lt;/span>：&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; from collections import defaultdict&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; dd = defaultdict(lambda: 'N/A')&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; dd['key1'] = 'abc'&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; dd['key1'] # key1&lt;/span>存在&lt;span lang="EN-US">&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">'abc'&lt;/span>&lt;/p>&lt;p align="left">&lt;span lang="EN-US">&amp;gt;&amp;gt;&amp;gt; dd['key2'] # key2&lt;/span>不存在，返回默认值&lt;span lang="EN-US">&lt;/span>&lt;/p></description></item><item><title>python操作mongo</title><link>https://pangyd.com/post/228-pythonmongo/</link><pubDate>Mon, 18 Nov 2019 18:01:43 +0800</pubDate><guid>https://pangyd.com/post/228-pythonmongo/</guid><description>&lt;p>&lt;span>连接mongodb&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">#!/usr/bin/env python
# -*- coding:utf-8 -*-
&lt;p>from pymongo import MongoClient&lt;/p>
&lt;p>conn = MongoClient(&amp;lsquo;192.168.0.113&amp;rsquo;, 27017)
db = conn.mydb #连接mydb数据库，没有则自动创建
my_set = db.test_set　　#使用test_set集合，没有则自动创建&lt;/pre>&lt;p>&lt;span>插入数据（insert插入一个列表多条数据不用遍历，效率高， save需要遍历列表，一个个插入）&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">my_set.insert({&amp;ldquo;name&amp;rdquo;:&amp;ldquo;zhangsan&amp;rdquo;,&amp;ldquo;age&amp;rdquo;:18})
#或
my_set.save({&amp;ldquo;name&amp;rdquo;:&amp;ldquo;zhangsan&amp;rdquo;,&amp;ldquo;age&amp;rdquo;:18})&lt;/pre>&lt;p>&lt;span>插入多条&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">#添加多条数据到集合中
users=[{&amp;ldquo;name&amp;rdquo;:&amp;ldquo;zhangsan&amp;rdquo;,&amp;ldquo;age&amp;rdquo;:18},{&amp;ldquo;name&amp;rdquo;:&amp;ldquo;lisi&amp;rdquo;,&amp;ldquo;age&amp;rdquo;:20}]&lt;br>
my_set.insert(users)
#或
my_set.save(users) &lt;/pre>&lt;p>&lt;span>查询数据（查询不到则返回None）&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">#查询全部
for i in my_set.find():
print(i)
#查询name=zhangsan的
for i in my_set.find({&amp;ldquo;name&amp;rdquo;:&amp;ldquo;zhangsan&amp;rdquo;}):
print(i)
print(my_set.find_one({&amp;ldquo;name&amp;rdquo;:&amp;ldquo;zhangsan&amp;rdquo;}))&lt;/pre>&lt;p>&lt;span>更新数据&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;/span>&lt;/p>&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">my_set.update(
&lt;query>, #查询条件
&lt;update>, #update的对象和一些更新的操作符
{
upsert: &lt;boolean>, #如果不存在update的记录，是否插入
multi: &lt;boolean>, #可选，mongodb 默认是false,只更新找到的第一条记录
writeConcern: &lt;document> #可选，抛出异常的级别。&lt;pre lay-lang="JavaScript" class="layui-code" skin="notepad">#删除name=lisi的全部记录
my_set.remove({&amp;rsquo;name&amp;rsquo;: &amp;lsquo;zhangsan&amp;rsquo;})&lt;/p></description></item><item><title>Python中操作mysql的pymysql模块详解</title><link>https://pangyd.com/post/197-pythonmysqlpymysql/</link><pubDate>Mon, 06 Aug 2018 18:06:31 +0800</pubDate><guid>https://pangyd.com/post/197-pythonmysqlpymysql/</guid><description>&lt;div>&lt;div>&lt;div class="article">&lt;div data-note-content="" class="show-content">&lt;div class="show-content-free">&lt;p>&lt;a href="https://link.jianshu.com?t=https://github.com/PyMySQL/PyMySQL" target="_blank" rel="nofollow">PyMySQL&lt;/a>是一个Python编写的MySQL驱动程序，让我们可以用Python语言操作MySQL数据库。&lt;/p>
&lt;p>首先，使用pip安装PyMySQL。&lt;/p>
&lt;pre class="hljs undefined">&lt;code>pip install PyMySQL
&lt;/code>&lt;/pre>
&lt;h2>使用PyMySQL&lt;/h2>
&lt;h3>简单使用&lt;/h3>
&lt;p>如果有JDBC等其他语言的数据库学习经验的话，使用PyMySQL非常简单。下面是一个完整的MySQL增删查（没有改）的例子。&lt;/p>
&lt;pre class="hljs python">&lt;code class="python">&lt;span class="hljs-keyword">import&lt;/span> pymysql
&lt;span class="hljs-keyword">import&lt;/span> datetime
&lt;p>host = &lt;span class="hljs-string">&amp;lsquo;localhost&amp;rsquo;&lt;/span>
username = &lt;span class="hljs-string">&amp;lsquo;root&amp;rsquo;&lt;/span>
password = &lt;span class="hljs-string">&amp;lsquo;12345678&amp;rsquo;&lt;/span>
db_name = &lt;span class="hljs-string">&amp;lsquo;test&amp;rsquo;&lt;/span>&lt;/p>
&lt;p>create_table_sql = &lt;span class="hljs-string">&amp;quot;&amp;quot;&amp;quot;&lt;br>
CREATE TABLE fuck(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) UNIQUE ,
nickname VARCHAR(255) NOT NULL ,
birthday DATE
)
&amp;ldquo;&amp;rdquo;&amp;quot;&lt;/span>&lt;/p>
&lt;p>insert_table_sql = &lt;span class="hljs-string">&amp;quot;&amp;quot;&amp;quot;&lt;br>
INSERT INTO fuck(username,nickname,birthday)
VALUES(&amp;rsquo;{username}&amp;rsquo;,&amp;rsquo;{nickname}&amp;rsquo;,&amp;rsquo;{birthday}&amp;rsquo;)
&amp;ldquo;&amp;rdquo;&amp;quot;&lt;/span>&lt;/p>
&lt;p>query_table_sql = &lt;span class="hljs-string">&amp;quot;&amp;quot;&amp;quot;&lt;br>
SELECT id,username,nickname,birthday
FROM fuck
&amp;ldquo;&amp;rdquo;&amp;quot;&lt;/span>&lt;/p>
&lt;p>delete_table_sql = &lt;span class="hljs-string">&amp;quot;&amp;quot;&amp;quot;&lt;br>
DELETE FROM fuck
&amp;ldquo;&amp;rdquo;&amp;quot;&lt;/span>&lt;/p>
&lt;p>drop_table_sql = &lt;span class="hljs-string">&amp;quot;&amp;quot;&amp;quot;&lt;br>
DROP TABLE fuck
&amp;ldquo;&amp;rdquo;&amp;quot;&lt;/span>&lt;/p></description></item><item><title>Java My SQL 数据库 用法操作代码</title><link>https://pangyd.com/post/74-java-my-sql/</link><pubDate>Tue, 22 Aug 2017 14:09:56 +0800</pubDate><guid>https://pangyd.com/post/74-java-my-sql/</guid><description>&lt;p>&lt;span>各数据库连接代码&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;//Oracle8/8i/9i&lt;/span>&lt;span>数据库&lt;/span>&lt;span>(thin&lt;/span>&lt;span>模式&lt;/span>&lt;span>)&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:&lt;a href="https://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" target="_blank">oracle&lt;/a>:thin:@localhost:1521:orcl";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="scott";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password="tiger";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;//Sql&amp;nbsp;Server7.0/2000/2005/2008&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="sa";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password="";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;//DB2&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:db2://localhost:5000/sample";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="amdin"&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password=-"";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>//MySQL&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>String&amp;nbsp;url="jdbc:mysql://localhost:3306/testDB?user=root&amp;amp;password=root&amp;amp;useUnicode=true&amp;amp;characterEncoding=gb2312";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>Connection&amp;nbsp;conn=DriverManager.getConnection(url);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>一下是进行增删改查的mysql代码&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>增：insert into user//表名(***//表头) values(****//增加的数据)";&lt;/p>&lt;p>改：update user//表名 set userName//表头 ='"+field2+"//修改的数据',passwork='"+field3+"',teacherID="+Integer.parseInt(field4)+" where userID="+Integer.parseInt(field1);&lt;/p>&lt;p>删：delete from user where userID="+Integer.parseInt(field1//字符串类型的要先转换成整型的);&lt;/p>&lt;p>查：select * from userID//查询表中的某个表头 order by User//&lt;a target="_self" href="https://github.com/As-before">表名&lt;/a>&lt;/p></description></item><item><title>Node11Panel类 添加人员信息操作</title><link>https://pangyd.com/post/45-node11panel/</link><pubDate>Tue, 08 Aug 2017 19:16:47 +0800</pubDate><guid>https://pangyd.com/post/45-node11panel/</guid><description>&lt;pre lay-lang="Java" class="layui-code" skin="notepad">package com.jnzyjsxy.node1;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import com.jnzyjsxy.common.DeptBean;
import com.jnzyjsxy.common.PersonBean;
import com.jnzyjsxy.test.HrMain;

/*
 * 第一个节点
 * 添加人员信息
 */
public class Node11Panel extends JPanel implements ActionListener,ItemListener{
	
	//创建两个面板 一个中间面板 一个上部面板
	JPanel centerPanel=new JPanel();
	JPanel upPanel=new JPanel();
	//定义图形元素
	JLabel jLabel = new JLabel();
	JLabel jLabel1 = new JLabel();
	JLabel jLabel2 = new JLabel();
	JLabel jLabel3 = new JLabel();
	JLabel jLabel4 = new JLabel();
	JLabel jLabel5 = new JLabel();
	JLabel jLabel6 = new JLabel();
	JLabel jLabel7 = new JLabel();
	JLabel jLabel8 = new JLabel();
	JLabel jLabel9 = new JLabel();
	
	JTextField jTextField1 =new JTextField(15);//编号
	JTextField jTextField2 =new JTextField(15);//姓名
	JTextField jTextField3 =new JTextField(15);//性别
	JTextField jTextField4 =new JTextField(15);//出生年月
	JTextField jTextField5 =new JTextField(15);//民族
	JTextField jTextField6 =new JTextField(15);//地址
	
	JComboBox jComboBox1=null;//显示人员所在部门
	String DeptID="1";//部门编号
	String Salary="0";//薪酬
	String Assess="未考核";//考核
	//用于输入其他字段值
	JTextField jTextField8=new JTextField(15);
	
	JScrollPane jScrollPane;
	//创建按钮 本页面使用addInfo clearInfo 
	//为了实现页面复制 定义多个按钮 哪个页面需要 使用哪个按钮
	JButton addInfo=new JButton();
	JButton modifyInfo=new JButton();
	JButton deleteInfo=new JButton();
	JButton clearInfo=new JButton();
	//创建网格包布局对象
	GridBagLayout girdBag=new GridBagLayout();
	//创建网格包约束类变量
	GridBagConstraints girdBagCon;
	//创建PersonBean 人员数据操作类
	PersonBean bean=new PersonBean();
	
	public Node11Panel() {
		// TODO Auto-generated constructor stub
		//采用边框布局
		this.setLayout(new BorderLayout());
		try {
			jscrollPanelInit();//上部面板初始
			panelInit();//中间面板初始化
			addListener();//监听事件方法
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	/*
	 * jscrollpanel 面板的布局 包含放置组件的中间面板centerPanel
	 * (non-Javadoc)
	 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
	 */
	public void jscrollPanelInit() {
		//中间放组件的面板 采用网格包布局
		centerPanel.setLayout(girdBag);
		//第一行组件
		//griy=1 实际的第二行 显示4个组件 gridx依次增加
		jLabel1.setText("人员编号");
		jLabel1.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(0, 10, 10, 1);
		girdBag.setConstraints(jLabel1, girdBagCon);
		centerPanel.add(jLabel1);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=1;
		girdBagCon.gridy=1;
		girdBagCon.insets=new Insets(0, 1, 10, 15);
		girdBag.setConstraints(jTextField1, girdBagCon);
		centerPanel.add(jTextField1);
		
		jLabel2.setText("人员姓名");
		jLabel2.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=2;
		girdBagCon.gridy=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(0, 15, 10, 1);
		girdBag.setConstraints(jLabel2, girdBagCon);
		centerPanel.add(jLabel2);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=3;
		girdBagCon.gridy=1;
		girdBagCon.insets=new Insets(0, 1, 10, 10);
		girdBag.setConstraints(jTextField2, girdBagCon);
		centerPanel.add(jTextField2);
		
		jLabel3.setText("性 别");
		jLabel3.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=2;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 10, 10, 1);
		girdBag.setConstraints(jLabel3, girdBagCon);
		centerPanel.add(jLabel3);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=1;
		girdBagCon.gridy=2;
		girdBagCon.insets=new Insets(10, 1, 10, 15);
		girdBag.setConstraints(jTextField3, girdBagCon);
		centerPanel.add(jTextField3);
		
		jLabel4.setText("出 生 年 月");
		jLabel4.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=2;
		girdBagCon.gridy=2;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 15, 10, 1);
		girdBag.setConstraints(jLabel4, girdBagCon);
		centerPanel.add(jLabel4);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=3;
		girdBagCon.gridy=2;
		girdBagCon.insets=new Insets(10, 1, 10, 10);
		girdBag.setConstraints(jTextField4, girdBagCon);
		centerPanel.add(jTextField4);
		
		jLabel5.setText("民		族");
		jLabel5.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=3;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 10, 10, 1);
		girdBag.setConstraints(jLabel5, girdBagCon);
		centerPanel.add(jLabel5);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=1;
		girdBagCon.gridy=3;
		girdBagCon.insets=new Insets(10, 1, 10, 15);
		girdBag.setConstraints(jTextField5, girdBagCon);
		centerPanel.add(jTextField5);
		
		jLabel6.setText("地		址");
		jLabel6.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=2;
		girdBagCon.gridy=3;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 15, 10, 1);
		girdBag.setConstraints(jLabel6, girdBagCon);
		centerPanel.add(jLabel6);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=3;
		girdBagCon.gridy=3;
		girdBagCon.insets=new Insets(10, 1, 10, 10);
		girdBag.setConstraints(jTextField6, girdBagCon);
		centerPanel.add(jTextField6);
		
		//第四行显示组件 gridy=4 gridx 依次增加
		jLabel7.setText("部		门");
		jLabel7.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=4;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 10, 10, 1);
		girdBag.setConstraints(jLabel7, girdBagCon);
		centerPanel.add(jLabel7);
		
		//定义部门操作类
		DeptBean dBean=new DeptBean();
		//调用方法获取所有部门的字符串
		String[] alltype=dBean.searchAllForNode();
		jComboBox1=new JComboBox(alltype);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=1;
		girdBagCon.gridy=4;
		//girdBagCon.gridwidth=3;
		//girdBagCon.gridheight=1;
		girdBagCon.insets=new Insets(10, 1, 10, 15);
		girdBag.setConstraints(jComboBox1, girdBagCon);
		centerPanel.add(jComboBox1);
				
		jLabel8.setText("其		他");
		jLabel8.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=2;
		girdBagCon.gridy=4;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 0, 10, 1);
		girdBag.setConstraints(jLabel8, girdBagCon);
		centerPanel.add(jLabel8);
		
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=3;
		girdBagCon.gridy=4;
		girdBagCon.gridwidth=3;
		girdBagCon.gridheight=1;
		girdBagCon.insets=new Insets(10, 1, 10, 15);
		girdBag.setConstraints(jTextField8, girdBagCon);
		centerPanel.add(jTextField8);
		
		addInfo.setText("增加");
		addInfo.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=5;
		girdBagCon.gridwidth=2;
		girdBagCon.gridheight=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 10, 10, 10);
		girdBag.setConstraints(addInfo, girdBagCon);
		centerPanel.add(addInfo);
		
		
		
		clearInfo.setText("清空");
		clearInfo.setFont(new Font("Dialog", 0, 12));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=2;
		girdBagCon.gridy=5;
		girdBagCon.gridwidth=2;
		girdBagCon.gridheight=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(10, 10, 10, 10);
		girdBag.setConstraints(clearInfo, girdBagCon);
		centerPanel.add(clearInfo);

	}
	
	//上部面板初始化
	public void panelInit() {
		//上部面板，网格包布局
		upPanel.setLayout(girdBag);
		//上部包含泽增加人员信息标签和滚动面板
		jLabel.setText("增加人员信息");
		jLabel.setFont(new Font("Dialog", 0, 16));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=0;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(0, 10, 0, 10);
		girdBag.setConstraints(jLabel, girdBagCon);
		upPanel.add(jLabel);
		
		//滚动面板 包含组件的中间，面板在滚动面板上
		jScrollPane =new JScrollPane(centerPanel);
		jScrollPane.setPreferredSize(new Dimension(450,380));
		girdBagCon=new GridBagConstraints();
		girdBagCon.gridx=0;
		girdBagCon.gridy=1;
		//外部填充 4个参数 top,left,bottom,right
		//既外部间距
		girdBagCon.insets=new Insets(0, 0, 0, 0);
		girdBag.setConstraints(jScrollPane, girdBagCon);
		upPanel.add(jScrollPane);
		
		//上部面板添加到窗体
		this.add(upPanel,BorderLayout.NORTH);
		//设置人员编号文本框不可用
		jTextField1.setEditable(false);
		jTextField2.setEditable(true);
		jTextField3.setEditable(true);
		jTextField4.setEditable(true);
		jTextField5.setEditable(true);
		jTextField6.setEditable(true);
		jTextField8.setEditable(true);
		jTextField1.setText(""+bean.getId());
		
	}
	/*添加事件监听
	 * (non-Javadoc)
	 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
	 */
	public void addListener() {
		//添加添加，清空按钮事件监听
		addInfo.addActionListener(this);
		clearInfo.addActionListener(this);
		//给显示部门的下拉列表添加项目选择监听
		//既当在下拉列表框中选择项目后 触发监听
		jComboBox1.addItemListener(this);
		
	}
	@Override
	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		//ItemEvent--项目事件，例如下拉列表框中项被选定或取消选定的事件 
		//e.getStateChange()--表示选定或取消选定 
		//ItemEvent.SELECTED--表示选定 
		//ItemEvent.DESELECTED--表示取消选定 
		//如果在下拉列表框中选中一个部门 
		if (e.getStateChange()==ItemEvent.SELECTED) {
			//获取选中项目值，得到的是一个“1-办公室-秘书室”这样的字符串 
			//字符串构成：部门编号-一级部门-二级部门 
			String temStr=""+e.getItem();
			//返回指定子字符串"-"在此字符串中第一次出现处的索引 
			int i=temStr.indexOf("-");
			 //取部门id子字符串，目的是取前面的部门编号 
			DeptID=temStr.substring(0,i);
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Object obj=e.getSource();
		if (obj==addInfo) {//增加
			//调用Personean的add()方法 实现添加纪录
			bean.add(jTextField1.getText(), jTextField2.getText(), jTextField3.getText(), jTextField4.getText(), jTextField5.getText(), jTextField6.getText(), DeptID, Salary, Assess, jTextField8.getText());
			//定义添加人员信息页面对象
			Node11Panel node11Panel=new Node11Panel();
			//用添加人员信息作为右侧组件
			HrMain.splitPane.setRightComponent(node11Panel);
		}
		else if (obj==clearInfo) {
			setNull();//调用清空方法
		}
	}
	void setNull(){
		jTextField2.setText(null);
		jTextField3.setText(null);
		jTextField4.setText(null);
		jTextField5.setText(null);
		jTextField6.setText(null);
		jTextField8.setText(null);
	}

}
&lt;/pre></description></item><item><title>人事管理系统——Histrjn表增删改查操作类</title><link>https://pangyd.com/post/39-histrjn/</link><pubDate>Mon, 07 Aug 2017 13:37:08 +0800</pubDate><guid>https://pangyd.com/post/39-histrjn/</guid><description>&lt;pre lay-lang="Java" class="layui-code" skin="notepad">package com.jnzyjsxy.common;

import java.sql.ResultSet;

import javax.swing.JOptionPane;

public class HistrinBean {
	//定义字符串用于存储sql字符串
		String sql;
		//结果集类
		ResultSet rs=null;
		//声明字符串变量 存储从操作界面传过来的人员信息
		String field1;
		String field2;
		String field3;
		String field4;
		String field5;
		String field6;
		String field7;
		public void add(String f1,String f2,String f3,String f4,String f5,
				String f6,String f7){
			//创建数据库对象 执行数据库里面的方法 链接数据库 执行sql语句
			Database DB=new Database();
			//将从添加界面传过来的值 付给成员变量
			this.field1=f1;
			this.field2=f2;
			this.field3=f3;
			this.field4=f4;
			this.field5=f5;
			this.field6=f6;
			this.field7=f7;
			//判断穿过来的值是否为空 如果为空就显示提示语句
			if (field2==null || field2.equals("")) {
				JOptionPane.showMessageDialog(null, "请输入FromAcc", "错误", JOptionPane.ERROR_MESSAGE);
				return;
			}
			else if (field3==null||field3.equals("")) {
				JOptionPane.showMessageDialog(null,"请输入OldInfo","错误",
						JOptionPane.ERROR_MESSAGE);
				return;
			}
			else if (field4==null||field4.equals("")) {
				JOptionPane.showMessageDialog(null,"请输入NewInfo","错误",
						JOptionPane.ERROR_MESSAGE);
				return;
			}
			else if (field5==null||field5.equals("")) {
				JOptionPane.showMessageDialog(null,"请输入ChgTime","错误",
						JOptionPane.ERROR_MESSAGE);
				return;
			}
			else if (field6==null||field6.equals("")) {
				JOptionPane.showMessageDialog(null,"请输入RegDate","错误",
						JOptionPane.ERROR_MESSAGE);
				return;
			}
			else if (field7==null||field7.equals("")) {
				JOptionPane.showMessageDialog(null,"请输入PersonID","错误",
						JOptionPane.ERROR_MESSAGE);
				return;
			}
			//构建插入字符串
			//构建sql字符串时，注意字符型，两侧用单引号做定界符，int,float不用定界符
			//传递过来的数据是字符型， 
			//为了插入int数据，进行类型转换-Integer.parseInt(field1)
			else {
				sql="insert into Histrjn( b,PersonID) values("+Integer.parseInt(field1)+ ",'"+field2+"','"+field3+"','"+field4+"',"+Integer.parseInt(field5)+",'"+field6+"',"+Integer.parseInt(field7)+")";
				System.out.println(sql);	
				//打开数据库连接
				try {
					DB.openConn();
					//执行sql语句
					DB.executeUpdate(sql);
					//提示信息
					JOptionPane.showMessageDialog(null, "你成功添加一条新的纪录");
				} catch (Exception e) {
					// TODO: handle exception
					//出现异常 ，给出提示
					System.out.println(e);
					JOptionPane.showMessageDialog(null, "保存失败 ","错误！", JOptionPane.ERROR_MESSAGE);
				}
					//关闭语句对象和链接对象
					finally{
						DB.closeStmt();
						DB.closeConn();
					}
				}
		}
			/*
			 * 根据JourNo
			 * ，返回人员信息各列值组成的字符数组
			 */
			public String[] search(String f1) {
				Database DB=new Database();
				this.field1=f1;
				//创建字符串数组 用于记录查询的数据
				String[] s =new String[6];
				sql="select * from Histrjn where JourNo="+field1;
				try{
					DB.openConn();//连接数据库
					//执行查询，查询结果付给rs，rs为结果集
					rs=DB.executeQuery(sql);
					//如果rs.next为true
					if (rs.next()) {
						//获取指定的值
						//说明：PersonID'DeptId salary均不是String类型
						//但在此简化处理，把取出值看作字符串，赋值给字符数组元素
						//方便统一待会返回值
						s[0]=rs.getString("JourNo");
						s[1]=rs.getString("FromAcc");
						s[2]=rs.getString("OldInfo");
						s[3]=rs.getString("NewInfo");
						s[4]=rs.getString("ChgTime");
						s[5]=rs.getString("RegDate");
						s[6]=rs.getString("PersonID");
					}else {
						s=null;
					}
				}catch(Exception e){
					
				}finally {
						DB.closeStmt();
						DB.closeConn();
					}
				return s;
				}
			/*
			 * 根据PersonID
			 * ，返回人员信息各列值组成的字符数组
			 */
			public String[] searchPI(String f7) {
				Database DB=new Database();
				this.field1=f7;
				//创建字符串数组 用于记录查询的数据
				String[] s =new String[6];
				sql="select * from Histrjn where PersonID="+field7;
				try{
					DB.openConn();//连接数据库
					//执行查询，查询结果付给rs，rs为结果集
					rs=DB.executeQuery(sql);
					//如果rs.next为true
					if (rs.next()) {
						//获取指定的值
						//说明：PersonID'DeptId salary均不是String类型
						//但在此简化处理，把取出值看作字符串，赋值给字符数组元素
						//方便统一待会返回值
						s[0]=rs.getString("JourNo");
						s[1]=rs.getString("FromAcc");
						s[2]=rs.getString("OldInfo");
						s[3]=rs.getString("NewInfo");
						s[4]=rs.getString("ChgTime");
						s[5]=rs.getString("RegDate");
						s[6]=rs.getString("PersonID");
					}else {
						s=null;
					}
				}catch(Exception e){
					
				}finally {
						DB.closeStmt();
						DB.closeConn();
					}
				return s;
				}
			}
		

&lt;/pre></description></item><item><title>人事管理系统——Dept表增删改查操作类</title><link>https://pangyd.com/post/38-dept/</link><pubDate>Mon, 07 Aug 2017 13:36:21 +0800</pubDate><guid>https://pangyd.com/post/38-dept/</guid><description>&lt;pre lay-lang="Java" class="layui-code" skin="notepad">package com.jnzyjsxy.common;

import java.sql.ResultSet;

import javax.swing.JOptionPane;

public class DeptBean {
	//定义字符串用于存储sql字符串
	String sql;
	//结果集类
	ResultSet rs=null;
	//声明字符串变量 存储从操作界面传过来的人员信息
	String field1;
	String field2;
	String field3;
	//添加信息
	public void add(String f1,String f2,String f3) {
		//创建数据库对象 执行数据库里面的方法 链接数据库 执行sql语句
		Database DB=new Database();
		//将从添加界面传过来的值 付给成员变量
		this.field1=f1;
		this.field2=f2;
		this.field3=f3;
		if (field2==null || field2.equals("")) {
			JOptionPane.showMessageDialog(null, "请输入人员所在一级部门", "错误", JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field3==null||field3.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入人员所在二级部门","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		//构建插入字符串
				//构建sql字符串时，注意字符型，两侧用单引号做定界符，int,float不用定界符
				//传递过来的数据是字符型， 
				//为了插入int数据，进行类型转换-Integer.parseInt(field1) 
				//在此PersonID，DeptID均为int类型，Sqlary为float类型，与书上不同 
				else {
					sql="insert into Dept(DeptID,B_Dept,S_Dept) values("+Integer.parseInt(field1)+ ",'"+field2+"','"+field3+"')";
					System.out.println(sql);	
					//打开数据库连接
					try {
						DB.openConn();
						//执行sql语句
						DB.executeUpdate(sql);
						//提示信息
						JOptionPane.showMessageDialog(null, "你成功添加一条新的纪录");
					} catch (Exception e) {
						// TODO: handle exception
						//出现异常 ，给出提示
						System.out.println(e);
						JOptionPane.showMessageDialog(null, "保存失败 ","错误！", JOptionPane.ERROR_MESSAGE);
					}
						//关闭语句对象和链接对象
						finally{
							DB.closeStmt();
							DB.closeConn();
					}
			}
	}
	/*
	 * 修改设备信息
	 */
	public void modify(String f1,String f2,String f3){
		Database DB=new Database();
		this.field1=f1;
		this.field2=f2;
		this.field3=f3;
		if (field2==null || field2.equals("")) {
			JOptionPane.showMessageDialog(null, "请输入人员所在一级部门", "错误", JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field3==null||field3.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入人员所在二级部门","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		//构建插入字符串
		//构建sql字符串时，注意字符型，两侧用单引号做定界符，int,float不用定界符
		//传递过来的数据是字符型， 
		//为了插入int数据，进行类型转换-Integer.parseInt(field1) 
		//在此PersonID，DeptID均为int类型，Sqlary为float类型，与书上不同 
		else {
			sql="insert into Dept(DeptID,B_Dept,S_Dept) values("+Integer.parseInt(field1)+ ",'"+field2+"','"+field3+"')";
			System.out.println(sql);	
			//打开数据库连接
			try {
				DB.openConn();
				//执行sql语句
				DB.executeUpdate(sql);
				//提示信息
				JOptionPane.showMessageDialog(null, "你成功修改一条新的纪录");
			} catch (Exception e) {
				// TODO: handle exception
				//出现异常 ，给出提示
				System.out.println(e);
				JOptionPane.showMessageDialog(null, "保存失败 ","错误！", JOptionPane.ERROR_MESSAGE);
			}
				//关闭语句对象和链接对象
				finally{
					DB.closeStmt();
					DB.closeConn();
			}
		}
	}
	/*
	 * 删除信息 根据传过来的PersonId 删除信息
	 */
	public void delete(String f1) {
		//创建数据库对象
		Database DB=new Database();
		this.field1=f1;//获取传递过来的参数
		//构建删除人员的字符串
		sql="delete from Dept where DeptID="+Integer.parseInt(field1);
		try {
			DB.openConn();
			DB.executeUpdate(sql);
			System.out.println(sql);
			JOptionPane.showMessageDialog(null, "成功删除一条新的纪录");	
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e);
			JOptionPane.showMessageDialog(null, "删除失败", "错误", JOptionPane.ERROR_MESSAGE);
			
	}
		finally{
			DB.closeStmt();
			DB.closeConn();
		}
	}
	/*
	 * 从Dept表查询所有人员信息，DeptID列显示部门名称 
	 */
	public String[][] searchAll() {
		Database DB=new Database();
		//定义二维数组
		String[][] sn=null;
		int row=0;//行数
		int i=0;//循环变量
		//查询sql字符串
		sql="select * from Dept order by DeptID";
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
				if (rs.last()) {
					row=rs.getRow();//获取结果集rs中记录数，即行数
				}
				//如果row==0说明rs没有记录 既没有查到符号条件的记录
				if (row==0) {
					//初始化二维数组1行6列 每个元素为空白字符
					sn=new String[1][2];
					sn[0][0]="";
					sn[0][1]="";
					sn[0][2]="";
				}
				//否则rs不等于0
				else {
					//根据行数row 初始化二维数组sn
					sn=new String[row][2];
					//让rs指到第一条数据
					rs.first();
					//将指针移动到上一行 由于上一条语句记录指针到第一条数据
					//执行完这条语句后 记录指针移动的rs的头部分
					//执行该条语句的作用是保障所有的记录都能满足rs.next()条件
					rs.previous();
					while (rs.next()) {
						sn[i][0]=rs.getString("DeptID");
						sn[i][1]=rs.getString("B_Dept");
						sn[i][2]=rs.getString("S_Dept");
						i++;			
					} 
				}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return sn;	
	}
	/*
	 * 获得新的Dept值
	 */
	public int getId() {
		Database DB=new Database();
		int ID=1;
		//查询sql，从Person表获取PersonID列的最大值
		sql="select max(DeptID) from Dept";
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
			if (rs.next()) {
				ID=rs.getInt(1)+1;
			}else {
				ID=1;
			}
		} catch (Exception e) {
			// TODO: handle exception
			
		}
		finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return ID;
	}
	/*
	 * 根据DeptID查询人员信息，返回人员信息各列值组成的字符数组
	 */
	public String[] search(String f1) {
		Database DB=new Database();
		this.field1=f1;
		//创建字符串数组 用于记录查询的数据
		String[] s =new String[10];
		sql="select * from Dept where DeptID="+field1;
		try{
			DB.openConn();//连接数据库
			//执行查询，查询结果付给rs，rs为结果集
			rs=DB.executeQuery(sql);
			//如果rs.next为true
			if (rs.next()) {
				//获取指定的值
				//说明：PersonID'DeptId salary均不是String类型
				//但在此简化处理，把取出值看作字符串，赋值给字符数组元素
				//方便统一待会返回值
				s[0]=rs.getString("DeptID");
				s[1]=rs.getString("B_Dept");
				s[2]=rs.getString("S_Dept");
			}else {
				s=null;
				}
			}catch(Exception e){
				
			}finally {
					DB.closeStmt();
					DB.closeConn();
				}
			return s;
	}
	
	/*
	 * 根据传递过来的ID 返回一级部门—耳机部门
	 */
	public String getDepstr(String string) {
		// TODO Auto-generated method stub
		Database DB=new Database();
		this.field1=string;
		//创建字符串数组 用于记录查询的数据
		String s = null;
		sql="select * from Dept where DeptID="+field1;
		System.out.println(sql);
		try{
			DB.openConn();//连接数据库
			//执行查询，查询结果付给rs，rs为结果集
			rs=DB.executeQuery(sql);
			//如果rs.next为true
			if (rs.next()) {
				//获取指定的值
				//说明：PersonID'DeptId salary均不是String类型
				//但在此简化处理，把取出值看作字符串，赋值给字符数组元素
				//方便统一待会返回值
				s=rs.getString("B_Dept")+"-"+rs.getString("S_Dept"); 	
			}else {
				s=null;
				}
			}catch(Exception e){
				
			}finally {
					DB.closeStmt();
					DB.closeConn();
				}
			return s;
	}
	
}
&lt;/pre></description></item><item><title>人事管理系统——Person表增删改查操作类</title><link>https://pangyd.com/post/36-person/</link><pubDate>Sun, 06 Aug 2017 19:27:53 +0800</pubDate><guid>https://pangyd.com/post/36-person/</guid><description>&lt;pre lay-lang="Java" class="layui-code" skin="notepad">package com.jnzyjsxy.common;

import java.sql.ResultSet;

import javax.sound.midi.VoiceStatus;
import javax.swing.JOptionPane;

import org.omg.CORBA.PUBLIC_MEMBER;
/*
 * 有关人员信息数据库操作的类
 */
public class PersonBean {
	//定义字符串用于存储sql字符串
	String sql;
	//结果集类
	ResultSet rs=null;
	//声明字符串变量 存储从操作界面传过来的人员信息
	String field1;
	String field2;
	String field3;
	String field4;
	String field5;
	String field6;
	String field7;
	String field8;
	String field9;
	String field10;
	
	String colname;//列名
	String colvalue1;//列值1
	String colvalue2;//列值2
	
	/*
	 * 添加信息
	 */
	public void add(String f1,String f2,String f3,String f4,String f5,
			String f6,String f7,String f8,String f9,String f10) {
		//创建数据库对象 执行数据库里面的方法 链接数据库 执行sql语句
		Database DB=new Database();
		//将从添加界面传过来的值 付给成员变量
		this.field1=f1;
		this.field2=f2;
		this.field3=f3;
		this.field4=f4;
		this.field5=f5;
		this.field6=f6;
		this.field7=f7;
		this.field8=f8;
		this.field9=f9;
		this.field10=f10;
		//判断穿过来的值是否为空 如果为空就显示提示语句
		if (field2==null || field2.equals("")) {
			JOptionPane.showMessageDialog(null, "请输入人员姓名", "错误", JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field3==null||field3.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入性别","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field4==null||field4.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入出生年月","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field5==null||field5.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入民族","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field6==null||field6.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入地址","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field7==null||field7.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入部门","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field8==null||field8.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入薪酬","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		//构建插入字符串
		//构建sql字符串时，注意字符型，两侧用单引号做定界符，int,float不用定界符
		//传递过来的数据是字符型， 
		//为了插入int数据，进行类型转换-Integer.parseInt(field1) 
		//在此PersonID，DeptID均为int类型，Sqlary为float类型，与书上不同 
		else {
			sql="insert into Person(PersonID,Name,Sex,Birth,Nat,Address,DeptID,Salary,Assess,Other) values("+Integer.parseInt(field1)+ ",'"+field2+"','"+field3+"','"+field4+"','"+field5+"','"+field6+"',"+Integer.parseInt(field7)+","+Float.parseFloat(field8)+",'"+field9+"','"+field10+"')";
			System.out.println(sql);	
			//打开数据库连接
			try {
				DB.openConn();
				//执行sql语句
				DB.executeUpdate(sql);
				//提示信息
				JOptionPane.showMessageDialog(null, "你成功添加一条新的纪录");
			} catch (Exception e) {
				// TODO: handle exception
				//出现异常 ，给出提示
				System.out.println(e);
				JOptionPane.showMessageDialog(null, "保存失败 ","错误！", JOptionPane.ERROR_MESSAGE);
			}
				//关闭语句对象和链接对象
				finally{
					DB.closeStmt();
					DB.closeConn();
				}
			}
		}
		/*
		 * 修改设备信息
		 */
	public void modify(String f1,String f2,String f3,String f4,String f5,
			String f6,String f7,String f8,String f9,String f10) {
		Database DB=new Database();
		this.field1=f1;
		this.field2=f2;
		this.field3=f3;
		this.field4=f4;
		this.field5=f5;
		this.field6=f6;
		this.field7=f7;
		this.field8=f8;
		this.field9=f9;
		this.field10=f10;
		if (field2==null || field2.equals("")) {
			JOptionPane.showMessageDialog(null, "请输入人员姓名", "错误", JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field3==null||field3.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入性别","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field4==null||field4.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入出生年月","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field5==null||field5.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入民族","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field6==null||field6.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入地址","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field7==null||field7.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入部门","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		else if (field8==null||field8.equals("")) {
			JOptionPane.showMessageDialog(null,"请输入薪酬","错误",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		//构建插入字符串
		//构建sql字符串时，注意字符型，两侧用单引号做定界符，int,float不用定界符
		//传递过来的数据是字符型， 
		//为了插入int数据，进行类型转换-Integer.parseInt(field1) 
		//在此PersonID，DeptID均为int类型，Sqlary为float类型，与书上不同 
		else {
			sql="updata into Person(PersonID,Name,Sex,Birth,Nat,Address,DeptID,Salary,Assess,Other) values("+Integer.parseInt(field1)+ ",'"+field2+"','"+field3+"','"+field4+"','"+field5+"','"+field6+"',"+Integer.parseInt(field7)+","+Float.parseFloat(field8)+",'"+field9+"','"+field10+"')";
			System.out.println(sql);	
			//打开数据库连接
			try {
				DB.openConn();
				//执行sql语句
				DB.executeUpdate(sql);
				//提示信息
				JOptionPane.showMessageDialog(null, "你成功修改一条新的纪录！");
			} catch (Exception e) {
				// TODO: handle exception
				//出现异常 ，给出提示
				System.out.println(e);
				JOptionPane.showMessageDialog(null, "保存失败 ","错误！", JOptionPane.ERROR_MESSAGE);
			}
			finally{
				DB.closeStmt();
				DB.closeConn();
			}
	}

}
	/*
	 * 删除信息 根据传过来的PersonId 删除信息
	 */
	public void delete(String f1) {
		//创建数据库对象
		Database DB=new Database();
		this.field1=f1;//获取传递过来的参数
		//构建删除人员的字符串
		sql="delete from Person where PersonID="+Integer.parseInt(field1);
		try {
			DB.openConn();
			DB.executeUpdate(sql);
			System.out.println(sql);
			JOptionPane.showMessageDialog(null, "成功删除一条新的纪录");	
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e);
			JOptionPane.showMessageDialog(null, "删除失败", "错误", JOptionPane.ERROR_MESSAGE);
			
	}
		finally{
			DB.closeStmt();
			DB.closeConn();
		}
}
	/*
	 * 根据PersonID查询人员信息，返回人员信息各列值组成的字符数组
	 */
	public String[] search(String f1) {
		Database DB=new Database();
		this.field1=f1;
		//创建字符串数组 用于记录查询的数据
		String[] s =new String[10];
		sql="select * from Person where PersonID="+field1;
		try{
			DB.openConn();//连接数据库
			//执行查询，查询结果付给rs，rs为结果集
			rs=DB.executeQuery(sql);
			//如果rs.next为true
			if (rs.next()) {
				//获取指定的值
				//说明：PersonID'DeptId salary均不是String类型
				//但在此简化处理，把取出值看作字符串，赋值给字符数组元素
				//方便统一待会返回值
				s[0]=rs.getString("PersonID");
				s[1]=rs.getString("Name");
				s[2]=rs.getString("Sex");
				s[3]=rs.getString("Birth");
				s[4]=rs.getString("Nat");
				s[5]=rs.getString("Address");
				s[6]=rs.getString("DeptID");
				s[7]=rs.getString("Salary");
				s[8]=rs.getString("Assess");
				s[9]=rs.getString("Other");
			}else {
				s=null;
			}
		}catch(Exception e){
			
		}finally {
				DB.closeStmt();
				DB.closeConn();
			}
		return s;
		}
		/*
		 * 人员信息综合查询
		 * 从PersonID和Dept表查询所有Where DeptID=Person.DeptID部门编号相等的记录
		 */
	public String[][] searchAllForNode() {
		//初始化数据库
		Database DB=new Database();
		//创建二维数组 存储查找到的符号条件记录的咯列值
		//由于符合条件的记录可能有多行，所以需要二维数组
		String[][] sn =null;
		int row=0;//存储行数
		int i=0;//循环变量
		//构建联合查询语句 查询条件where DeptID=Person.DeptID
		//从Person，Dept表查询Where Dept.DeptID=Person.DeptID 条件的指定字段
		sql="select PersonID,Name,Sex,Dept.DeptID as DeptID,B_Dept,S_Dept, Salary,Assess from Dept,Person where Dept.DeptID=Person.DeptID order by PersonID"; 
		try {
			DB.openConn();
			// TODO: handle exception
			//执行查询
			rs=DB.executeQuery(sql);
			//rs.last()--将记录指针移动到最后记录上，该方法类型为boolean
			//如果指针位于有效位,则返回true;如果结果集中不存在任何行,则返回false
			//即如果rs中有记录
			if (rs.last()) {
				row=rs.getRow();//获取结果集rs中记录数，即行数
			}
			//如果row==0说明rs没有记录 既没有查到符号条件的记录
			if (row==0) {
				//初始化二维数组1行6列 每个元素为空白字符
				sn=new String[1][6];
				sn[0][0]="";
				sn[0][1]="";
				sn[0][2]="";
				sn[0][3]="";
				sn[0][4]="";
				sn[0][5]="";
			}
			//否则rs不等于0
			else {
				//根据行数row 初始化二维数组sn
				sn=new String[row][6];
				//让rs指到第一条数据
				rs.first();
				//将指针移动到上一行 由于上一条语句记录指针到第一条数据
				//执行完这条语句后 记录指针移动的rs的头部分
				//执行该条语句的作用是保障所有的记录都能满足rs.next()条件
				rs.previous();
				//结果集下移一条数据 返回true 执行循环
				//如果没有执行re.previons()语句 在执行rs.next（），第一天记录就略过了。
				while (rs.next()) {
					sn[i][0]=rs.getString("PersonID");
					sn[i][1]=rs.getString("Name");
					sn[i][2]=rs.getString("Sex");
					//一级部门-二级部门，存储到sn[i][3]元素中
					sn[i][3]=rs.getString("B_Dept")+"-"+rs.getString("s_Dept");
					sn[i][4]=rs.getString("Salary");
					sn[i][5]=rs.getString("Assess");
					i++;
				}
				
			}
		}catch (Exception e) {

		}finally{
			DB.closeStmt();
			DB.closeConn();
		}
		return sn;
	}
	/*
	 * 修改Person表中 指定用户的部门信息，即修改Person表中的DeptID字段值
	 */
	public void updateDept(String f1,String f8) {
		Database DB=new Database();
		this.field1=f1;//PersonID
		this.field8=f8;//salary 薪资字段
		sql="update Person set Salary =" +Float.parseFloat(field8)+" where PersonID ="+Integer.parseInt(field1);
		try {
			DB.openConn();
			DB.executeUpdate(sql);
			JOptionPane.showMessageDialog(null, "劳资更改成功");
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e);
			JOptionPane.showMessageDialog(null, "更新失败", "失败",JOptionPane.ERROR_MESSAGE);
		}
	}
	/*
	 * 修改Person表中指定考核信息 即修改Person表中Assess字段值
	 */
	public void updateAssess(String f1,String f9) {
	Database DB=new Database();
	this.field1=f1;
	this.field9=f9;//考核字段
	sql="update Person set Assess = '"+field9 +"' where PersonID ="+Integer.parseInt(field1);
	try{
		DB.openConn();
		DB.executeUpdate(sql);
		JOptionPane.showMessageDialog(null, "人员考核成功");
	}catch(Exception e){
		System.out.println(e);
		JOptionPane.showMessageDialog(null, "更新失败", "失败",
				JOptionPane.ERROR_MESSAGE);
	}
	}

		

	/*
	 * 从Person表查询所有的人员信息 DeptID列显示部门名称
	 */
	public String[][] searchAll() {
		Database DB=new Database();
		//定义二维数组
		String[][] sn=null;
		int row=0;//行数
		int i=0;//循环变量
		//查询sql字符串
		sql="select * from Person order by PersonID";
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
				if (rs.last()) {
					row=rs.getRow();//获取结果集rs中记录数，即行数
				}
				//如果row==0说明rs没有记录 既没有查到符号条件的记录
				if (row==0) {
					//初始化二维数组1行6列 每个元素为空白字符
					sn=new String[1][6];
					sn[0][0]="";
					sn[0][1]="";
					sn[0][2]="";
					sn[0][3]="";
					sn[0][4]="";
					sn[0][5]="";
				}
				//否则rs不等于0
				else {
					//根据行数row 初始化二维数组sn
					sn=new String[row][6];
					//让rs指到第一条数据
					rs.first();
					//将指针移动到上一行 由于上一条语句记录指针到第一条数据
					//执行完这条语句后 记录指针移动的rs的头部分
					//执行该条语句的作用是保障所有的记录都能满足rs.next()条件
					rs.previous();
					while (rs.next()) {
						sn[i][0]=rs.getString("PersonID");
						sn[i][1]=rs.getString("Name");
						sn[i][2]=rs.getString("Birth");
						sn[i][3]=rs.getString("Nat");
						sn[i][4]=rs.getString("Address");
						//创建部门操作类DeptBean的对象
						DeptBean dBean=new DeptBean();
						sn[i][5]=dBean.getDepstr(rs.getString("DeptID"));
						i++;			
					} 
				}
		}catch (Exception e) {
			// TODO: handle exception
		}finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return sn;	
	}
	/*
	 * 获得新的Person值
	 */
	public int getId() {
		Database DB=new Database();
		int ID=1;
		//查询sql，从Person表获取PersonID列的最大值
		sql="select max(PersonID) from Person";
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
			if (rs.next()) {
				ID=rs.getInt(1)+1;
			}else {
				ID=1;
			}
		} catch (Exception e) {
			// TODO: handle exception
			
		}
		finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return ID;
	}
	/*
	 * 获得DeptID
	 */
	public String getDeptId(String f1) {
		Database DB=new Database();
		//根据传递过来的PersonID 即根据员工编号，查DeptID
		sql="select DeptID from Person where PersonID = "+f1;
		String deptid=null;
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
			if (rs.next()) {
				deptid=rs.getString("DeptID");
			}else {
				deptid="";
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return deptid;
	} 
	/*
	 * 根据PersonID查找员工姓名
	 */
	public String getName(String f1) {
		Database DB=new Database();
		sql="select Name from Person where PersonID ="+f1;
		String name=null;
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
			if (rs.next()) {
				name =rs.getString("Name");
			}
			else {
				name="";
				
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return name;
	}
	/*
	 * 从perSon表中查找所有PersonID Name字段 存储在s数组中 返回
	 */
	public String[] getAllId() {
		String[] s=null;
		int row=0;
		int i=0;
		Database DB=new Database();
		sql="select PersonID,Name from Person order by PersonID";
		try {
			DB.openConn();
			rs=DB.executeQuery(sql);
			if (rs.last()) {
				row=rs.getRow();
			}
			if (row==0) {
				s=null;
			}else {
				s=new String[row];
				rs.first();
				rs.previous();
				while (rs.next()) {
				s[i]=rs.getString(1)+"-"+rs.getShort(2);
				i++;
					
				}
			}
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e);
		}finally {
			DB.closeStmt();
			DB.closeConn();
		}
		return s;
	}
	}
&lt;/pre></description></item></channel></rss>