利用该模式开发一个学生体质信息系统
1.建立对应数据库表结构的JavaBean-Student.java
package beans;
public class Student {
private String id;
private String name;
private String sex;
private int age;
private float weight;
private float hight;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public float getWeight() {
return weight;
}
public void setWeight(float weight) {
this.weight = weight;
}
public float getHight() {
return hight;
}
public void setHight(float hight) {
this.hight = hight;
}
public Student(){}
}
2.建立数据库连接与关闭释放资源的工具JavaBean类
package beans;
import java.sql.*;
public class DBConnect{
private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url="jdbc:sqlserver://localhost:1433; DatabaseName=stuinfo";
private static String user="sa";
private static String password="123456";
public static Connection getDBConnection(){
try{
Class.forName(driver);
Connection conn=DriverManager.getConnection(url, user, password);
return conn;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public static void closeDB(Connection conn,PreparedStatement pstmt,ResultSet rs){
try{
if(rs!=null)rs.close();
if(conn!=null) conn.close();
if(pstmt!=null) pstmt.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
3.建立实现数据库处理的接口
package beans;
import java.util.List;
public interface IStuDao {
public abstract void create(Student stu) throws Exception;//添加记录的方法
//public abstract void remove(Student stu) throws Exception; //删除记录的方法
public abstract Student find(Student stu) throws Exception; //查询记录的方法
public abstract List<Student> findAll() throws Exception; //列出全部的记录的方法
//public abstract void update(Student stu) throws Exception; //修改记录的方法
}
4.对接口的实现及其访问逻辑处理JavaBean类
package beans;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import beans.DBConnect;
public class StuDao implements IStuDao{
//protected static final String s="id,name,sex,age,weight,hight";
protected static String is="insert into StuInfo(id,name,sex,age,weight,hight) values(?,?,?,?,?,?)";
protected static String se="select * from StuInfo where id=?";
protected static String ud="update StuInfo set id=?,name=?,sex=?,age=?,weight=?,hight=?";
protected static String de="delete from StuInfo where id=?";
//实现向数据库添加记录的方法
public void create(Student stu) throws Exception{
Connection conn=null;
PreparedStatement pstmt=null;
try{
conn=DBConnect.getDBConnection();
pstmt=conn.prepareStatement(is);
pstmt.setString(1,stu.getId());
pstmt.setString(2,stu.getName());
pstmt.setString(3,stu.getSex());
pstmt.setInt(4,stu.getAge());
pstmt.setFloat(5,stu.getWeight());
pstmt.setFloat(6,stu.getHight());
pstmt.executeUpdate();
}finally{
DBConnect.closeDB(conn, pstmt, null);
}
}
//实现按条件查询记录的方法
public Student find(Student stu) throws Exception{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
Student stu2=null;
try{
conn=DBConnect.getDBConnection();
pstmt=conn.prepareStatement(se);
pstmt.setString(1,stu.getId());
rs=pstmt.executeQuery();
if(rs.next()){
stu2=new Student();
stu2.setId(rs.getString(1));
stu2.setName(rs.getString(2));
stu2.setSex(rs.getString(3));
stu2.setAge(rs.getInt(4));
stu2.setWeight(rs.getFloat(5));
stu2.setHight(rs.getFloat(6));
}
}finally{
DBConnect.closeDB(conn, pstmt, rs);
}
return stu2;
}
//实现列出数据库全部记录的方法
public List<Student> findAll() throws Exception{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<Student> student=new ArrayList<Student>();
conn=DBConnect.getDBConnection();
pstmt=conn.prepareStatement("select * from StuInfo");
rs=pstmt.executeQuery();
while(rs.next()){
Student stu2=new Student();
stu2.setId(rs.getString(1));
stu2.setName(rs.getString(2));
stu2.setSex(rs.getString(3));
stu2.setAge(rs.getInt(4));
stu2.setWeight(rs.getFloat(5));
stu2.setHight(rs.getFloat(6));
student.add(stu2);
}
DBConnect.closeDB(conn, pstmt, rs);
return student;
}
}
5.建立控制逻辑的Servlet
插入操作示例
package servlets;
//实现对数据库的插入操作
import java.io.IOException;
import beans.StuDao;
import beans.Student;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Servlet1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Student stu=new Student();
//String sid=request.getParameter("sid");
//String sname=request.getParameter("sname");
//String ssex=request.getParameter("ssex");
//int sage=Integer.parseInt(request.getParameter("sage"));
//float sweight=Float.parseFloat(request.getParameter("sweight"));
//float shight=Float.parseFloat(request.getParameter("shight"));
request.setCharacterEncoding("UTF-8");
stu.setId(request.getParameter("sid"));
stu.setName(request.getParameter("sname"));
stu.setSex(request.getParameter("ssex"));
stu.setAge(Integer.parseInt(request.getParameter("sage")));
stu.setWeight(Float.parseFloat(request.getParameter("sweight")));
stu.setHight(Float.parseFloat(request.getParameter("shight")));
StuDao sd=new StuDao();
try {
sd.create(stu);
} catch (Exception e) {
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
}
6.在jsp页面中调用Servlet
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>添加信息提交页面</title>
</head>
<body>
<form action="Servlet1" method="post">
<table border="0" width="238" height="252">
<tr><td>学号</td><td><input type="text" name="sid"></td></tr>
<tr><td>姓名</td><td><input type="text" name="sname"></td></tr>
<tr><td>性别</td><td><input type="text" name="ssex"></td></tr>
<tr><td>年龄</td><td><input type="text" name="sage"></td></tr>
<tr><td>体重</td><td><input type="text" name="sweight"></td></tr>
<tr><td>身高</td><td><input yupe="text" name="shight"></td></tr>
<tr align="center">
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>