通用连接类
publicclasscommon_sql_jdbc{
privateConnection conn;
publicConnectiongetConnection(){
try{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();// 打印驱动加载错误详细信息
}
PropertiesUtil util =newPropertiesUtil("dbconfig.properties");
String jdbc_sqlserver = util.readProperty("jdbc.url.jeecg");
String username_sqlserver = util.readProperty("jdbc.username.jeecg");
String pwd_sqlserver = util.readProperty("jdbc.password.jeecg");
conn=DriverManager.getConnection(jdbc_sqlserver,username_sqlserver,pwd_sqlserver);
if(conn==null){
//System.out.println("数据库连接失败");
}else{
//System.out.println("数据库连接成功");
}
}catch(Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败:"+e.getMessage());
}
returnconn;
}
}
2.调用存储过程通用方法
/*
* 通用方法,调用带输出参数的存储过程
* para:多个Object(任意类型)
* return:一个string
*/
publicstaticStringcall_sp(String sp,Object...input)throwsSQLException{
String ret="";
intinput_nbr=input.length;
String statement="";
conn=newcommon_sql_jdbc().getConnection();
if(conn==null){
//System.out.println("数据库链接失败");
ret="0:数据库链接失败";
}else{
try{
statement="
statement=statement+"?) }";//一个输出参数
CallableStatement cs=conn.prepareCall(statement);
for(inti=1;i
cs.setObject(i,input[i-1]);//每个输入参数赋值
}
cs.registerOutParameter(input_nbr+1, Types.VARCHAR);
cs.execute();
ret="1:"+cs.getString(input_nbr+1);
}catch(Exception e) {
ret="0:调用失败"+e.getMessage();
}
}
conn.close();
returnret;
}
3.调用方法
@RequestMapping(params ="call_sp")
@ResponseBody
publicAjaxJsoncall_sp(){
AjaxJson j =newAjaxJson();
Map m=newHashMap();
try{
String ret;
ret=common_sql_interface_sqlserver.call_sp("test5",3,"para2");
j.setMsg(ret);
j.setSuccess(true);
}catch(Exception e) {
//e.printStackTrace();
System.out.println("失败:"+e.getMessage());
j.setSuccess(false);
}
returnj;
}
4.SP就不贴了
5.结果
6.其他
本例只是尝试了一种方式,其实JEECG中已经有与此不太一样的类,例如JdbcDao、SimpleJdbcTemplate,当然还有JdbcTemplate。
笔者简介:
领取专属 10元无门槛券
私享最新 技术干货