预处理

PreparedStatement stmt = conn.prepareStatement(sql);
Statement stmt = conn.createStatement();//能过连接对象创建一个语句对象
 
    PreparedStatement是Statement的子接口
这两类的对象都是能过Connection对象创建,但创建的方法不同:
    Statement stmt = conn.createStatement();
 
    PreparedStatement stmt= conn.prepareStatement(String sql语句);
 
1.Statement语句中的sql语句是在执行时传参数;PreparedStatement语句中的sql语句是创建时传参数.
2.PreparedStatement语句中的sql语句允许使用?参数,Statement语句中的sql语句中参数是字符中拼接。
 
//在学生表(Student)中查"张三"的信息,"张三"是保存在变量name中
sql拼接:
String sql = "select * from student where name = '"+name+"'";
sql语句使用参数:
String sql = "select * from student where name = ?";
“?”是预留一个参数位,在执行之前完成替换就可以了。
 
再比如在"product"中表输入一个商品,商品的数据封装“p1”的商品对象中
前提条件:
Product p1 = new Product();
p1.setName("牙膏");
p1.setPrice(12);
p2.setAmount(1);
 
sql拼接:
    String sql = "insert product(pname, price, amount) values('"+p1.getName()+"',"+p1.getPrice()+","+p1.getAmount()+")";
sql语句使用参数:
    String sql = "insert product(pname, price, amount) values(?,?,?)";
 
替换参数的方法:
    pstmt.setXxx(编号,值);
    Xxx:数据库中对应数据类型
    编号:从1开始的“?”顺序
    值:要替换内容
stmt.setString(1,p1.getName());
stmt.setDouble(2,p1.getPrice());
stmt.setInt(3,p1.getAmount());
 
 
 
 
1 插入数据
public boolean ChaRu3(User user){
boolean flag=true;
Connection conn=null;
PreparedStatement ps=null; //创建PreparedStatement 对象
String sql= "insert into user (name,pwd) values(?,?)"; //sql语句不再采用拼接方式,应用占位符问号的方式写sql语句。
conn=DBConnUtil.getConn();
try {
ps=conn.prepareStatement(sql);
ps.setString(1, user.getName()); //对占位符设置值,占位符顺序从1开始,第一个参数是占位符的位置,第二个参数是占位符的值。
ps.setString(2, user.getPwd());
int i=ps.executeUpdate();
if(i==0){
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, ps, conn);
}
return flag;
 
}

 

 
 
2 修改数据
 
public boolean XiuGai3(User user){
boolean flag=true;
Connection conn=null;
PreparedStatement ps=null;
String sql="update user set pwd=? where name=?";
conn=DBConnUtil.getConn();
try {
ps=conn.prepareStatement(sql);
ps.setString(1, user.getPwd());
ps.setString(2, user.getName());
int i= ps.executeUpdate();
if(i==0){
flag=false;
}
 
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, ps, conn);
}
return flag;
}

 

 
 
3 删除数据
public boolean ShanChu3(int id){
boolean flag=true;
Connection conn=null;
PreparedStatement ps=null;
String sql="delete from user where id=?";
conn=DBConnUtil.getConn();
try {
ps=conn.prepareStatement(sql);
ps.setInt(1, id);
int i=ps.executeUpdate();
if(i==0){
flag=false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(null, ps, conn);
}
 
return flag;
}
 

 

4 查看数据
public List<User> ChaKan3(){
List<User> list= new ArrayList<User>();
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
String sql="select * from user";
conn=DBConnUtil.getConn();
try {
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
User user= new User();
user.setName(rs.getString("name"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnUtil.closeAll(rs, ps, conn);
}
 
return list;
}

 

 
posted @ 2018-01-04 10:23  zachary7  阅读(237)  评论(0编辑  收藏  举报