JSP网站开发基础总结《四》
经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查。
0、数据库对象创建:
在JAVASE基础知识总结时,就为大家点明了,JAVA是一种面向对象编程语言,所以我们再进行数据库创建之前,要先创建一个对象类。
/* * 实例化数据库中的对象 */ public class Student { private int id;//学生ID private String name;//学生姓名 private int sex;//学生性别 private int year;//学生年龄 private String from;//学生故乡 private String school;//学生所在学校 //为属性添加set()、get()方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } }
1、接口创建:
这里采用了面向接口编程,方便我们管理我们的数据库操作方法。
/* * 数据库操作方法接口 */ public interface StudentMa { public boolean add(Student student);//添加 public boolean del(int id);//删除 public boolean update(Student student);//修改 public Student getById(int id);//精确查询 public List<Student> getByName(String name);//模糊查询 public List<Student> getAll();//遍历 }
2、增加操作:
如何通过JAVA语句为数据库添加数据呢?下面就是具体的方法实现。
public boolean add(Student student) { boolean flag = false; Connection conn = null; PreparedStatement pst = null; conn = DBO.getConnection(); String sql = "insert into students (name,sex,year,from,school) values (?,?,?,?,?)";//'?'表示占位符 try { pst = conn.prepareStatement(sql); pst.setString(1, student.getName()); pst.setInt(2, student.getSex()); pst.setInt(3, student.getYear()); pst.setString(4, student.getFrom()); pst.setString(5, student.getSchool()); int n = pst.executeUpdate(); if(n>0){ flag = true; } } catch (SQLException e) { e.printStackTrace(); } return flag; }
3、删除操作:
如何通过JAVA语句删除数据库中的数据呢?下面就是具体的方法实现。
public boolean del(int id) { boolean flag = false; Connection conn = null; PreparedStatement pst = null; conn = DBO.getConnection(); String sql = "delete from students where id="+id; try { pst = conn.prepareStatement(sql); int n = pst.executeUpdate(); if(n>0){ flag = true; } } catch (SQLException e) { e.printStackTrace(); } return flag; }
4、修改操作:
如何通过JAVA语句修改数据库中的数据呢?下面就是具体的方法实现。
public boolean update(Student student) { boolean flag = false; Connection conn = null; PreparedStatement pst = null; conn = DBO.getConnection(); String sql = "update students set name=?,sex=?,year=?,from=?,school=? where id=?";//'?'表示占位符 try { pst = conn.prepareStatement(sql); pst.setString(1, student.getName()); pst.setInt(2, student.getSex()); pst.setInt(3, student.getYear()); pst.setString(4, student.getFrom()); pst.setString(5, student.getSchool()); pst.setInt(6, student.getId()); int n = pst.executeUpdate(); if(n>0){ flag = true; } } catch (SQLException e) { e.printStackTrace(); } return flag; }
5、查询操作:
a、精确查询:
如何通过JAVA语句精确查找数据库中的数据呢?下面就是具体的方法实现。
public Student getById(int id) { Student student = new Student(); Connection conn = null; Statement st = null; ResultSet rs = null; conn = DBO.getConnection(); String sql = "select * from students where id="+id; try { st = conn.createStatement(); rs = st.executeQuery(sql); while(rs.next()){ student.setId(id); student.setName(rs.getString("name")); student.setSex(rs.getInt("sex")); student.setYear(rs.getInt("year")); student.setFrom(rs.getString("from")); student.setSchool(rs.getString("school")); } } catch (SQLException e) { e.printStackTrace(); } return student; }
b、模糊查询:
如何通过JAVA语句模糊查找数据库中的数据呢?下面就是具体的方法实现。
public List<Student> getByName(String name) { List<Student> list = null; Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; conn = DBO.getConnection(); String sql = "select * from students where name like ?"; try { pst = conn.prepareStatement(sql); pst.setString(1, "%"+name+"%"); rs = pst.executeQuery(); while(rs.next()){ Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setSex(rs.getInt("sex")); student.setYear(rs.getInt("year")); student.setFrom(rs.getString("from")); student.setSchool(rs.getString("school")); list.add(student); } } catch (SQLException e) { e.printStackTrace(); } return list; }
6、遍历操作:
如何通过JAVA语句遍历数据库中的数据呢?下面就是具体的方法实现。
public List<Student> getAll() { List<Student> list = new ArrayList<Student>(); Connection conn = null; Statement st = null; ResultSet rs = null; conn = DBO.getConnection(); String sql = "select * from students"; try { st = conn.createStatement(); rs = st.executeQuery(sql); while(rs.next()){ Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setSex(rs.getInt("sex")); student.setYear(rs.getInt("year")); student.setFrom(rs.getString("from")); student.setSchool(rs.getString("school")); list.add(student); } } catch (SQLException e) { e.printStackTrace(); } return list; }
好了到这里,关于数据库的增删改查操作的JAVA实现已经为大家总结完毕。下一篇select实现jsp页面与数据库交互。