Browse Source

sql提交

esb 9 years ago
parent
commit
bd879bc472

+ 44 - 2
Hos-Resource-WS/src/main/java/com.yihu.ehr/service/SystemManager.java

@ -15,7 +15,9 @@ import com.yihu.ehr.service.thread.ThreadManage;
import com.yihu.ehr.util.httpclient.EsbHttp;
import com.yihu.ehr.util.httpclient.Response;
import com.yihu.ehr.ws.SQLWebService;
import org.apache.commons.dbcp2.BasicDataSource;
import org.json.JSONObject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -140,9 +142,49 @@ public class SystemManager implements ISystemManager {
        if (id != null && id.length() > 0) {
            sql = "update system_datasource set name = '" + name + "',config='" + config + "' where id='" + id + "'";
        }
        //更新数据源
        SQLWebService.db = new DBHelper("new", config);
        if (db.execute(sql)) {
            //更新数据源//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
            BasicDataSource dasicDataSource = new BasicDataSource();
            if (config.contains("oracle")) {
                //oracle数据库
                dasicDataSource.setUrl(config);
                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);
                System.out.println("username:" + s3[0]);
                System.out.println("password:" + s3[1]);
            } else if (config.contains("mysql")) {
                //mysql数据库
                dasicDataSource.setUrl(config);
                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);
                System.out.println("username:" + s2[0].split("=")[1]);
                System.out.println("password:" + s2[1].split("=")[1]);
            } else if (config.contains("sqlserver")) {
                //sqlserver数据库
                dasicDataSource.setUrl(config);
                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);
                System.out.println("username:" + s2[0].split("=")[1]);
                System.out.println("password:" + s2[1].split("=")[1]);
            }
            SQLWebService.jdbcTemplate = new JdbcTemplate();
            SQLWebService.jdbcTemplate.setDataSource(dasicDataSource);
            return Result.success("保存成功!");
        } else {
            return Result.error(db.errorMessage);

+ 68 - 7
Hos-Resource-WS/src/main/java/com.yihu.ehr/ws/SQLWebService.java

@ -3,7 +3,11 @@ 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;
@ -12,16 +16,73 @@ import javax.jws.WebService;
 */
@WebService(endpointInterface = "com.yihu.ehr.ws.inf.ISQLWebService", serviceName = "testWS")
public class SQLWebService implements ISQLWebService {
    public static DBHelper db = null;
    public static JdbcTemplate jdbcTemplate = null;
    @Override
    public String excuteSQL(String sql) {
        if (db == null) {
            DBHelper dbTemp = new DBHelper();
            DataSource source = dbTemp.load(DataSource.class, "select * from system_datasource");
            db = new DBHelper("new", source.getConfig());
        }
        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]);
        return JSONObject.fromObject(db.query(sql)).toString();
                }
                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";
        }
    }
}

+ 2 - 1
Hos-Resource-WS/src/main/resources/config/dbhelper.properties

@ -1,2 +1,3 @@
defaultName = localDB
defaultUri = jdbc:sqlite::resource:db/localDB.db
#defaultUri = jdbc:sqlite::resource:db/localDB.db
defaultUri = jdbc:sqlite://E:/idea_workspace/jkzl_git/esb/Hos-Resource-WS/src/main/resources/db/localDB.db

BIN
Hos-Resource-WS/src/main/resources/db/localDB.db


+ 3 - 3
Hos-Resource-WS/src/main/webapp/WEB-INF/web.xml

@ -65,19 +65,19 @@
        <init-param>
            <param-name>notCheckURLList</param-name>
            <param-value>
                /loginPage;/system/loginAction;/error;/dataAcquisition/getData;/dataAcquisition/getDataAcquisition;
                /service/*;/loginPage;/system/loginAction;/error;/dataAcquisition/getData;/dataAcquisition/getDataAcquisition;
            </param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CheckLoginFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <url-pattern>/system</url-pattern>
    </filter-mapping>
    <!-- =======================CXF配置 start================== -->
    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>