=====================================================================
=====================================================================
package com.sjsq.dao;
import com.sjsq.vo.Admin;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 9:46
*/
public interface AdminDao {
/**
-
用户登录
-
@param admin
-
@return
*/
public Admin login(Admin admin);
}
package com.sjsq.dao.impl;
import com.sjsq.dao.AdminDao;
import com.sjsq.utils.DBUtil;
import com.sjsq.vo.Admin;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 9:49
*/
public class AdminDaoImpl implements AdminDao {
/**
-
用户登录
-
@param admin
-
@return
*/
@Override
public Admin login(Admin admin) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 1.获取数据库连接
con = DBUtil.getConnection();
// 2.写sql
String sql = “select * from admin where username = ? and password = ?”;
// 3.预编译
ps = con.prepareStatement(sql);
// 4.设置值
ps.setObject(1,admin.getUsername());
ps.setObject(2,admin.getPassword());
rs = ps.executeQuery();
Admin adminLogin = null;
if(rs.next()){
adminLogin = new Admin();
// 从数据库中获取值到实体类的setter方法中
adminLogin.setUsername(rs.getString(“username”));
adminLogin.setPassword(rs.getString(“password”));
// 返回的是你查询出来的完整的对象
return adminLogin;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 关闭资源,避免出现异常
DBUtil.close(con,ps,rs);
}
return null;
}
}
package com.sjsq.dao;
import com.sjsq.vo.Student;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2021/4/30 7:52
-
学生信息接口
*/
public interface StudentDao {
/**
-
查询学生信息
-
@param sql
-
@param arr
-
@return
*/
public List selectAll(String sql, Object[] arr);
/**
-
根据学号进行查询
-
@param id
-
@return
*/
public Student selectStudent(Integer id);
/**
-
新增学生信息
-
@param student
-
@return
*/
public boolean addStudent(Student student);
/**
-
修改学生信息
-
@param student
-
@return
*/
public boolean updateStudent(Student student);
/**
-
删除学生信息
-
@param id
-
@return
*/
public boolean deleteStudent(Integer id);
}
package com.sjsq.service;
import com.sjsq.vo.Admin;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 11:13
*/
public interface AdminService {
/**
-
用户登录
-
@param admin
-
@return
*/
public Admin login(Admin admin);
}
package com.sjsq.service.impl;
import com.sjsq.dao.AdminDao;
import com.sjsq.dao.impl.AdminDaoImpl;
import com.sjsq.service.AdminService;
import com.sjsq.vo.Admin;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 11:13
*/
public class AdminServiceImpl implements AdminService {
private AdminDao adminDao = new AdminDaoImpl();
@Override
public Admin login(Admin admin) {
return adminDao.login(admin);
}
}
package com.sjsq.service;
import com.sjsq.vo.Student;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 8:26
*/
public interface StudentService {
/**
-
查询学生信息
-
@param student
-
@return
*/
public List selectAll(Student student);
/**
-
根据学号进行查询
-
@param id
-
@return
*/
public Student selectStudent(Integer id);
/**
-
新增学生信息
-
@param student
-
@return
*/
public boolean addStudent(Student student);
/**
-
修改学生信息
-
@param student
-
@return
*/
public boolean updateStudent(Student student);
/**
-
删除学生信息
-
@param id
-
@return
*/
public boolean deleteStudent(Integer id);
}
package com.sjsq.service.impl;
import com.sjsq.dao.StudentDao;
import com.sjsq.dao.impl.StudentDaoImpl;
import com.sjsq.service.StudentService;
import com.sjsq.vo.Student;
import java.util.ArrayList;
import java.util.List;
/**
-
@author shuijianshiqing
-
@date 2021/5/1 8:26
*/
public class StudentServiceImpl implements StudentService {
private StudentDao studentDao = new StudentDaoImpl();
@Override
public List selectAll(Student student) {
StringBuffer sql = new StringBuffer("select * from student where 1 = 1 ");
List list = new ArrayList();
if(student != null){
// 根据id来查找对应的学生信息
if(student.getId() != null && student.getId() != 0){
sql.append(" and id = ?");
list.add(student.getId());
}
}
return studentDao.selectAll(sql.toString(),list.toArray());
}
@Override
public Student selectStudent(Integer id) {
return studentDao.selectStudent(id);
}
@Override
public boolean addStudent(Student student) {
return studentDao.addStudent(student);
}
@Override
public boolean updateStudent(Student student) {
return studentDao.updateStudent(student);
}
@Override
public boolean deleteStudent(Integer id) {
return studentDao.deleteStudent(id);
}
}
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
用户登录
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.service.AdminService”%>
<%@ page import=“com.sjsq.service.impl.AdminServiceImpl”%>
<%@ page import=“com.sjsq.vo.Admin”%>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + “😕/” + request.getServerName() + “:”
- request.getServerPort() + path + “/”;
%>
用户登录
<%
// 设置接收的编码为UTF-8
request.setCharacterEncoding(“utf-8”);
// 获取前端传过来的字符串
String username = request.getParameter(“username”);
String password=request.getParameter(“password”);
// 定义接受的对象
Admin admin = new Admin();
admin.setUsername(username);
admin.setPassword(password);
// 把数据库里面的Admin获取出来
AdminService adminService = new AdminServiceImpl();
// 注意数据的admin账号密码不能重复
Admin adminLogin = adminService.login(admin);
System.out.println(“显示登录用户信息:”);
System.out.println(adminLogin);
// 设置session
session.setAttribute(“admin”,adminLogin);
// 判断adminLogin是否为空
if(!(adminLogin==null)){
// 成功之后重定向到主页面
response.sendRedirect(“main.jsp”);
} else{
// 失败之后重定向到失败页面
response.sendRedirect(“fail.jsp”);
}
%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%
// 会话失效
session.invalidate();
response.sendRedirect(“login.jsp”);
%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“UTF-8” %>
<%@ page import=“com.sjsq.service.StudentService” %>
<%@ page import=“com.sjsq.service.impl.StudentServiceImpl” %>
<%@ page import=“com.sjsq.vo.Student” %>
<%@ page import=“java.util.List” %>
<%-- 头部 --%>
<jsp:include page=“top.jsp”/>
<%
// 设置获取注册时的编码为UTF-8
request.setCharacterEncoding(“UTF-8”);
StudentService studentService = new StudentServiceImpl();
// 定义一个学生类
Student student = new Student();
// 获取上一个页面传过来的值
if(request.getParameter(“id”)!=null && request.getParameter(“id”)!=“”){
Integer id = Integer.parseInt(request.getParameter(“id”));
student.setId(id);
}
// 获取所有学生
List studentList = studentService.selectAll(student);
%>
学生列表
请输入姓名:
<%
for (int i = 0;i<studentList.size();i++){
Student s =studentList.get(i);
%>
<%=s.getId()%> <%=s.getName()%> <%=s.getAge()%> <%=s.getSex()%> <%=s.getNation()%> <%=s.getPlace()%> <%=s.getMajor()%> <%=s.getClasses()%><%
}
%>
<%-- 底部 --%>
<jsp:include page=“bottom.jsp”/>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%-- 头部 --%>
<jsp:include page=“top.jsp”/>
新增学生
返回上一级
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
最后
javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
e" placeholder=“年龄”>
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-8SOx2mBS-1711668397005)]
[外链图片转存中…(img-8x1P1FS0-1711668397006)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-xsPjrsqx-1711668397006)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
最后
javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。
[外链图片转存中…(img-KuKQc1uA-1711668397007)]
[外链图片转存中…(img-HQGyoGFX-1711668397007)]