12.4

发布时间 2023-12-18 21:57:29作者: 刘梦磊

sql语句预编译和执行代码
package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import Entity.Book;
import Util.jdbc;

public class BookDao implements BookDaoimpl {

@Override
//增
public int insertbook(Book book) throws SQLException {
// TODO Auto-generated method stub
Connection con = jdbc.con();//连接数据库
//sql语句的预编译防止sql注入 ,?代表占位符
//表名和属性要与数据库表明和属性一至
String sql = "insert into book (name,age,sex,dizhi) values(?,?,?,?)";
//创建PreparedStatement对象用来执行sql语句
PreparedStatement per = con.prepareStatement(sql);
//添加和得到各个属性的值
per.setString(1, book.getName());
per.setInt(2, book.getAge());
per.setString(3, book.getSex());
per.setString(4, book.getDizhi());
//执行sql语句,executeUpdate()获取影响的行数并返回
int rows = per.executeUpdate();
//返回执行影响的行数
return rows;
}
//删
@Override
public int delete(int id) throws SQLException {
// TODO Auto-generated method stub
//连接数据库
Connection con = jdbc.con();
//删除sql语句预编译
String sql = "delete from book where id=?";
PreparedStatement per = con.prepareStatement(sql);
//获取删除的id
per.setInt(1, id);
//执行删除sql语句
int wors = per.executeUpdate();
//返回影响行数,executeUpdate()获取影响的行数并返回
return wors;
}
//改
@Override
public int update(Book book) throws SQLException {
//获取连接
Connection con = jdbc.con();
// TODO Auto-generated method stub
//sql语句编译
String sql = "update book set name=?,age=?,sex=?,dizhi=?where id=?";
PreparedStatement per = con.prepareStatement(sql);
//得到修改的数据
per.setString(1, book.getName());
per.setInt(2, book.getAge());
per.setString(3, book.getSex());
per.setString(4, book.getDizhi());
per.setInt(5, book.getId());
//执行修改sql语句,executeUpdate()获取影响的行数并返回
int wors = per.executeUpdate();
//返回影响行数
return wors;
}
//查
@Override
public List<Book> selectBook() throws SQLException {
// TODO Auto-generated method stub
//获取连接
Connection con = jdbc.con();
//查询语句编译
String sql = "select * from book";
PreparedStatement per = con.prepareStatement(sql);
//executeQuery()方法查询到数据库的相应结果存放到ResultSet
ResultSet rest = per.executeQuery();
//建立list集合存放输出查询结果
List<Book> book = new ArrayList<Book>();
//rest.next()方法将指针下移直到没下一行返回FALSE。
while (rest.next()) {
//将查询结果依次储存
int id = rest.getInt("id");
String name = rest.getString("name");
int age = rest.getInt("age");
String sex = rest.getString("sex");
String dizhi = rest.getString("dizhi");
//建立一个新对象放置结果
Book book1 = new Book(id, name, age, sex, dizhi);
//将结果增加到list集合中
book.add(book1);
}
返回查询结果
return book;

}

}
————————————————
版权声明:本文为CSDN博主「小明同学`」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_63229717/article/details/126680720