1.今天来写一个简单的增删改查功能,这个项目还是接着在昨天写的 --JavaWeb实现简单登录注册-- 来写的。

登录成功进来后对学生信息的增删改查

2.项目文件为:

3.好了,直接贴上今天新写的代码,昨天的代码就不重复贴了。

src文件下的代码:

controller:

 package com.maike.controller;

 import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.maike.model.Student;
import com.maike.model.StudentDto;
import com.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class AddStuServlet
*/
@WebServlet("/AddStuServlet")
public class AddStuServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public AddStuServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String stuName = request.getParameter("stuName");
String stuSex = request.getParameter("stuSex");
String stuAge = request.getParameter("stuAge");
String stuClass = request.getParameter("stuClass"); StudentDto studentDto = new StudentDto();
studentDto.setStuName(stuName);
studentDto.setStuSex(stuSex);
studentDto.setStuAge(stuAge);
studentDto.setStuClass(stuClass); int k = userService.addStu(studentDto);
if(k > 0) {
List<Student> list = userService.seleStuAll();
request.setAttribute("stuList", list);
request.getRequestDispatcher("showStu.jsp").forward(request, response);
}else {
response.getWriter().append("添加失败").append(request.getContextPath());
request.getRequestDispatcher("addStu.jsp").forward(request, response);
}
} }

AddStuServlet

 package com.maike.controller;

 import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.maike.model.Student;
import com.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class DeleteStuServlet
*/
@WebServlet("/DeleteStuServlet")
public class DeleteStuServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public DeleteStuServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String stuName = request.getParameter("stuName");
int k = userService.deleteStu(stuName);
List<Student> list = userService.seleStuAll();
request.setAttribute("stuList", list);
request.getRequestDispatcher("showStu.jsp").forward(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

DeleteStuServlet

 package com.maike.controller;

 import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class ToAddStuServlet
*/
@WebServlet("/ToAddStuServlet")
public class ToAddStuServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public ToAddStuServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.getRequestDispatcher("addStu.jsp").forward(request, response); } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

ToAddStuServlet

 package com.maike.controller;

 import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.maike.model.Student;
import com.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class ToUpdateStuServlet
*/
@WebServlet("/ToUpdateStuServlet")
public class ToUpdateStuServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public ToUpdateStuServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String stuName = request.getParameter("stuName");
Student student = userService.getStuByName(stuName);
request.setAttribute("student", student);
request.getRequestDispatcher("updateStu.jsp").forward(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

ToUpdateStuServlet

 package com.maike.controller;

 import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.maike.model.Student;
import com.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class UpdateStuServlet
*/
@WebServlet("/UpdateStuServlet")
public class UpdateStuServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public UpdateStuServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
String stuName = request.getParameter("stuName");
String stuSex = request.getParameter("stuSex");
String stuClass = request.getParameter("stuClass");
Student student = new Student();
student.setStuName(stuName);
student.setStuSex(stuSex);
student.setStuClass(stuClass);
int k = userService.updateStu(student);
List<Student> list = userService.seleStuAll();
request.setAttribute("stuList", list);
request.getRequestDispatcher("showStu.jsp").forward(request, response);
} }

UpdateStuServlet

dao:

 package com.maike.dao;

 import java.util.List;

 import com.maike.model.Student;

 public interface StudentDao {

     List<Student> selectAll();
Student selectByName(String stuName);
int insert(Student student);
int update(Student student);
int delete(String stuName); }

StudentDao

 package com.maike.dao;

 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.maike.model.Student;
