动态参数是指参数个数、类型在定义时均是固定不变的,可根据需要在执行时传入!
例如:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BaseDao {
public Connection con;
public PreparedStatement pstmt;
public ResultSet rs;
/**
* 开库
*/
public void open(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=FinancingDB","sa","sa");
} catch (Exception e) {
System.out.println("开库错误:"+e.getMessage());
}
}
/**
* 关库
*/
public void close(){
try {
if(rs!=null)
rs.close();
if(pstmt!=null)
pstmt.close();
if(con!=null)
con.close();
} catch (Exception e) {
System.out.println("关库错误:"+e.getMessage());
}
}
/**
* 执行增删改
* @param sql
* @param params
* @return
*/
public int executeUpdate(String sql,Object...params){
int row=0;
try {
open();
pstmt=con.prepareStatement(sql);
if(params!=null && params.length>0){
for(int i=0;i
}
}
row=pstmt.executeUpdate();
} catch (Exception e) {
System.out.println("执行增删改错误:"+e.getMessage());
} finally{
close();
}
return row;
}
}
public class UserDao extends BaseDao{
public int addUser(User user){
String sql="insert into Users values(?,?,?,?,?)";
return super.executeUpdate(sql,user.getName(),user.getPass(),user.getSex(),user.getAge(),user.getMail();
}
public int deleteUser(int id){
String sql="delete Users from userid=?";
return super.executeUpdate(sql,id);
}
}
相对于静态参数而言的。动态就是不断变化的,不是一成不变的。随时可能改变的意思。