13、preparedStatement的用法

PreparedStatement

  • 它是Statement接口的子接口;
  • 强大之处:防止sql攻击;提高代码的可读性、可维护性;提高效率
  • 学习PreparedStatement的用法:
    1、如何得到PreparedStatement对象(pstmt):给出sql模板;调用connection的 PreparedStatement(String sql模板)
    2、为参数赋值:调用pstmt的setXXX()系列方法,为sql模板中的?赋值
    3、调用pstmt的executeUpdate()或executeQuery()的无参方法
string sql="select * from mydb1 where usename=? and password=?";//sql模板
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,username);//给第一个问好赋值,值为username
pstmt.setString(2,password);//给第一个问好赋值,值为password
pstmt.executeQuery();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.java.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.java.model.Book; import com.java.util.StringUtil; /** * 图书Dao类 * @author Administrator * */ public class BookDao { /** * 图书添加 * @param con * @param book * @return * @throws Exception */ public int add(Connection con,Book book)throws Exception{ String sql="insert into t_book values(null,?,?,?,?,?,?)"; PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1, book.getBookName()); pstmt.setString(2, book.getAuthor()); pstmt.setString(3, book.getSex()); pstmt.setFloat(4, book.getPrice()); pstmt.setInt(5, book.getBookTypeId()); pstmt.setString(6, book.getBookDesc()); return pstmt.executeUpdate(); } /** * 图书信息查询 * @param con * @param book * @return * @throws Exception */ public ResultSet list(Connection con,Book book)throws Exception{ StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id"); if(StringUtil.isNotEmpty(book.getBookName())){ sb.append(" and b.bookName like '%"+book.getBookName()+"%'"); } if(StringUtil.isNotEmpty(book.getAuthor())){ sb.append(" and b.author like '%"+book.getAuthor()+"%'"); } if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){ sb.append(" and b.bookTypeId="+book.getBookTypeId()); } PreparedStatement pstmt=con.prepareStatement(sb.toString()); return pstmt.executeQuery(); } /** * 图书信息删除 * @param con * @param id * @return * @throws Exception */ public int delete(Connection con,String id)throws Exception{ String sql="delete from t_book where id=?"; PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1, id); return pstmt.executeUpdate(); } /** * 图书信息修改 * @param con * @param book * @return * @throws Exception */ public int update(Connection con,Book book)throws Exception{ String sql="update t_book set bookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=? where id=?"; PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1, book.getBookName()); pstmt.setString(2, book.getAuthor()); pstmt.setString(3, book.getSex()); pstmt.setFloat(4, book.getPrice()); pstmt.setString(5, book.getBookDesc()); pstmt.setInt(6, book.getBookTypeId()); pstmt.setInt(7, book.getId()); return pstmt.executeUpdate(); } /** * 指定图书类别下是否存在图书 * @param con * @param bookTypeId * @return * @throws Exception */ public boolean existBookByBookTypeId(Connection con,String bookTypeId)throws Exception{ String sql="select * from t_book where bookTypeId=?"; PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1, bookTypeId); ResultSet rs=pstmt.executeQuery(); return rs.next(); } } 部分代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值