java提取数据库表字段信息的工具类精品资料.docx
《java提取数据库表字段信息的工具类精品资料.docx》由会员分享,可在线阅读,更多相关《java提取数据库表字段信息的工具类精品资料.docx(161页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分享一个java提取数据库表字段信息的工具类 在java开发过程中,如果没有使用hibernate这样的框架,要想快速提取一个数据表的所有字段(尤其是对于一个比较多字段的表)这是个痛苦的事情。在网上找到一些关于提取数据表字段的介绍文章,然后结合自己的需求写了以下一个工具类。/* * 带有Java类型定义的 * param tbn * param splitChar * return * throws SQLException */public String getColumnWithJavaClass(String tbn,String splitChar) throws SQLExcepti
2、onIterator its = getTableColumns(tbn).entrySet().iterator();StringBuffer sb=new StringBuffer();while(its.hasNext()Entry it = its.next();sb.append(public );sb.append(it.getValue();sb.append( +it.getKey()+;);if(its.hasNext() sb.append(splitChar);return sb.toString();/* * 只有字段名信息 * param tbn * param sp
3、litChar * return * throws SQLException */public String getColumnNames(String tbn,String splitChar) throws SQLExceptionIterator its = getTableColumns(tbn).entrySet().iterator();StringBuffer sb=new StringBuffer();while(its.hasNext()sb.append(its.next().getKey();if(its.hasNext() sb.append(splitChar);re
4、turn sb.toString();/* * * param tbn * return * throws SQLException */public LinkedHashMap getTableColumns(String tbn) throws SQLExceptionLinkedHashMap cous = new LinkedHashMap();ResultSetMetaData mds = con.createStatement().executeQuery(select * from +tbn+ limit 0,1).getMetaData();int t = mds.getCol
5、umnCount();for(int i=0;icous.put(mds.getColumnName(i+1), mds.getColumnClassName(i+1);return cous;public java.lang.Long id;public java.lang.String hash;public java.lang.Long size;public java.lang.Long parent;public java.lang.String txtname;public java.lang.String url;public java.lang.Integer sortid;附
6、加学习:HashMap是按照HashCode 排序,莫名其妙的顺序。 TreeMap是按照自身的顺序排序,比如数字的话,按照数字升序,ascII等。 LinkedHashMap是按照先进先出的顺序。本文关键词:java 数据库 工具类 mapimport java.util.ArrayList;import java.util.regex.*;public class Test1 public static void main(String args) Pattern p =Ppile(w+(?=)|w+(?=.); /list用于装匹配的 b c e 装完后用list.toArray转换为数
7、组就行了 ArrayList list = new ArrayList(); String num=select * from a where owner=b and password=c; select * from e.f; Matcher m = p.matcher(num); while(m.find() System.out.println(m.group(); list.add(m.group(); 目前更新的:/import java.util.ArrayList;/import java.util.List;import java.util.regex.*;import jav
8、a.io.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class logxi private static final Logger logger = LoggerFactory.getLogger(logxi.class);public static void main(String args)String line; String filePath = D:/log/log.log; / List list = new ArrayList(); try FileInputStream is = new Fi
9、leInputStream(filePath); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); try while (line = br.readLine() != null) / if (line.equals() / continue; / else / list.add(line); Pattern p1 = Ppile(/d1,3/./d1,3/./d1,3/./d1,3); /IP modelPattern p2 = Ppile(d4-01
10、-9|11-2-01-9|1-2d|30-1 0-20-4:0-6d:0-6d$); /Time modelPattern p3 = Ppile(0-9) ; /PID modelMatcher m1 = p1.matcher(line);Matcher m2 = p2.matcher(line);Matcher m3 = p3.matcher(line); if (m1.find()logger.info(IP model is find.The number of matching group of IP model is:+ m1.groupCount();for ( int i=1;
11、i=m1.groupCount(); i+) logger.info(This is the i match.The content of i substring is: + m1.group(i); elseSystem.out.println(There is no IP matching pattern); if (m2.find()logger.info(Time model is find.The number of matching group of time model is:+ m2.groupCount();for ( int j=0; j=m2.groupCount();
12、j+)logger.info(This is the j match.The content of j substring is: + m2.group(j); elseSystem.out.println(There is no Time matching pattern); if (m3.find()logger.info(PID model is find.The number of matching group of PID model is:+ m3.groupCount();for ( int k=1; k=m3.groupCount();k+)logger.info(This i
13、s the k match.The content of k substring is: + m3.group(k); else System.out.println(There is no PID matching pattern); catch (IOException e) e.printStackTrace(); logger.error(A line of data is error); catch (FileNotFoundException e) e.printStackTrace(); logger.error(FileNotFoundException); IP地址:impo
14、rt org.apache.log4j.Logger;import org.apache.log4j.NDC;public class TestNDC static Logger log = Logger.getLogger(TestNDC.class.getName();public static void main(String args) log.info(Make sure %x is in your layout pattern!);NDC.get();String ips = 192.168.0.10,192.168.0.27;for (int i = 0; iips.length
15、 ; i+)NDC.push(ipsi);log.info(A NEW client connected, whos ip should appear in this log message.);NDC.pop();NDC.remove();log.info(Finished.);Java基础:常用的匹配正则表达式和实例匹配中文字符的正则表达式: u4e00-u9fa5 匹配双字节字符(包括汉字在内):x00-xff 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function()return this.replace(x00
16、-xff/g,aa).length; 匹配空行的正则表达式:ns| *r 匹配HTML标记的正则表达式:/.*|/ 匹配首尾空格的正则表达式:(s*)|(s*$) 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: String.prototype.trim = function()return this.replace(/(s*)|(s*$)/g, );利用正则表达式分解和转换IP地址: 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: function IP2V(ip)re=/(d ).(d
17、).(d ).(d )/g /匹配IP地址的正则表达式if(re.test(ip)return RegExp.$1*Math.pow(255,3) RegExp.$2*Math.pow(255,2) RegExp.$3*255 RegExp.$4*1elsethrow new Error(Not a valid IP address!)不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: var ip=10.100.20.168ip=ip.split(.)alert(IP值是: (ip0*255*255*255 ip1*255*255 ip2*255 ip3*1
18、)匹配Email地址的正则表达式:w (- .w )*w (-.w )*.w (-.w )* 匹配网址URL的正则表达式:http:/(w- .) w- (/w- ./?%&=*)? 利用正则表达式去除字串中重复的字符的算法程序: var s=abacabefgeeiivar s1=s.replace(/(.).*1/g,$1)var re=new RegExp( s1 ,g)var s2=s.replace(re,) alert(s1 s2) /结果为:abcefgi这是表达式实现去除重复字符的方法最简单的实现方法。 思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到
19、不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。 得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1 s=s=s.replace(/(.*/)0,(. ).*/ig,$2)alert(s)利用正则表达式限制网页表单里的文本框输入内容: 用正则表达式限制只能输入中文:onkeyup=value=value.replace(/u4E00-u9FA5/g,) onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace(/u4E00-u9FA5/g,)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java提取数据库表字段信息的工具类 精品资料 java 提取 数据库 表字 信息 工具 精品 资料
限制150内