import com.maike.util.ConnectionUtil; public class StudentDaoImpl implements StudentDao {
Student student;
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
String sql; /**
* 查询所有学生
*/
@Override
public List<Student> selectAll() {
// TODO Auto-generated method stub
List<Student> list = new ArrayList<Student>();
sql = "select * from student";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
rs = pt.executeQuery(); while(rs.next()) {
student = new Student();
student.setStuId(rs.getInt("stu_id"));
student.setStuName(rs.getString("stu_name"));
student.setStuSex(rs.getString("stu_sex"));
student.setStuAge(rs.getInt("stu_age"));
student.setStuClass(rs.getString("stu_class")); list.add(student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt, rs);
}
return list;
} /**
* 通过名字查询学生
*/
@Override
public Student selectByName(String stuName) {
// TODO Auto-generated method stub
sql = "select * from student where stu_name = ?";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, stuName);
rs = pt.executeQuery(); while(rs.next()) {
student = new Student();
student.setStuId(rs.getInt("stu_id"));
student.setStuName(rs.getString("stu_name"));
student.setStuSex(rs.getString("stu_sex"));
student.setStuAge(rs.getInt("stu_age"));
student.setStuClass(rs.getString("stu_class"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt, rs);
}
return student;
} /**
* 添加学生
*/
@Override
public int insert(Student student) {
// TODO Auto-generated method stub
int k = 0;
sql = "insert into student values(null,?,?,?,?)";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, student.getStuName());
pt.setString(2, student.getStuSex());
pt.setInt(3, student.getStuAge());
pt.setString(4, student.getStuClass()); k = pt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt);
}
return k;
} /**
* 更新学生
*/
@Override
public int update(Student student) {
// TODO Auto-generated method stub
int k = 0;
sql = "update student set stu_sex = ? ,stu_class = ? where stu_name = ?";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, student.getStuSex());
pt.setString(2, student.getStuClass());
pt.setString(3, student.getStuName()); k = pt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt);
}
return k;
} /**
* 通过名字删除学生
*/
@Override
public int delete(String stuName) {
// TODO Auto-generated method stub
int k = 0;
sql = "delete from student where stu_name = ?";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, stuName); k = pt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt);
}
return k;
} }

StudentDaoImpl

model:

 package com.maike.model;

 public class Student {

     private int stuId;

     private String stuName;

     private String stuSex;

     private int stuAge;

     private String stuClass;

     public int getStuId() {
return stuId;
} public void setStuId(int stuId) {
this.stuId = stuId;
} public String getStuName() {
return stuName;
} public void setStuName(String stuName) {
this.stuName = stuName;
} public String getStuSex() {
return stuSex;
} public void setStuSex(String stuSex) {
this.stuSex = stuSex;
} public int getStuAge() {
return stuAge;
} public void setStuAge(int stuAge) {
this.stuAge = stuAge;
} public String getStuClass() {
return stuClass;
} public void setStuClass(String stuClass) {
this.stuClass = stuClass;
} @Override
public String toString() {
return "Student [stuId=" + stuId + ", stuName=" + stuName + ", stuSex=" + stuSex + ", stuAge=" + stuAge
+ ", stuClass=" + stuClass + "]";
} }

Student

 package com.maike.model;

 public class StudentDto {

     private String stuId;

     private String stuName;

     private String stuSex;

     private String stuAge;

     private String stuClass;

     public String getStuId() {
return stuId;
} public void setStuId(String stuId) {
this.stuId = stuId;
} public String getStuName() {
return stuName;
} public void setStuName(String stuName) {
this.stuName = stuName;
} public String getStuSex() {
return stuSex;
} public void setStuSex(String stuSex) {
this.stuSex = stuSex;
} public String getStuAge() {
return stuAge;
} public void setStuAge(String stuAge) {
this.stuAge = stuAge;
} public String getStuClass() {
return stuClass;
} public void setStuClass(String stuClass) {
this.stuClass = stuClass;
} @Override
public String toString() {
return "StudentDto [stuId=" + stuId + ", stuName=" + stuName + ", stuSex=" + stuSex + ", stuAge=" + stuAge
+ ", stuClass=" + stuClass + "]";
} }

StudentDto

service:

 package com.maike.service;

 import java.util.List;

 import com.maike.model.Student;
