一、PreparedStatement简介
PreparedStatement是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据表中准备好一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后再进行设置。
项目开发一般用PreparedStatement,不用Statement。
二、INSERT、UPDATE和DELETE的使用
import java.sql.Connection; import java.sql.PreparedStatement; import model.Book; import util.DbUtil; public class demo1 { /** * 插入图书 * @param book * @throws Exception */ private static void addBook(Book book) throws Exception{ DbUtil dbUtil = new DbUtil(); String sql="insert into t_book values(null,?,?,?)";//插入数据 Connection con = dbUtil.getcon();//获取数据库连接 PreparedStatement psta = con.prepareStatement(sql);//实例化一个PreparedStatement对象 psta.setString(1, book.getBookName());//给第一个问号设置值 psta.setString(2, book.getAuthor());//给第二个问号设置值 psta.setFloat(3, book.getPrice());//给第三个问号设置值 int result = psta.executeUpdate();//执行sql语句 if(result == 1){ System.out.println("插入数据成功"); }else{ System.out.println("插入数据失败"); } dbUtil.close(psta, con);//关闭数据库连接 } /** * 更新图书 * @param book * @throws Exception */ private static void updateBook(Book book) throws Exception{ DbUtil dbUtil = new DbUtil(); Connection con = dbUtil.getcon(); String sql="update t_book set bookName=?,author=?,price=? where id=?"; PreparedStatement psta = con.prepareStatement(sql); psta.setString(1, book.getBookName());//给第一个问号设置值 psta.setString(2, book.getAuthor());//给第二个问号设置值 psta.setFloat(3, book.getPrice());//给第三个问号设置值 psta.setInt(4, book.getId());//给第四个问号设置值 int result = psta.executeUpdate();//提交数据,执行sql语句 if(result == 1){ System.out.println("更新数据成功"); }else{ System.out.println("更新数据失败"); } dbUtil.close(psta, con);//关闭连接 } /** * 删除图书 * @param index * @throws Exception */ private static void deleteBook(int index) throws Exception{ DbUtil dbUtil = new DbUtil(); Connection con = dbUtil.getcon(); String sql="delete from t_book where id=?"; PreparedStatement psta = con.prepareStatement(sql); psta.setInt(1, index); int result = psta.executeUpdate(); if(result == 1){ System.out.println("删除数据成功"); }else{ System.out.println("删除数据失败"); } dbUtil.close(psta, con);//关闭连接 } public static void main(String[] args) throws Exception { /*Book book = new Book("java","你好",48); addBook(book);//插入数据 */ /*Book book = new Book(1,"java1","你不好",34); updateBook(book);//更新数据库*/ deleteBook(2); } }