问题
项目中遇到一个需要,需要调用MES系统的一个存储过程。
环境
idea+SpringBoot+Gradle
代码
package com.atue.smarthome.bussiness.application;
import com.alibaba.fastjson.JSONObject;
import com.atue.smarthome.bussiness.interfaces.dto.SMTRequest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.springframework.stereotype.Service;
@Service
public class SMTService {
final static String URL = "jdbc:sqlserver://XX;DatabaseName=XX";
final static String SQLSERVERDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
final static String USERNAME = "XX";
final static String PASSWORD = "XX";
private static Connection connection = null;
public static Connection queryMesProcedure() {
try {
Class.forName(SQLSERVERDRIVER);
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
测试
package com.atue.smarthome.bussiness.util;
import com.atue.smarthome.bussiness.application.SMTService;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
public class test {
public static void main(String[] args) {
Connection connection = SMTService.queryMesProcedure();
String sql = "{call uspUnitComplete(?,?,?)}";
try{
CallableStatement proc = connection.prepareCall(sql);
proc.setLong(1, 111027880000206L);
proc.setInt(2, 100161);
proc.setInt(3, 1);
proc.execute();
connection.close();
}catch (SQLException e){
System.out.println("Msg:" + e.getMessage());
e.printStackTrace();
}
}
}
gradle配置
implementation("com.microsoft.sqlserver:mssql-jdbc")