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);
}
}
}