import com.maike.model.StudentDto; public interface UserService { int insertUser(String userName,String userPwd,String userRePwd);
int judgeLogin(String userName,String userPwd); List<Student> seleStuAll();
int addStu(StudentDto studentDto);
int updateStu(Student student);
int deleteStu(String stuName);
Student getStuByName(String stuName); }

UserService

     /**
* seleStuAll:查询所有学生信息. <br/>
*/
@Override
public List<Student> seleStuAll() {
// TODO Auto-generated method stub
return studentDao.selectAll();
} /**
* addStu:添加学生信息 .<br/>
*/
@Override
public int addStu(StudentDto studentDto) {
// TODO Auto-generated method stub
int k = 0;
String stuName = studentDto.getStuName();
String stuAge = studentDto.getStuAge();
if(stuName == null || stuAge == null) {
return k;
}
int IntAge = Integer.parseInt(stuAge);
Student student = new Student();
student.setStuName(stuName);
student.setStuSex(studentDto.getStuSex());
student.setStuAge(IntAge);
student.setStuClass(studentDto.getStuClass());
k = studentDao.insert(student);
return k;
} /**
* updateStu:修改学生信息 .<br/>
*/
@Override
public int updateStu(Student student) {
// TODO Auto-generated method stub
return studentDao.update(student);
} /**
* deleteStu :删除学生信息 .<br/>
*/
@Override
public int deleteStu(String stuName) {
// TODO Auto-generated method stub
return studentDao.delete(stuName);
} /**
* 通过名字查询学生
*/
@Override
public Student getStuByName(String stuName) {
// TODO Auto-generated method stub
return studentDao.selectByName(stuName);
}

UserServiceImpl

jsp页面:

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>学生信息</title>
</head>
<body>
<br/>
<br/>
<br/>
<h2 align = "center">学生信息列表</h2>
<table align = "center" width="15%">
<tr>
<th align = "center"><a href = "ToAddStuServlet"><button style = "color:blue">添加学生</button></a></th>
</tr>
</table>
<table align = "center">
<tr>
<th>姓名</th><th>性别</th><th>年龄</th><th>班级</th><th colspan="2">管理</th>
</tr>
<c:forEach var = "list" items="${stuList}">
<tr>
<td>${list.stuName }</td><td>${list.stuSex}</td><td>${list.stuAge }</td><td>${list.stuClass}</td>
<td><a href = "DeleteStuServlet?stuName=${list.stuName }" ><button style = "color:blue">删除</button></a></td><td><a href = "ToUpdateStuServlet?stuName=${list.stuName }"><button style = "color:blue">修改</button></a></td>
</tr>
</c:forEach>
</table>
</body>
</html>

showStu

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>添加页面</title>
</head>
<body>
<br>
<br>
<br>
<h2 align = "center">添加页面</h2>
<form action="AddStuServlet" method = "post">
<table align = "center">
<tr>
<td>名字</td><td><input type = "text" name = "stuName" ></td>
</tr>
<tr>
<td>性别</td><td><input type = "text" name = "stuSex" ></td>
</tr>
<tr>
<td>年龄</td><td><input type = "text" name = "stuAge" placeholder ="请输入整数" ></td>
</tr>
<tr>
<td>班级</td><td><input type = "text" name = "stuClass" ></td>
</tr>
<tr>
<td colspan="2" align = "center"><input type="submit" value = "添加" style="color:blue" ></td>
</tr>
</table>
</form>
</body>
</html>

addStu

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>修改页面</title>
</head>
<body>
<br>
<br>
<br>
<h2 align = "center">修改页面</h2>
<form action="UpdateStuServlet" method = "post" align = "center">
<table align = "center">
<tr>
<td>名字</td><td><input type = "text" name = "stuName" value = "${student.stuName }" readonly="readonly" ></td>
</tr>
<tr>
<td>性别</td><td><input type = "text" name = "stuSex" value = "${student.stuSex }"></td>
</tr>
<tr>
<td>年龄</td><td><input type = "text" name = "stuAge" value = "${student.stuAge }" disabled="disabled"></td>
</tr>
<tr>
<td>班级</td><td><input type = "text" name = "stuClass" value = "${student.stuClass }"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value = "修改" style="color:blue" ></td>
</tr>
</table>
</form>
</body>
</html>

