SQLWebService.java 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.yihu.ehr.ws;
  2. import com.yihu.ehr.dbhelper.jdbc.DBHelper;
  3. import com.yihu.ehr.model.DataSource;
  4. import com.yihu.ehr.ws.inf.ISQLWebService;
  5. import net.sf.json.JSONArray;
  6. import net.sf.json.JSONObject;
  7. import net.sf.json.xml.XMLSerializer;
  8. import org.apache.commons.dbcp2.BasicDataSource;
  9. import org.springframework.jdbc.core.JdbcTemplate;
  10. import javax.jws.WebService;
  11. /**
  12. * Created by Administrator on 2016/5/19.
  13. */
  14. @WebService(endpointInterface = "com.yihu.ehr.ws.inf.ISQLWebService", serviceName = "testWS")
  15. public class SQLWebService implements ISQLWebService {
  16. public static JdbcTemplate jdbcTemplate = null;
  17. @Override
  18. public String excuteSQL(String sql) {
  19. try {
  20. if (jdbcTemplate == null) {
  21. //jdbc:oracle:thin:hos/hos@//172.19.103.71:1521/orcl
  22. //jdbc:mysql://172.19.103.71:1521/orcl?user=hos&password=hos&useUnicode=true&characterEncoding=UTF-8
  23. //jdbc:sqlserver://172.19.103.71:1521/orcl?user=hos&password=hos
  24. DBHelper dbTemp = new DBHelper();
  25. DataSource source = dbTemp.load(DataSource.class, "select * from system_datasource");
  26. String config = source.getConfig();
  27. BasicDataSource dasicDataSource = new BasicDataSource();
  28. if (config.contains("oracle")) {
  29. //oracle数据库
  30. dasicDataSource.setUrl(source.getConfig());
  31. dasicDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
  32. String[] s1 = config.split("@");
  33. String[] s2 = s1[0].split(":");
  34. String[] s3 = s2[3].split("/");
  35. dasicDataSource.setUsername(s3[0]);
  36. dasicDataSource.setPassword(s3[1]);
  37. System.out.println("config:" + config);
  38. System.out.println("username:" + s3[0]);
  39. System.out.println("password:" + s3[1]);
  40. } else if (config.contains("mysql")) {
  41. //mysql数据库
  42. dasicDataSource.setUrl(source.getConfig());
  43. dasicDataSource.setDriverClassName("com.mysql.jdbc.Driver");
  44. String[] s1 = config.split("\\?");
  45. String[] s2 = s1[1].split("&");
  46. dasicDataSource.setUsername(s2[0].split("=")[1]);
  47. dasicDataSource.setPassword(s2[1].split("=")[1]);
  48. System.out.println("config:" + config);
  49. System.out.println("username:" + s2[0].split("=")[1]);
  50. System.out.println("password:" + s2[1].split("=")[1]);
  51. } else if (config.contains("sqlserver")) {
  52. //sqlserver数据库
  53. dasicDataSource.setUrl(source.getConfig());
  54. dasicDataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  55. String[] s1 = config.split("\\?");
  56. String[] s2 = s1[1].split("&");
  57. dasicDataSource.setUsername(s2[0].split("=")[1]);
  58. dasicDataSource.setPassword(s2[1].split("=")[1]);
  59. System.out.println("config:" + config);
  60. System.out.println("username:" + s2[0].split("=")[1]);
  61. System.out.println("password:" + s2[1].split("=")[1]);
  62. }
  63. jdbcTemplate = new JdbcTemplate();
  64. jdbcTemplate.setDataSource(dasicDataSource);
  65. }
  66. System.out.println(jdbcTemplate.queryForMap("select 1 from dual"));
  67. System.out.println(jdbcTemplate.queryForList(sql));
  68. JSONArray jo = JSONArray.fromObject(jdbcTemplate.queryForList(sql));
  69. XMLSerializer xmlSerializer = new XMLSerializer();
  70. xmlSerializer.setRootName("req");
  71. xmlSerializer.setElementName("data");
  72. xmlSerializer.setTypeHintsEnabled(false);//设置data class="object" 没有class
  73. // xmlSerializer.setForceTopLevelObject(false);
  74. // xmlSerializer.setRemoveNamespacePrefixFromElements(false);
  75. String xml = xmlSerializer.write(jo);
  76. return xml;
  77. } catch (Exception e1) {
  78. e1.printStackTrace();
  79. return "false";
  80. }
  81. }
  82. }