对数据库的增删

这里写图片描述

package com.biz;

import java.util.List;

import com.model.Person;
/*
* 业务逻辑层操作person的接口
*/
public interface PersonBiz {

int addPerson(Person p); //添加的方法
int deletePerson(int id); //根据ID删除
List<Person> getAllperson(); //查询所有学生
Person login(String name,int age); //根据用户名和年龄登录
int updatePerson(Person p); //修饰的方法
Person getPersonById(int id); //根据编号查用户

}

package com.biz.impl;

import java.util.List;

import com.biz.PersonBiz;
import com.dao.PersonDao;
import com.dao.impl.PersonDaoImpl;
import com.model.Person;

public class PersonBizImpl implements PersonBiz{

PersonDao pd = new PersonDaoImpl();
@Override
public int addPerson(Person p) {

    return pd.addPerson(p);
}

@Override
public int deletePerson(int id) {
    return pd.deletePerson(id);
}

@Override
public List<Person> getAllperson() {

    return pd.getAllperson();
}

@Override
public Person login(String name, int age) {

    return pd.login(name, age);
}

@Override
public int updatePerson(Person p) {

    return pd.updatePerson(p);
}

@Override
public Person getPersonById(int id) {
    return pd.getPersonById(id);
}

}

package com.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
* 操作数据库的工具类
*
*/
public class BaseDao {

/**
 * 数据数据库的方法
 * @return
 */
public Connection getConn(){
    Connection conn = null;
    //加载驱动
    try {
        Class.forName("org.sqlite.JDBC");
        conn = DriverManager.getConnection("jdbc:sqlite:d:/romsemary.db");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}

/**
 * 释放资源
 * @param conn
 * @param ps
 * @param rs
 */
public void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){
    try {
        if(rs!=null){
            rs.close();
        }
        if(ps!=null){
            ps.close();
        }
        if(conn!=null){
            conn.close();
        }
    } catch (SQLException e) {
    }
}

}

package com.dao;

import java.util.List;

import com.model.Person;

/*
* 数据访问层操作person的接口
*/
public interface PersonDao {

int addPerson(Person p); //添加的方法
int deletePerson(int id); //根据ID删除
List<Person> getAllperson(); //查询所有学生
Person login(String name,int age); //根据用户名和年龄登录
int updatePerson(Person p); //修饰的方法
Person getPersonById(int id); //根据编号查用户

}

package com.dao.impl;

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 com.dao.BaseDao;
import com.dao.PersonDao;
import com.model.Person;

public class PersonDaoImpl extends BaseDao implements PersonDao{

/**
 * 添加的方法
 * @param p
 * @return
 */
public int addPerson(Person p) {
    Connection conn = null;
    PreparedStatement ps = null;
    int rs = 0;

    //得到连接
    conn = this.getConn();

    try {
        String sql ="insert into tab1509 (name,age) values(?,?)";
        ps = conn.prepareStatement(sql);
        ps.setString(1, p.getName());
        ps.setInt(2, p.getAge());
        //执行SQL语句
        rs = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, null);
    }
    return rs;
}

@Override
public int deletePerson(int id) {
    Connection conn = null;
    PreparedStatement ps = null;
    int rs = 0;

    //得到连接
    conn = this.getConn();

    try {
        String sql ="delete from tab1509 where id=?";
        ps = conn.prepareStatement(sql);
        ps.setInt(1, id);

        //执行SQL语句
        rs = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, null);
    }
    return rs;
}

@Override
public List<Person> getAllperson() {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    List<Person> list = new ArrayList<>();

    //得到连接
    conn = this.getConn();

    try {
        String sql ="select * from tab1509";
        ps = conn.prepareStatement(sql);
        //执行SQL语句
        rs =ps.executeQuery();
        while(rs.next()){
            Person  p = new Person();
            p.setId(rs.getInt("id"));
            p.setName(rs.getString("name"));
            p.setAge(rs.getInt("age"));
            list.add(p);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, rs);
    }
    return list;
}