updateStu

数据库创建语句:

 CREATE TABLE nanfeng.student (
stu_id INT NOT NULL AUTO_INCREMENT,
stu_name varchar(100) NULL,
stu_sex varchar(100) NULL,
stu_age INT NULL,
stu_class varchar(100) NULL,
CONSTRAINT student_pk PRIMARY KEY (stu_id)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8
COLLATE=utf8_general_ci;

JavaWeb 增删改查功能的更多相关文章

  1. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  2. 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能

    此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...

  3. IDEA搭建SSM实现登录、注册,数据增删改查功能

     本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...

  4. BootstrapTable与KnockoutJS相结合实现增删改查功能

    http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...

  5. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  6. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...

  7. 使用Bootstrap模态框实现增删改查功能

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 本文实现的是使用模态框实现简单的增删改查的功能. ...

  8. jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)

    jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...

  9. 3.创建Manager类,演示对TestUser进行增删改查功能

    接上一篇文章 创建NHibernateHelper帮助类,生成sessionFactory http://www.cnblogs.com/fzxiaoyi/p/8443587.html 创建个新的类M ...

随机推荐

  1. Android8.1 MTK平台 SystemUI源码分析之 网络信号栏显示刷新

    SystemUI系列文章 Android8.1 MTK平台 SystemUI源码分析之 Notification流程 Android8.1 MTK平台 SystemUI源码分析之 电池时钟刷新 And ...

  2. MySQL Error Log 文件丢失导致The server quit without updating PID file启动失败的场景

    今天在做mysql sniff测试的时候,中间重启MySQL实例的过程中,出现了"The server quit without updating PID file"这个经典的错误 ...

  3. MQ脚本回放报错2059

    1.响应2059错误 1.1.   涉及协议 MQ,调试回放阶段 1.2.   错误信息 完成码2原因为2059:未能为 '10.200.100.75:QMEMBFE' 创建 MQQueueManag ...

  4. C++入门到理解阶段二基础篇(7)——C++函数

    目录 函数作用 函数定义 函数声明 函数调用 函数值传递 函数常见的样式 函数的分文件书写 函数作用 将经常使用的代码封装起来,减少重复代码 函数定义 C++ 中的函数定义的一般形式如下: retur ...

  5. sql server报【将截断字符串或二进制数据】错误

    会出现这个错误的原因是因为表设置的列长度小于要插入的数据的长度. 可以从下列的6个方面去排查: 1.表设置的列名长度太短. 2.插入的数据太长. 3.有默认值. 4.有触发器. 5 从char数据类型 ...

  6. Python 从入门到进阶之路(七)

    之前的文章我们简单介绍了一下 Python 中异常处理,本篇文章我们来看一下 Python 中 is 和 == 的区别及深拷贝和浅拷贝. 我们先来看一下在 Python 中的双等号 == . == 是 ...

  7. 硬盘容量统计神器WinDirStat

    最近遇到C盘快要爆满的问题,我的笔记本是128G SSD + 1t HDD,给C盘分配的空间是80G固态,由于平时疏远管理,造成了C盘臃肿,迁移一些软件,但还是没有太好的解决,这是上知乎发现有大神推荐 ...

  8. Java后端高频面试题汇总

    Java后端面试题汇总 近来,分专题更新了Java后端面试题,此文章对这些文章做一个目录式的整理,方便查看 1.Java基础   https://www.cnblogs.com/autism-dong ...

  9. C#实现Java的DigestUtils.sha256Hex

    代码地址:DotNetCore_Practice/JavaToC#/DigestUtils at master · PuzzledAlien/DotNetCore_Practice public cl ...

  10. Java工程师学习指南

    java学习指南-四个部分:分别是入门篇,初级篇,中级篇,高级篇 第一步是打好Java基础,掌握Java核心技术,                                            ...