package com.yihu.ehr.ws; import com.yihu.ehr.dbhelper.jdbc.DBHelper; import com.yihu.ehr.model.DataSource; import com.yihu.ehr.ws.inf.ISQLWebService; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; import org.apache.commons.dbcp2.BasicDataSource; import org.springframework.jdbc.core.JdbcTemplate; import javax.jws.WebService; /** * Created by Administrator on 2016/5/19. */ @WebService(endpointInterface = "com.yihu.ehr.ws.inf.ISQLWebService", serviceName = "testWS") public class SQLWebService implements ISQLWebService { public static JdbcTemplate jdbcTemplate = null; @Override public String excuteSQL(String sql) { try { if (jdbcTemplate == null) { //jdbc:oracle:thin:hos/hos@//172.19.103.71:1521/orcl //jdbc:mysql://172.19.103.71:1521/orcl?user=hos&password=hos&useUnicode=true&characterEncoding=UTF-8 //jdbc:sqlserver://172.19.103.71:1521/orcl?user=hos&password=hos DBHelper dbTemp = new DBHelper(); DataSource source = dbTemp.load(DataSource.class, "select * from system_datasource"); String config = source.getConfig(); BasicDataSource dasicDataSource = new BasicDataSource(); if (config.contains("oracle")) { //oracle数据库 dasicDataSource.setUrl(source.getConfig()); dasicDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver"); String[] s1 = config.split("@"); String[] s2 = s1[0].split(":"); String[] s3 = s2[3].split("/"); dasicDataSource.setUsername(s3[0]); dasicDataSource.setPassword(s3[1]); System.out.println("config:" + config); System.out.println("username:" + s3[0]); System.out.println("password:" + s3[1]); } else if (config.contains("mysql")) { //mysql数据库 dasicDataSource.setUrl(source.getConfig()); dasicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); String[] s1 = config.split("\\?"); String[] s2 = s1[1].split("&"); dasicDataSource.setUsername(s2[0].split("=")[1]); dasicDataSource.setPassword(s2[1].split("=")[1]); System.out.println("config:" + config); System.out.println("username:" + s2[0].split("=")[1]); System.out.println("password:" + s2[1].split("=")[1]); } else if (config.contains("sqlserver")) { //sqlserver数据库 dasicDataSource.setUrl(source.getConfig()); dasicDataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String[] s1 = config.split("\\?"); String[] s2 = s1[1].split("&"); dasicDataSource.setUsername(s2[0].split("=")[1]); dasicDataSource.setPassword(s2[1].split("=")[1]); System.out.println("config:" + config); System.out.println("username:" + s2[0].split("=")[1]); System.out.println("password:" + s2[1].split("=")[1]); } jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(dasicDataSource); } System.out.println(jdbcTemplate.queryForMap("select 1 from dual")); System.out.println(jdbcTemplate.queryForList(sql)); JSONArray jo = JSONArray.fromObject(jdbcTemplate.queryForList(sql)); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setRootName("req"); xmlSerializer.setElementName("data"); xmlSerializer.setTypeHintsEnabled(false);//设置data class="object" 没有class // xmlSerializer.setForceTopLevelObject(false); // xmlSerializer.setRemoveNamespacePrefixFromElements(false); String xml = xmlSerializer.write(jo); return xml; } catch (Exception e1) { e1.printStackTrace(); return "false"; } } }