@Override
public Person login(String name, int age) {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    Person p = null;

    //得到连接
    conn = this.getConn();

    try {
        String sql ="select * from tab1509 where name=? and age=?";
        ps = conn.prepareStatement(sql);
        ps.setString(1,name);
        ps.setInt(2, age);
        //执行SQL语句
        rs =ps.executeQuery();
        if(rs.next()){
            p = new Person();
            p.setId(rs.getInt("id"));
            p.setName(rs.getString("name"));
            p.setAge(rs.getInt("age"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, rs);
    }
    return p;
}

/**
 * 修改用户信息
 */
public int updatePerson(Person p) {
    Connection conn = null;
    PreparedStatement ps = null;
    int rs = 0;

    //得到连接
    conn = this.getConn();

    try {
        String sql ="update tab1509 set name=?,age=? where id=?";
        ps = conn.prepareStatement(sql);
        ps.setString(1, p.getName());
        ps.setInt(2, p.getAge());
        ps.setInt(3,p.getId());

        //执行SQL语句
        rs = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, null);
    }
    return rs;
}

/**
 * 根据编号查用户
 */
public Person getPersonById(int id) {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    Person p = null;

    //得到连接
    conn = this.getConn();

    try {
        String sql ="select * from tab1509 where id=?";
        ps = conn.prepareStatement(sql);
        ps.setInt(1, id);
        //执行SQL语句
        rs =ps.executeQuery();
        if(rs.next()){
            p = new Person();
            p.setId(rs.getInt("id"));
            p.setName(rs.getString("name"));
            p.setAge(rs.getInt("age"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.closeAll(conn, ps, rs);
    }
    return p;
}

}

package com.model;
/*
* person实体类
*/
public class Person {

private int id; //编号
private String name; //姓名
private int age; //年龄
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 getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
public Person() {
    super();
}
public Person(int id, String name, int age) {
    super();
    this.id = id;
    this.name = name;
    this.age = age;
}

}

package com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;
import com.model.Person;

/**
* Servlet implementation class BeforeUpateServlet
*/
public class BeforeUpateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public BeforeUpateServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //得到用户的编号
    int id = Integer.parseInt(request.getParameter("pid"));
    //创建业务逻辑层,调用根据编号查用户的方法
    PersonBiz pb = new PersonBizImpl();
    Person p = pb.getPersonById(id);
    if(p!=null){
        //把用户存在request里
        request.setAttribute("person", p);
        request.getRequestDispatcher("update.jsp").forward(request, response);
    }
}

}

package com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;

/**
* Servlet implementation class DeleteServlet
*/
public class DeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public DeleteServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //得到传过来的参数的值
    int id = Integer.parseInt(request.getParameter("pid"));
    //创建业务逻辑层对象
    PersonBiz pb = new PersonBizImpl();
    //调用删除的方法
    int rs = pb.deletePerson(id);
    if(rs>0){
        request.getRequestDispatcher("GetAllServlet").forward(request, response);
    }else{
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }

}

}

package com.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;
import com.model.Person;

/**
* Servlet implementation class GetAllServlet
*/
public class GetAllServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public GetAllServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置响应的编码格式
    response.setCharacterEncoding("GBK");
    PersonBiz pb = new PersonBizImpl();
    List<Person> list=  pb.getAllperson();
    //把list存在request对象里,request的作用域只是在一次请求范围内,所以要想达到数据共享的效果,只能转发
    request.setAttribute("list", list);
    request.getRequestDispatcher("index.jsp").forward(request, response);


}

}

package com.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;
import com.model.Person;

/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //先处理请求编码格式
    request.setCharacterEncoding("GBK");
    //设备响应的文档类型以及编码格式
    response.setContentType("text/html,charset=GBK");
    response.setCharacterEncoding("GBK");
    //得到用户名和密码
    String name = request.getParameter("uname");
    String pwd = request.getParameter("pwd");
    int age=0;
    if(pwd!=null){
        age = Integer.parseInt(pwd);
    }
    //调用业务逻辑层登录的方法
    //先创建业务逻辑层对象
    PersonBiz pb = new PersonBizImpl();
    Person p = pb.login(name, age); //调用登录的方法
    //通过响应对象得到一个打印流
    PrintWriter  out = response.getWriter();
    if(p!=null){
        out.print("您好,"+p.getName()+"欢迎您");
        out.flush();
    }else{
        out.print("查无此人");
        out.flush();
    }

    out.close();
}

}

package com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;
import com.model.Person;

/**
* Servlet implementation class RegisterServlet
*/
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public RegisterServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("**************进入到注册的servlet******************");
    //先处理请求的编码格式
    request.setCharacterEncoding("GBK");
    //设置响应的编码格式
    response.setCharacterEncoding("GBK");
    //得到用户名和密码
    String name = request.getParameter("uname");
    int pwd = Integer.parseInt(request.getParameter("pwd"));
    //构建一个person对象
    Person p = new Person();
    p.setName(name);
    p.setAge(pwd);
    //创建业务逻辑层的对象
    PersonBiz pb =  new PersonBizImpl();
    int result = pb.addPerson(p); //调用添加的方法
    if(result>0){
        response.sendRedirect("login.jsp");
    }else{
        request.getRequestDispatcher("login.jsp").forward(request, response);
    }
}

}

package com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.biz.PersonBiz;
import com.biz.impl.PersonBizImpl;
import com.model.Person;

/**
* Servlet implementation class UpdateServlet
*/
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public UpdateServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //先处理请求的编号格式
    request.setCharacterEncoding("GBK");
    response.setCharacterEncoding("GBK");
    //得到用户名和密码
    String name = request.getParameter("uname");
    int age = Integer.parseInt(request.getParameter("pwd"));
    int id = Integer.parseInt(request.getParameter("personId"));
    Person p = new Person();
    p.setName(name);
    p.setAge(age);
    p.setId(id);

    //创建业务逻辑层,调用修改的方法
    PersonBiz pb = new PersonBizImpl();
    int rs = pb.updatePerson(p);
    if(rs>0){
        request.getRequestDispatcher("GetAllServlet").forward(request, response);
    }else{
        request.getRequestDispatcher("update.jsp").forward(request, response);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值