是否可以使用JDBC创建一个标准方法来执行从 Java到SQL Server 的参数化查询?
以下是我如何创建与db的连接池:
static ConnectionPool pool;
public static void crearPool(){
try {
Class c = Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Driver driver = (Driver) c.newInstance();
DriverManager.registerDriver(driver);
String url = "jdbc:sqlserver://localhost:1433;database=STAZIONE;";
pool = new ConnectionPool("local",5, 20, 40, 180, url, "b_lightyear", "BeyondInfinity");
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException ex) {/*Error Message*/}
}
以下是我认为每个 DML查询的标准方法是:
public static int QueryDML(String consulta,Object []data){
int result = 0;
PreparedStatement prpdStm = null;
try{
Connection cnx = pool.getConnection(clsConexion.espera);
if(conexion!=null){
prpdStm = conexion.prepareStatement(consulta,,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
for(int position =1; position<data.length;position++){
prpdStm.setObject(position, data[position-1]);
}result = prpdStm.executeUpdate();
} else{/*Message*/}
} catch (SQLException ex) {/*Error Message*/}
return result;
}
我想知道的是 prpdStm.setObject(position, data[position-1]);
是否适用于任何类型的数据 - &gt;(String
,Integer
,Double
等等......)?
答案 0 :(得分:2)
我想知道的是prpdStm.setObject(position,data [position-1]);将适用于任何类型的数据 - &gt;(String,Integer,Double等)?
简短回答:是的。
PreparedStatement.setObject()
JavaDoc -
JDBC规范指定了从Java对象类型到SQL类型的标准映射。在发送到数据库之前,给定的参数将转换为相应的SQL类型。