BaseDao
package zc.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import zc.untils.ConfigManager;
public class BaseDao {
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 连接数据库
public boolean getConnection() {
try {
Class.forName(ConfigManager.getInstance().getString("driver"));
String url = ConfigManager.getInstance().getString("url");
String user = ConfigManager.getInstance().getString("user");
String password = ConfigManager.getInstance().getString("password");
connection = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
return false;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return true;
}
// 增删改返回Int类型的
public int upDate(String sql, Object[] params) {
int update = 0;
try {
if (this.getConnection()) {
ps = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
update = ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
return update;
}
// 用ResultSet接收
public ResultSet select(String sql, Object[] params) {
try {
if (this.getConnection()) {
ps = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
rs = ps.executeQuery();
}
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
// 释放资源
public static void close(Connection connection, PreparedStatement ps,ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Dao
package zc.dao;
import java.util.List;
import zc.entity.DeptEntity;
public interface Dao {
// 查询有多少条数据
public int getCount();
// pageNo当前页码 pageSize页面容量
public List<DeptEntity> selectPage(int pageNo, int pageSize);
// 添加数据
public boolean addDept(DeptEntity entity);
// 删除数据
public boolean deleteDept(DeptEntity entity);
// 根据ID改变名字
public boolean setDept(DeptEntity entity);
// 全查
public List<DeptEntity> allSelect();
}
Impl
package zc.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import zc.dao.BaseDao;
import zc.dao.Dao;
import zc.entity.DeptEntity;
public class DeptImpl extends BaseDao implements Dao {
//查询有多少条数据
public int getCount(){
int getcount=0;
String sql="select count(1) from dept";
Object[]params={};
ResultSet rs=this.select(sql, params);
try {
while(rs.next()){
getcount=rs.getInt(1);//等价于rs.getInt("did");
}
} catch (SQLException e) {
e.printStackTrace();
}
return getcount;
}
//pageNo当前页码 pageSize页面容量
public List<DeptEntity> selectPage(int pageNo,int pageSize){
List<DeptEntity>list=new ArrayList<DeptEntity>();
String sql="select *from dept limit ?,?";
Object[]params={(pageNo-1)*pageSize,pageSize};
ResultSet rs=this.select(sql, params);
try {
while(rs.next()){
DeptEntity entity=new DeptEntity();
int did=rs.getInt("did");
String dname=rs.getString("dname");
String demc=rs.getString("demc");
entity.setDid(did);
entity.setDname(dname);
entity.setDemc(demc);
list.add(entity);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
//添加数据
public boolean addDept(DeptEntity entity){
boolean flag=false;
String sql="insert into dept(dname,demc) values(?,?)";
Object[]params={entity.getDname(),entity.getDemc()};
int i=this.upDate(sql, params);
if(i>0){
System.out.println("插入成功");
flag=true;
}else{
System.out.println("插入失败");
}
return flag;
}
//删除数据
public boolean deleteDept(DeptEntity entity){
boolean flag=false;
String sql="delete from dept where did=?";
Object[]params={entity.getDid()};
int i=this.upDate(sql, params);
if(i>0){
System.out.println("删除成功");
flag=true;
}else{
System.out.println("插入失败");
}
return flag;
}
//根据ID改变名字
public boolean setDept(DeptEntity entity){
boolean flag=false;
String sql="update dept set dname=? where did=?";
Object[]params={entity.getDname(),entity.getDid()};
int i=this.upDate(sql, params);
if(i>0){
System.out.println("修改成功");
flag=true;
}else{
System.out.println("修改失败");
}
return flag;
}
//全查
public List<DeptEntity> allSelect(){
List<DeptEntity>list=new ArrayList<DeptEntity>();
String sql="select *from dept";
Object[]params={};
ResultSet rs=this.select(sql, params);
try {
while(rs.next()){
DeptEntity entity=new DeptEntity();
int did=rs.getInt("did");
String dname=rs.getString("dname");
String demc=rs.getString("demc");
entity.setDid(did);
entity.setDname(dname);
entity.setDemc(demc);
list.add(entity);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
Entity
package zc.entity;
public class DeptEntity {
private int did;
private String dname;
private String demc;
public int getDid() {
return did;
}
public void setDid(int did) {
this.did = did;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getDemc() {
return demc;
}
public void setDemc(String demc) {
this.demc = demc;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "DeptEntity [did=" + did + ", dname=" + dname + ", dmec=" + demc
+ "]";
}
}
Service
package zc.service;
import java.util.List;
import zc.entity.DeptEntity;
public interface DeptService {
// 查询有多少条数据
public int getCount();
// pageNo当前页码 pageSize页面容量
public List<DeptEntity> selectPage(int pageNo, int pageSize);
// 添加数据
public boolean addDept(DeptEntity entity);
// 删除数据
public boolean deleteDept(DeptEntity entity);
// 根据ID改变名字
public boolean setDept(DeptEntity entity);
// 全查
public List<DeptEntity> allSelect();
}
ServiceImpl
package zc.service.impl;
import java.util.List;
import zc.dao.Dao;
import zc.entity.DeptEntity;
import zc.impl.DeptImpl;
import zc.service.DeptService;
public class DeptServiceImpl implements DeptService {
private Dao dao;
public DeptServiceImpl(){
dao=new DeptImpl();
}
// 查询有多少条数据
public int getCount(){
return dao.getCount();
}
// pageNo当前页码 pageSize页面容量
public List<DeptEntity> selectPage(int pageNo, int pageSize){
return dao.selectPage(pageNo, pageSize);
}
// 添加数据
public boolean addDept(DeptEntity entity){
return dao.addDept(entity);
}
// 删除数据
public boolean deleteDept(DeptEntity entity){
return dao.deleteDept(entity);
}
// 根据ID改变名字
public boolean setDept(DeptEntity entity){
return dao.setDept(entity);
}
// 全查
public List<DeptEntity> allSelect(){
return dao.allSelect();
}
}
Untils
package zc.untils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ConfigManager {
// 私有静态
private static ConfigManager configManager;
// 私有Properties
private Properties properties;
// 构造私有化
private ConfigManager() {
String configFile = "database.properties";
InputStream in = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
// 新建properties方法
properties = new Properties();
try {
properties.load(in);
} catch (IOException e) {
e.printStackTrace();
}
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 静态类
public static synchronized ConfigManager getInstance() {
if (configManager == null) {
synchronized (ConfigManager.class) {
if (configManager == null) {
configManager = new ConfigManager();
}
}
}
return configManager;
}
// 公有
public String getString(String key) {
return properties.getProperty(key);
}
}
分页工具
package zc.untils;
//分页的工具类:计算总页数=新闻总数量/每页显示几条
public class PageSupport {
// 当前页码
private int currenPageNo = 1;
// 新闻总数量
private int totalCount = 0;
// 页面容量=每页显示几条
private int pageSize = 0;
// 总页数
private int totalPageCount = 1;
public int getCurrenPageNo() {
return currenPageNo;
}
public void setCurrenPageNo(int currenPageNo) {
if (currenPageNo > 0) {
this.currenPageNo = currenPageNo;
}
}
public int getTotalCount() {
return totalCount;
}
// 计算总页数
public void setTotalPageCountByRs() {
if (this.totalCount % this.pageSize == 0) {
this.totalPageCount = this.totalCount / this.pageSize;
} else if (this.totalCount % this.pageSize != 0) {
this.totalPageCount = this.totalCount / this.pageSize + 1;
} else {
this.totalPageCount = 0;
}
}
// 总数量:在设置总数量时,同步计算总页数
public void setTotalCount(int totalCount) {
if (totalCount >= 0) {
this.totalCount = totalCount;
// 设置总页数
this.setTotalPageCountByRs();
}
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPageCount() {
return totalPageCount;
}
public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
}
// 流程:去数据库查询数据总数量→设置新闻总数量,同时计算新闻总页数setTotalCount(X)→拿到总页数getTotalPageCount
}
index页面
<%@page import="zc.entity.DeptEntity"%>
<%@page import="zc.untils.PageSupport"%>
<%@page import="zc.service.DeptService"%>
<%@page import="zc.service.impl.DeptServiceImpl"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<table>
<%
DeptService service = new DeptServiceImpl();
//分页查询并显示
//当前页码
String currentPage = request.getParameter("pageIndex");
if (currentPage == null) {
//用户首次访问
currentPage = "1";
}
//当前页码转换为INTERGER类型
int pageIndex = Integer.parseInt(currentPage);
//获取新闻总数量
int totalCount = service.getCount();
//每页显示几条新闻,页面容量
int pageSize = 3;
//获取总页数
PageSupport pageSupport = new PageSupport();
//设置当前页码
pageSupport.setCurrenPageNo(pageIndex);
//设置每页显示几条,新闻容量
pageSupport.setPageSize(pageSize);
//把int totalCount的值给他,一set就会计算总页数
pageSupport.setTotalCount(totalCount);
//拿到总页数
int totalPage = pageSupport.getTotalPageCount();
//控制首页和尾页
if (pageIndex < 1) {
pageIndex = 1;
} else if (pageIndex > totalPage) {
pageIndex = totalPage;
}
List<DeptEntity> list = service.selectPage(pageIndex, pageSize);
for (DeptEntity d : list) {
%>
<tr>
<td>did</td>
<td>dname</td>
<td>demc</td>
</tr>
<tr>
<td><%=d.getDid()%></td>
<td><%=d.getDname()%></td>
<td><%=d.getDemc()%></td>
</tr>
<%
}
%>
</table>
<a>共<%=totalCount%>条数据 当前<%=pageIndex%>页/<%=totalPage%></a>
<%
if (pageIndex > 1) {
%>
<a href="index.jsp?pageIndex=1">首页</a>
<a href="index.jsp?pageIndex=<%=pageIndex - 1%>">上一页</a>
<%
}
if (pageIndex < totalPage) {
%>
<a href="index.jsp?pageIndex=<%=pageIndex + 1%>">下一页</a>
<a href="index.jsp?pageIndex=<%=totalPage%>">最后一页</a>
<%
}
%>
<form action="login.jsp" method="post">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录">
<a href="register.jsp">注册</a>
<a href="delete.jsp">删除</a>
<a href="change.jsp">更改用户名</a>
</form>
登录判断
<%@page import="zc.entity.DeptEntity"%>
<%@page import="zc.service.DeptService"%>
<%@page import="zc.service.impl.DeptServiceImpl"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%
String user = request.getParameter("username");
String pwd = request.getParameter("password");
request.setCharacterEncoding("UTF-8");
DeptService service = new DeptServiceImpl();
List<DeptEntity> list = new ArrayList<DeptEntity>();
list = service.allSelect();
boolean flag = false;
for (int i = 0; i < list.size(); i++) {
//out.println("数据库里有的名字是:"+list.get(i).getDname()+"\t数据库里有的密码是:"+list.get(i).getDemc());
if (user.equals(list.get(i).getDname())
&& pwd.equals(list.get(i).getDemc())) {
flag = true;
break;
}
}
if (flag) {
response.sendRedirect("loginsc.jsp");
} else {
request.getRequestDispatcher("index.jsp").forward(request,
response);
}
%>
注册判断
<%@page import="zc.entity.DeptEntity"%>
<%@page import="zc.service.impl.DeptServiceImpl"%>
<%@page import="zc.service.DeptService"%>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%
DeptService service = new DeptServiceImpl();
request.setCharacterEncoding("UTF-8");
DeptEntity entity = new DeptEntity();
String user = request.getParameter("username");
String pwd = request.getParameter("password");
entity.setDname(user);
entity.setDemc(pwd);
boolean flag = service.addDept(entity);
if (flag) {
response.sendRedirect("index.jsp");
} else {
request.getRequestDispatcher("register.jsp");
}
%>
删除判断
<%@page import="zc.entity.DeptEntity"%>
<%@page import="zc.service.DeptService"%>
<%@page import="zc.service.impl.DeptServiceImpl"%>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
DeptService service=new DeptServiceImpl();
DeptEntity entity=new DeptEntity();
String did=request.getParameter("username");
int id=Integer.parseInt(did);
entity.setDid(id);
boolean flag=service.deleteDept(entity);
if(flag){
response.sendRedirect("index.jsp");
}else{
request.getRequestDispatcher("delete.jsp").forward(request, response);
}
%>
改变判断
<%@page import="zc.entity.DeptEntity"%>
<%@page import="zc.service.DeptService"%>
<%@page import="zc.service.impl.DeptServiceImpl"%>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%
request.setCharacterEncoding("utf-8");
DeptService service = new DeptServiceImpl();
DeptEntity entity = new DeptEntity();
String did = request.getParameter("username");
int id = Integer.parseInt(did);
String username = request.getParameter("password");
entity.setDid(id);
entity.setDname(username);
boolean flag = service.setDept(entity);
if (flag) {
response.sendRedirect("index.jsp");
} else {
request.getRequestDispatcher("register.jsp").forward(request,
response);
}
%>