在Maven项目中使用apache的commons

阅读: 评论:0

在Maven项目中使用apache的commons

在Maven项目中使用apache的commons

首先加入连依赖:

<dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.6</version>
</dependency><dependency><groupId&hange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version>
</dependency>

新建工具类:

package utils;import dules.ejserver.impl.EjImpl;
hange.v2.c3p0.ComboPooledDataSource;import java.sql.Connection;public class LisDBUtil {private static ComboPooledDataSource dataSource;/*** 连接XXX库并设置自动提交为否*/public static Connection getLisConnection(){Connection conn = null;try{dataSource = new ComboPooledDataSource();dataSource.setUser("lis");//dataSource.setPassword("1");dataSource.setPassword("oracle");dataSource.setJdbcUrl("jdbc:oracle:thin:@192.168.40.7:1521:orcl");dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");//dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/pjxt?useUnicode=true&characterEncoding=utf-8");//dataSource.setDriverClass(&#sql.jdbc.Driver");dataSource.setMinPoolSize(2);dataSource.setAcquireIncrement(5);dataSource.setMaxPoolSize(20);conn =  Connection();conn.setAutoCommit(false);//设置自动提交为否System.out.println("连接成功!");}catch (Exception e){e.printStackTrace();}return conn;}/*** 提交数据* @throws Exception*/public  static void commit(Connection conn) throws Exception {if(null!=conn){connmit();//提交}if (null!=conn){conn.close();//关闭}}/*** 回滚* @throws Exception*/public static void rollback( Connection conn) throws Exception {if (null!=conn){llback();//LIS数据回滚}if (null!=conn){conn.close();}}public static  void connColse(Connection conn){if(null!=conn){try{conn.close();}catch(Exception ex){ex.printStackTrace();}}}}

使用实例:

package dules.ejserver.impl;import dules.ejserver.Ej;
import org.apachemons.dbutils.QueryRunner;
import org.apachemons.dbutils.handlers.MapListHandler;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
import org.springframework.stereotype.Service;
import utils.LisDBUtil;
import javax.jws.WebMethod;
import javax.jws.WebService;
import java.io.ByteArrayInputStream;
import java.sql.Connection;
import java.sql.Timestamp;
SimpleDateFormat;
import java.util.*;@WebService
@Service
public class EjImpl implements Ej {QueryRunner queryRunner = new QueryRunner();/***通过“条码号”【参数:医院条码】从该接口获取LIS的病人信息和医嘱信息(XML文档字符串)* @param HospSampleID 条码号”【参数:医院条码】* @return*/@WebMethodpublic String GetLisRequest(String HospSampleID) {String xmlStr = null;String sql = "select a.bqtmbh Lis_Barcode," +" a.brid pat_id ," +" h,'',a.h)pat_no," +" a.xm pat_name," +" a.ch pat_bedno," +" a.cysj blood_time," +" a.xb pat_sex," +" a.csrq pat_birthday," +" a.nn pat_age," +" decode(sign(trunc(months_between(sysdate, a.csrq)/12)-15),1,4,5)pat_ageunit," +" a.kxmksmc dept_name," +" a.ysxm doctor_name," +" a.zd clinical_diag," +" c.mc samp_name," +" b.zhxmid lis_item_code," +" d.zhxmmc lis_item_name," +" e.jyxm lis_subitem_code," +" f.xmmc lis_subitem_name " +" from lis_jyd a left join lis_jydzhxm b on a.jydid=b.jydid " +" left join lis_bblx c on b.bblxid=c.bblxid  join lis_zhxm d on b.zhxmid=d.zhxmid" +" left join lis_zhxmpz e on e.zhxmid=b.zhxmid " +" left join lis_jyxm f on e.jyxm=f.jyxmid " +" where  a.bqtmbh='"+HospSampleID+"' " +" order by b.zhxmid";Connection conn = LisConnection();List<Map<String, Object>> result = null;Map<String,Object> rowMap = new LinkedHashMap<>();List<Map<String, Object>> lisItemList = null;try{result =  queryRunner.query(conn,sql, new MapListHandler());Document document = null;if(result.size() != 0){document = ateDocument();Element Data = document.addElement("Data");Element Data_Row = Data.addElement("Data_Row");rowMap.put("Lis_Barcode",(0).get("Lis_Barcode"));rowMap.put("pat_id",(0).get("pat_id"));rowMap.put("pat_no",(0).get("pat_no"));rowMap.put("blood_time",(0).get("blood_time"));rowMap.put("pat_name",(0).get("pat_name"));rowMap.put("pat_bedno",(0).get("pat_bedno"));rowMap.put("pat_sex",(0).get("pat_sex"));rowMap.put("pat_birthday",(0).get("pat_birthday"));rowMap.put("pat_age",(0).get("pat_age"));rowMap.put("pat_ageunit",(0).get("pat_ageunit"));rowMap.put("dept_name",(0).get("dept_name"));rowMap.put("doctor_name",(0).get("doctor_name"));rowMap.put("clinical_diag",(0).get("clinical_diag"));rowMap.put("samp_name",(0).get("samp_name"));for(String key:rowMap.keySet()){//创建病人信息标签并赋值if(null!&#(key) && (!"".(key))) ){Data_Row.addElement(key).(key).toString());}else{Data_Row.addElement(key);}}Element LisItems = null;Element SubItems = null;for(int i=0;i<result.size();i++ ){if(i==0 || !(i).get("lis_item_code").(i-1).get("lis_item_code")) ){//创建组合项目标签并赋值LisItems = Data_Row.addElement("LisItems");LisItems.addElement("lis_item_code").(i).get("lis_item_code").toString());LisItems.addElement("lis_item_name").(i).get("lis_item_name").toString());SubItems = LisItems.addElement("SubItems");SubItems.addElement("lis_subitem_code").(i).get("lis_subitem_code").toString());SubItems.addElement("lis_subitem_name").(i).get("lis_subitem_name").toString());}else{SubItems = LisItems.addElement("SubItems");SubItems.addElement("lis_subitem_code").(i).get("lis_subitem_code").toString());SubItems.addElement("lis_subitem_name").(i).get("lis_subitem_name").toString());}}xmlStr = document.asXML();}else{document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("1");response.addElement("message").addText("未找到该标本信息");xmlStr = document.asXML();}}catch (Exception e){Document document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("1");response.addElement("message").Message());xmlStr = document.asXML();}finally {Colse(conn);}return xmlStr;}/***  通过该接口发送 确认获取(LIS的病人信息和医嘱信息)成功的信息,然后lis设置jydzhxm的status=1表示该组合项目已被金域接收* @param HospSampleID 条码号”【参数:医院条码】* @param ItemCode 需确认的组合项目代码  可不传或多个(以逗号隔开)* @return*/@WebMethodpublic String AffirmRequest(String HospSampleID,  ItemCode) {String sql = "";String xmlStr = null;Connection conn = null;if(ItemCode.length==0){sql += "update  lis_jydzhxm  set status=1 where jydid in(select jydid from lis_jyd where bqtmbh = ? ) ";}else{String[] itemCodeArray = ItemCode;sql +=" update  lis_jydzhxm  set status=1 where jydid in(select jydid from lis_jyd where bqtmbh = ? ) and zhxmid in(";for(int i=0;i<itemCodeArray.length;i++ ){if(i==itemCodeArray.length-1){sql += itemCodeArray[i];}else{sql += itemCodeArray[i]+",";}}sql +=")";}Document document  = null;try{conn = LisConnection();queryRunner.update(conn, sql,HospSampleID );//更新LisDBUtilmit(conn);//oracle提交document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("0");response.addElement("message");xmlStr = document.asXML();}catch(Exception e){e.printStackTrace();try{llback(conn);}catch(Exception ee){ee.printStackTrace();}finally {document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("1");response.addElement("message").addText("更新数据出错"&#Message());xmlStr = document.asXML();}}finally {Colse(conn);}return xmlStr;}/*** 通过该接口回传 结果和报告单* @param* @return*/@WebMethodpublic String UploadLisRepData(String xml) {String xmlStr=null;Connection conn = null;SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try{// xml = "<?xml version="1.0" encoding="utf-8"?><Report_Result><Report_Info><ext_lab_code>kingmed</ext_lab_code><lis_Barcode>0000000103</lis_Barcode><ext_Barcode>20190219083</ext_Barcode><ext_checkItem/><pat_name>zz</pat_name><pat_age/><pat_height/><pat_wight/><pat_pre_week/><pat_id>1009</pat_id><pat_bedNo/><pat_tel/><pat_sex>男</pat_sex><pat_birthday>1999-02-18</pat_birthday><pat_ori_name>OP</pat_ori_name><sam_name>血清</sam_name><sam_state/><doctor_name>张云锋</doctor_name><dept_name>体检科</dept_name><clinical_diag/><SampleNumber>0000000103</SampleNumber><blood_time/><ext_check_ID/><ext_receive_time>2019-02-19 10:37:21</ext_receive_time><ext_check_time>2019-02-19 11:06:24</ext_check_time><ext_first_audit_time>2019-02-19 11:13:36</ext_first_audit_time><ext_second_audit_time>2019-02-19 11:15:01</ext_second_audit_time><ext_upload_time/><ext_report_suggestion/><ext_report_remark/><ext_checker>陈燕华</ext_checker><ext_first_audit>陈燕华</ext_first_audit><ext_second_audit>杨双燕</ext_second_audit><ext_intstrmt_name/><ext_lab_name/><ext_report_type>1</ext_report_type><ext_report_code>FZ0000797710185</ext_report_code><requestno/><result_info><result_seq>1</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41098</ext_item_code><ext_item_name>总三碘甲状腺原氨酸(TT3)</ext_item_name><result>8.00</result><result_unit>nmol/L</result_unit><result_flag>↑</result_flag><result_reference>0.92-2.79</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>475</lis_item_code><lis_item_name>总三碘甲状腺原氨酸(TT3),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>2</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41099</ext_item_code><ext_item_name>总甲状腺素(TT4)</ext_item_name><result>8.00</result><result_unit>nmol/L</result_unit><result_flag>↓</result_flag><result_reference>58.05-140.61</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>472</lis_item_code><lis_item_name>总甲状腺素(TT4),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>3</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41100</ext_item_code><ext_item_name>超敏促甲状腺素(TSH)</ext_item_name><result>3.000</result><result_unit>uIU/ml</result_unit><result_flag/><result_reference>≥18岁||0.550-4.780&amp;12岁-18岁||0.510-4.940&amp;2岁-11岁||0.640-6.270</result_reference><result_date>2019-02-19 11:15:00</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>478</lis_item_code><lis_item_name>超敏促甲状腺素(TSH),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>4</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41101</ext_item_code><ext_item_name>游离三碘甲状腺原氨酸(FT3)</ext_item_name><result>6.30</result><result_unit>pmol/L</result_unit><result_flag/><result_reference>3.54-6.47</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>473</lis_item_code><lis_item_name>游离三碘甲状腺原氨酸(FT3),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>5</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41102</ext_item_code><ext_item_name>游离甲状腺素(FT4)</ext_item_name><result>18.00</result><result_unit>pmol/L</result_unit><result_flag/><result_reference>11.50-22.70</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>474</lis_item_code><lis_item_name>游离甲状腺素(FT4),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><report_pic><pic_content/><pic_name/><pic_seq>1</pic_seq></report_pic></Report_Info></Report_Result>";//xml  ="<?xml version="1.0" encoding="utf-8"?><Report_Result><Report_Info><ext_lab_code>kingmed</ext_lab_code><lis_Barcode>0000000409</lis_Barcode><ext_Barcode>20190219083</ext_Barcode><ext_checkItem/><pat_name>赵靴</pat_name><pat_age/><pat_height/><pat_wight/><pat_pre_week/><pat_id>944</pat_id><pat_bedNo/><pat_tel/><pat_sex>男</pat_sex><pat_birthday>1999-02-18</pat_birthday><pat_ori_name>OP</pat_ori_name><sam_name>血清</sam_name><sam_state/><doctor_name>张云锋</doctor_name><dept_name>体检科</dept_name><clinical_diag/><SampleNumber>0000000409</SampleNumber><blood_time/><ext_check_ID/><ext_receive_time>2019-02-23 22:11:21</ext_receive_time><ext_check_time>2019-02-23 22:11:24</ext_check_time><ext_first_audit_time>2019-02-23 22:11:36</ext_first_audit_time><ext_second_audit_time>2019-02-23 22:11:01</ext_second_audit_time><ext_upload_time/><ext_report_suggestion/><ext_report_remark/><ext_checker>陈燕华</ext_checker><ext_first_audit>陈燕华</ext_first_audit><ext_second_audit>杨双燕</ext_second_audit><ext_intstrmt_name/><ext_lab_name/><ext_report_type>1</ext_report_type><ext_report_code>FZ0000797710185</ext_report_code><requestno/><result_info><result_seq>1</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41098</ext_item_code><ext_item_name>总三碘甲状腺原氨酸(TT3)</ext_item_name><result>8.00</result><result_unit>nmol/L</result_unit><result_flag>↑</result_flag><result_reference>0.92-2.79</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>475</lis_item_code><lis_item_name>总三碘甲状腺原氨酸(TT3),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>2</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41099</ext_item_code><ext_item_name>总甲状腺素(TT4)</ext_item_name><result>8.00</result><result_unit>nmol/L</result_unit><result_flag>↓</result_flag><result_reference>58.05-140.61</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>472</lis_item_code><lis_item_name>总甲状腺素(TT4),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>3</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41100</ext_item_code><ext_item_name>超敏促甲状腺素(TSH)</ext_item_name><result>3.000</result><result_unit>uIU/ml</result_unit><result_flag/><result_reference>≥18岁||0.550-4.780&amp;12岁-18岁||0.510-4.940&amp;2岁-11岁||0.640-6.270</result_reference><result_date>2019-02-19 11:15:00</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>478</lis_item_code><lis_item_name>超敏促甲状腺素(TSH),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>4</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41101</ext_item_code><ext_item_name>游离三碘甲状腺原氨酸(FT3)</ext_item_name><result>6.30</result><result_unit>pmol/L</result_unit><result_flag/><result_reference>3.54-6.47</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>473</lis_item_code><lis_item_name>游离三碘甲状腺原氨酸(FT3),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><result_info><result_seq>5</result_seq><ext_combine_code>ZH00913</ext_combine_code><ext_combine_name>甲功五项</ext_combine_name><ext_item_code>41102</ext_item_code><ext_item_name>游离甲状腺素(FT4)</ext_item_name><result>18.00</result><result_unit>pmol/L</result_unit><result_flag/><result_reference>11.50-22.70</result_reference><result_date>2019-02-19 11:15:01</result_date><result_intstrmt_name/><result_department>15甲功岗位</result_department><result_test_method>化学发光法</result_test_method><result_suggestion/><result_remark/><lis_combine_code>285</lis_combine_code><lis_combine_name>甲功五项</lis_combine_name><lis_item_code>474</lis_item_code><lis_item_name>游离甲状腺素(FT4),化学发光法</lis_item_name><isreimbu/><reimbudesc/><isdelayed/><delayeddesc/></result_info><report_pic><pic_content/><pic_name/><pic_seq>1</pic_seq></report_pic></Report_Info></Report_Result>";SAXReader saxReader = new SAXReader();//Document document = ad(new File("./l"));Document doc = ad(new Bytes("UTF-8")));//xml串第一行不能有空格,否则报错Element rootEle = RootElement();// 获取根节点Map map = new  HashMap();List<Map> resultInfoList = new ArrayList<>();List<Map> reortPicList = new ArrayList<>();List<Element> Report_Results = rootEle.elements();//获取 根节点(即Report_Result结点)下的元素for (Element e1 : Report_Results){List<Element> Report_Infos = e1.elements();//获取 结点Report_Info下的元素for (Element e2 : Report_Infos) {if("result_info".Name())){Map resultInfoMap  = new HashMap();List<Element> result_info = e2.elements();//获取 结点result_info下的元素for(Element e3:result_info){resultInfoMap.Name(), e3.getText());}resultInfoList.add(resultInfoMap);}else if("report_pic".Name())){Map reortPicMap = new HashMap();List<Element> report_pics = e2.elements();//获取 结点report_pic下的元素for(Element e4:report_pics){reortPicMap.Name(), e4.getText());}reortPicList.add(reortPicMap);}else {map.Name(), e2.getText());}}System.out.println("========================================解析成功!===========================================================");}conn = LisConnection();for(Map e:reortPicList){//保存图片信息queryRunner.update(conn, "insert into report_pic values(?,?,?,?,?,?)",null,//id 会自增 故传("lis_Barcode"),("ext_Barcode"),e.get("pic_seq"),e.get("pic_name"),e.get("pic_content"));}for(Map e:resultInfoList){//保存报告单相关信息queryRunner.update(conn,"insert into report_info values(?,?,?,?,?, ?,?,?,?,?,  ?,?,?,?,?,  ?,?,?,?,?,  ?,?,?,?,?,  ?,?,?,?,?,  ?,?,?,?)",//id会自增 故传("lis_Barcode"),("ext_Barcode"),new Timestamp(sd.("ext_receive_time").toString()).getTime()),new Timestamp(sd.("ext_second_audit_time").toString()).getTime()),("ext_checker"),("ext_first_audit"),("ext_second_audit"),("ext_report_code"),e.get("result_seq"),e.get("ext_combine_code"),e.get("ext_combine_name"),e.get("ext_item_code"),e.get("ext_item_name"),e.get("result"),e.get("result_unit"),e.get("result_flag"),e.get("result_reference"),new Timestamp(sd.("result_date").toString()).getTime()),e.get("result_intstrmt_name"),e.get("result_department"),e.get("result_test_method"),e.get("result_suggestion"),e.get("result_remark"),e.get("lis_combine_code"),e.get("lis_combine_name"),e.get("lis_item_code"),e.get("lis_item_name"),e.get("isreimbu"),e.get("reimbudesc"),e.get("isdelayed"),e.get("delayeddesc"),e.get("lowrange"),e.get("highrange"));String sql = "update lis_ybxmjyjgmx set ckqj='" &#("result_reference")+"',xmmc='" &#("lis_item_name")+"',jyz='" &#("result")+"',wsbz='" &#("result_flag")+"',jyff='" &#("result_test_method")+"' where jyjgid=(select a.jydid from lis_jyd a  join lis_jydzhxm b on a.jydid=b.jydid  where a.bqtmbh='"&#("lis_Barcode")+"'and b.zhxmid='"&#("lis_combine_code")+"') and jyxmid='"&#("lis_item_code")+"'";queryRunner.update(conn, sql);String upJydZTSql = "update lis_jyd set zt='2'where jydid=(select a.jydid from lis_jyd a  join lis_jydzhxm b on a.jydid=b.jydid  where a.bqtmbh='"&#("lis_Barcode")+"'and b.zhxmid='"&#("lis_combine_code")+"')";queryRunner.update(conn, upJydZTSql);}LisDBUtilmit(conn);//oracle提交Document document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("0");response.addElement("message");xmlStr = document.asXML();}catch(Exception e){e.printStackTrace();try {llback(conn);}catch (Exception ee){ee.printStackTrace();}finally {Document document = ateDocument();Element response = document.addElement("response");response.addElement("code").addText("1");response.addElement("message").addText("报告单解析或保存出错"&#Message());xmlStr = document.asXML();}}finally {Colse(conn);}return xmlStr;}
}

在上方的使用实例代码中 因为id会自增所以参数传入null就可以;设置id主键自增:

--建表
CREATE TABLE "REPORT_PIC" (  "ID" NUMBER NOT NULL ENABLE, "LIS_BARCODE" VARCHAR2(200) NOT NULL ENABLE, "EXT_BARCODE" VARCHAR2(200), "PIC_SEQ" NUMBER, "PIC_NAME" VARCHAR2(200), "PIC_CONTENT" VARCHAR2(200)) --设置主键ALTER TABLE "REPORT_PIC" ADD CONSTRAINT "PK_REPORT_PIC" PRIMARY KEY ("ID")--建序列 
create sequence SEQ_REPORT_PIC
minvalue 1
maxvalue 100000000000000000000
start with 141
increment by 1
cache 20;
--建触发器(在建好序列的基础上)
create or replace trigger "TRI_REPORT_PIC" 
before insert on report_picfor each row
begin
select  SEQ_val into :new.id from dual;
end;

在上方的工具类中,没有设计成单例,每次连接数据库时候都会new 一个ComboPooledDataSource,会导致连接池越滚越多,达到oracle最大限度时候就会连不上oracle数据库,现改成如下单例模式:

package utils;import dules.ejserver.impl.EjImpl;
hange.v2.c3p0.ComboPooledDataSource;import java.sql.Connection;public class LisDBUtil {private static LisDBUtil instance;//c3p0被称为数据库连接池,用来管理数据库的连接//c3p0连接池的ComboPooledDataSource类private  ComboPooledDataSource dataSource;private  LisDBUtil()throws Exception{dataSource = new ComboPooledDataSource();dataSource.setUser("lis");//dataSource.setPassword("1");dataSource.setPassword("oracle");dataSource.setJdbcUrl("jdbc:oracle:thin:@192.168.40.7:1521:orcl");//dataSource.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:system");dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");//dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/pjxt?useUnicode=true&characterEncoding=utf-8");//dataSource.setDriverClass(&#sql.jdbc.Driver");dataSource.setMinPoolSize(5);//设置连接池的最小连接数dataSource.setMaxPoolSize(50);//设置连接池的最大连接数dataSource.setInitialPoolSize(10);//初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3dataSource.setMaxIdleTime(10);//最大空闲时间,10秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0dataSource.setAcquireIncrement(5);//当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3dataSource.setCheckoutTimeout(10000);//连接池用完时客户调用getConnection()后等待获取连接的时间,单位:毫秒dataSource.setBreakAfterAcquireFailure(false);//为true会导致连接池占满后不提供服务。所以必须为falsedataSource.setIdleConnectionTestPeriod(30);//每30秒检查一次空闲连接,加快释放连接。}public static final LisDBUtil getInstance () {if (instance == null) {try {instance = new LisDBUtil();} catch (Exception e) {e.printStackTrace();}}return instance;}//返回一个连接public synchronized final Connection getConnection () {Connection conn = null;try {conn = Connection();conn.setAutoCommit(false);//设置自动提交为否System.out.println("连接成功!");return conn;} catch (Exception e) {e.printStackTrace();}return null;}/*** 提交数据* @throws Exception*/public  static void commit(Connection conn) throws Exception {if(null!=conn){connmit();//提交}if (null!=conn){conn.close();//关闭,其实连接并未真正的关闭,而是放回连接池中}}/*** 回滚* @throws Exception*/public static void rollback( Connection conn) throws Exception {if (null!=conn){llback();//LIS数据回滚}if (null!=conn){conn.close();}}public static  void connColse(Connection conn){if(null!=conn){try{conn.close();}catch(Exception ex){ex.printStackTrace();}}}public static void main(String[] args) {EjImpl ejImpl = new EjImpl();//String xmlStr = ejImpl.GetLisRequest("0000000103");//String mxlStr = ejImpl.AffirmRequest("0000000099");// ejImpl.UploadLisRepData("");System.out.println();}}

本文发布于:2024-01-29 05:47:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647842113129.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:项目   Maven   commons   apache
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23