一,创建表

二.将jar包复制导入到lib文件夹下

三.创建工具包连接数据库

package com.bill.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DBUtil { public static String db_url = "jdbc:mysql://localhost:3306/test?useSSL=false";
public static String db_user = "root";//账号
public static String db_pass = "mm123456";//密码 public static Connection getConn () {
Connection conn = null; try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(db_url, db_user, db_pass);
} catch (Exception e) {
e.printStackTrace();
} return conn;
} public static void close (Statement state, Connection conn) {
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void close (ResultSet rs, Statement state, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }

四.初始化成员函数

package com.bill.been;

public class Bill {
private int id;
private String type;
private String year;
private String month;
private String day;
private String income;
private String pay;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public String getIncome() {
return income;
}
public void setIncome(String income) {
this.income = income;
}
public String getPay() {
return pay;
}
public void setPay(String pay) {
this.pay = pay;
} public Bill(int id,String type,String year,String month,String day,String income,String pay)
{
this.id=id;
this.type=type;
this.year=year;
this.month=month;
this.day=day;
this.income=income;
this.pay=pay;
}
public Bill(String type,String year,String month,String day,String income,String pay)
{
this.type=type;
this.year=year;
this.month=month;
this.day=day;
this.income=income;
this.pay=pay;
}
}

五.查找数据库 dao层

package com.bill.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import com.bill.util.DBUtil;
import com.bill.been.Bill;
@SuppressWarnings("unused")
public class BillDao {
//-----------------------------------------------------------------------------------------------------------------------------
public boolean add(Bill bill) {
String sql = "insert into bill(type,year,month,day,income,pay) values('" + bill.getType() + "','" + bill.getYear() + "','"+bill.getMonth()+"','"+bill.getDay()+"','"+bill.getIncome()+"','"+bill.getPay()+"')";
Connection conn = DBUtil.getConn();//调用方法连接数据库
Statement state = null;
boolean f = false;
int a = 0 ; try { //监视大括号内的代码
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (Exception e) { //捕获错误
e.printStackTrace();
} finally {
//关闭z 连接
DBUtil.close(state, conn);
} if (a > 0) {
f = true;
}
return f;
} //---------------------------------------------------------------------------------------------------------------------------- public Bill getBillById(int id) {
String sql = "select * from bill where id ='" + id + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
Bill bill = null; try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
String type = rs.getString("type");
String year = rs.getString("year");
String month = rs.getString("month");
String day = rs.getString("day");
String income = rs.getString("income");
String pay = rs.getString("pay");
bill = new Bill(id, type, year, month,day,income,pay);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
} return bill;
} public List<Bill> dellist() {
String sql = "select * from bill";
List<Bill> dellist = new ArrayList<>();
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null; try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Bill bean = null;
while (rs.next()) {
int id = rs.getInt("id");
String type2 = rs.getString("type");
String year2 = rs.getString("year");
String month2 = rs.getString("month");
String day2 = rs.getString("day");
String income2=rs.getString("income");
String pay2=rs.getString("pay");
bean = new Bill(id, type2, year2, month2,day2,income2,pay2);
dellist.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
} return dellist;
} public boolean delete (int id) {
boolean f = false;
String sql = "delete from bill where id='" + id + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
int a = 0; try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
} if (a > 0) {
f = true;
}
return f;
}
//--------------------------------------------------------------------------------------------------------------
public List<Bill> modifylist() {
String sql = "select * from bill";
List<Bill> modifylist = new ArrayList<>();
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null; try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Bill bean = null;
while (rs.next()) {
int id = rs.getInt("id");
String type2 = rs.getString("type");
String year2 = rs.getString("year");
String month2 = rs.getString("month");
String day2 = rs.getString("day");
String income2=rs.getString("income");
String pay2=rs.getString("pay");
bean = new Bill(id, type2, year2, month2,day2,income2,pay2);
modifylist.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
} return modifylist;
} public boolean modify(Bill bill) {
String sql = "update bill set type='" + bill.getType() + "', year='" + bill.getYear() + "',month='" + bill.getMonth()
+ "',day='"+bill.getDay()+"',income='"+bill.getIncome()+"',pay='"+bill.getPay()+"'where id='" + bill.getId() + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
boolean f = false;
int a = 0; try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
} if (a > 0) {
f = true;
}
return f;
}
//------------------------------------------------------------------------------------------------------------------------------
public List<Bill> search(String type,String year,String month,String day,String income,String pay) {
String sql = "select * from bill where ";
if (type != "") {
sql += "type like '%" + type + "%'";
}
if (year != "") {
sql += "year like '%" + year + "%'";
}
if (month != "") {
sql += "month like '%" + month + "%'";
}
if (day != "") {
sql += "day like '%" + day + "%'";
}if (income != "") {
sql += "income like '%" + income + "%'";
}if (pay != "") {
sql += "pay like '%" + pay + "%'";
}
List<Bill> list = new ArrayList<>();
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null; try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Bill bean = null;
while (rs.next()) {
int id = rs.getInt("id");
String type2 = rs.getString("type");
String year2 = rs.getString("year");
String month2 = rs.getString("month");
String day2 = rs.getString("day");
String income2 = rs.getString("income");
String pay2 = rs.getString("pay");
bean = new Bill(id, type2, year2, month2,day2,income2,pay2);
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
} return list;
} }

.六.页面的交互

package com.bill.servlet;
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.bill.dao.BillDao;
import com.bill.been.Bill;
@WebServlet("/BillServlet")
public class BillServlet extends HttpServlet{
private static final long serialVersionUID = 1L; public BillServlet() {
super();
}
BillDao dao=new BillDao(); protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if ("add".equals(method)) {
add(req, resp);
}else if ("getbillbyid".equals(method)) {
getBillById(req, resp);
}else if ("dellist".equals(method)) {
dellist(req,resp);
}else if ("delete".equals(method)) {
delete(req,resp);
}else if ("getbillbyid2".equals(method)) {
getBillById2(req, resp);
}else if ("modifylist".equals(method)) {
modifylist(req,resp);
}else if ("modify".equals(method)) {
modify(req,resp);
}else if ("search".equals(method)) {
search(req,resp);
}
}
//------------------------------------------------------------------------------------------------------
private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
// TODO Auto-generated method stub
String type = req.getParameter("type");
String year = req.getParameter("year");
String month = req.getParameter("month");
String day = req.getParameter("day");
String income = req.getParameter("income");
String pay = req.getParameter("pay"); Bill bill=new Bill(type,year,month,day,income,pay);
if(dao.add(bill)) {
req.setAttribute("message", "保存成功!");
req.getRequestDispatcher("add.jsp").forward(req, resp);
}else {
req.setAttribute("message", "保存失败!");
req.getRequestDispatcher("add.jsp").forward(req, resp);
}
}
//------------------------------------------------------------------------------------------------------ private void getBillById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
Bill bill = dao.getBillById(id);
req.setAttribute("bill", bill);
req.getRequestDispatcher("delete.jsp").forward(req,resp); } private void dellist(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
List<Bill> bills = dao.dellist();
req.setAttribute("bills", bills);
req.getRequestDispatcher("dellist.jsp").forward(req,resp); } private void delete(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
dao.delete(id);
req.setAttribute("message", "删除成功");
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
//---------------------------------------------------------------------------------------------------------------------------------
private void getBillById2(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
Bill bill = dao.getBillById(id);
req.setAttribute("bill", bill);
req.getRequestDispatcher("modify.jsp").forward(req,resp); } private void modifylist(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
List<Bill> bills = dao.modifylist();
req.setAttribute("bills",bills);
req.getRequestDispatcher("modifylist.jsp").forward(req,resp);
} private void modify(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
String type = req.getParameter("type");
String year = req.getParameter("year");
String month = req.getParameter("month");
String day = req.getParameter("day");
String income = req.getParameter("income");
String pay = req.getParameter("pay");
Bill bill = new Bill(id, type, year, month,day,income,pay); dao.modify(bill);
req.setAttribute("message", "修改成功");
req.getRequestDispatcher("BillServlet?method=modifylist").forward(req,resp);
} //--------------------------------------------------------------------------------------------------------------------------------- private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
String type = req.getParameter("type");
String year = req.getParameter("year");
String month = req.getParameter("month");
String day = req.getParameter("day");
String income = req.getParameter("income");
String pay = req.getParameter("pay");
List<Bill> bills = dao.search(type,year,month,day,income,pay);
req.setAttribute("bills", bills);
req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
}
}

主页面

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>首页</title>
<style>
.a{
font-size: 26px;
margin-top: 20px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color:bluegreen;">记帐本</h1>
<div class="a">
<a href="add.jsp">账单记录</a>
</div>
<div class="a">
<a href="BillServlet?method=dellist">账单删除</a>
</div>
<div class="a">
<a href="BillServlet?method=modifylist">修改账单</a>
</div>
<div class="a">
<a href="search.jsp">查询账单</a>
</div>
</div>
</body>
</html>

添加

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>记录账单</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<div align="center">
<h1 style="color: red;">记账</h1> <form action="BillServlet?method=add" method="post" onsubmit="return check()">
<div class="a">
类型<input type="text" id="type" name="type"/>
</div>
<div class="a">
年<input type="text" id="year" name="year" />
</div>
<div class="a">
月<input type="text" id="month" name="month"/>
</div>
<div class="a">
日<input type="text" id="day" name="day"/>
</div>
<div class="a">
收入<input type="text" id="income" name="income"/>
</div>
<div class="a">
支出<input type="text" id="pay" name="pay"/>
</div> <div class="a">
<button type="submit" class="b">保&nbsp;&nbsp;&nbsp;存</button>
</div>
<div class="a">
<a href="index.jsp" >返回</a>
</div>
</form>
</div> </body>
</html>

删除

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<div align="center">
<h1 style="color: red;">账单信息列表</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>id</td>
<td>账单类型</td>
<td>年</td>
<td>月</td>
<td>日</td>
<td>收入</td>
<td>支出</td>
<td align="center" colspan="2">操作</td>
</tr>
<c:forEach items="${bills}" var="xm">
<tr>
<td>${xm.id}</td>
<td>${xm.type}</td>
<td>${xm.year}</td>
<td>${xm.month}</td>
<td>${xm.day}</td>
<td>${xm.income}</td>
<td>${xm.pay}</td>
<td><a href="BillServlet?method=getbillbyid&id=${xm.id}">删除</a></td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %> <div align="center">
<h1 style="color: red;">账单信息删除</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>账单类型</td>
<td>${bill.type}</td>
</tr>
<tr>
<td>年</td>
<td>${bill.year}</td>
</tr>
<tr>
<td>月</td>
<td>${bill.month}</td>
</tr>
<tr>
<td>日</td>
<td>${bill.day}</td>
</tr>
<tr>
<td>收入</td>
<td>${bill.income}</td>
</tr>
<tr>
<td>支出</td>
<td>${bill.pay}</td>
</tr>
</table>
<div class="a">
<a onclick="return check()" href="BillServlet?method=delete&id=${bill.id}">删&nbsp;&nbsp;&nbsp;&nbsp;除</a>
</div>
</div>
<script type="text/javascript">
function check() {
if (confirm("真的要删除吗?")){
return true;
}else{
return false;
}
}
</script>
</body>
</html>

修改

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<div align="center">
<h1 style="color: red;">账单信息列表</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>id</td>
<td>账单类型</td>
<td>年</td>
<td>月</td>
<td>日</td>
<td>收入</td>
<td>支出</td>
<td align="center" colspan="2">操作</td>
</tr>
<c:forEach items="${bills}" var="item">
<tr>
<td>${item.id}</td>
<td>${item.type}</td>
<td>${item.year}</td>
<td>${item.month}</td>
<td>${item.day}</td>
<td>${item.income}</td>
<td>${item.pay}</td>
<td><a href="BillServlet?method=getbillbyid2&id=${item.id}">修改</a></td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<div align="center">
<h1 style="color: cyan;">记账信息修改</h1>
<a href="index.jsp">返回主页</a>
<form action="BillServlet?method=modify" method="post" onsubmit="return check()">
<div class="a">
账单类型<input type="text" id="type" name="type" value="${bill.type}"/>
</div>
<div class="a">
年<input type="text" id="year" name="year" value="${bill.year}"/>
</div>
<div class="a">
月<input type="text" id="month" name="month" value="${bill.month}"/>
</div>
<div class="a">
日<input type="text" id="day" name="day" value="${bill.day}"/>
</div>
<div class="a">
收入<input type="text" id="income" name="income" value="${bill.income}"/>
</div>
<div class="a">
支出<input type="text" id="pay" name="pay" value="${bill.pay}"/>
</div> <input type="hidden" id="id" name="id" value="${bill.id}"/>
<div class="a">
<button type="submit" class="b">修&nbsp;&nbsp;&nbsp;改</button>
</div>
</form>
</div> </body>
</html>

查找

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: cyan;">账单信息查询</h1>
<a href="index.jsp">返回主页</a>
<form action="BillServlet?method=search" method="post" onsubmit="return check()">
<div class="a">
账单类型<input type="text" id="type" name="type"/>
</div>
<div class="a">
年<input type="text" id="year" name="year" />
</div>
<div class="a">
月<input type="text" id="month" name="month" />
</div>
<div class="a">
日<input type="text" id="day" name="day" />
</div>
<div class="a">
收入<input type="text" id="income" name="income" />
</div>
<div class="a">
支出<input type="text" id="pay" name="pay" />
</div>
<div class="a">
<button type="submit" class="b">查&nbsp;&nbsp;&nbsp;&nbsp;询</button>
</div>
</form>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: red;">账单信息列表</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>id</td>
<td>粘单类型</td>
<td>年</td>
<td>月</td>
<td>日</td>
<td>收入</td>
<td>支出</td>
</tr>
<!-- forEach遍历出adminBeans -->
<c:forEach items="${bills}" var="item" varStatus="status">
<tr>
<td>${item.id}</td>
<td><a>${item.type}</a></td>
<td>${item.year}</td>
<td>${item.month}</td>
<td>${item.day}</td>
<td>${item.income}</td>
<td>${item.pay}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>

最新文章

  1. 响应式web网站设计制作方法
  2. [转]论acm与泡妞
  3. cmd 下telnet 不是内部或外部命令
  4. Linux常用工具之XFTP、Xshell配置
  5. libvirt
  6. Jmeter代理录制脚本
  7. 每天一个linux命令(49):ss命令
  8. mysql-proxy之奇虎360 Atlas 安装实现mysql读写分离
  9. 对PostgreSQL xmin的深入学习
  10. vc:如何从Internet上有效而稳定地下载文件
  11. android 统计启动时长,标准
  12. 由Python通过__new__实现单例模式,所想到的__new__和__init__方法的区别
  13. 快速搭建一个vue开发环境
  14. java文件运行的过程
  15. App设计模式纵横谈(1)
  16. es3的语法来模拟es5的bind方法
  17. [转帖]ASP.NET的版本?
  18. RabbitMQ系列教程之二:工作队列(Work Queues)(转载)
  19. C/C++ 打开串口和关闭串口
  20. C++比较特殊的构造函数和初始化语法

热门文章

  1. 剑指offer-面试题25-合并两个排序的链表-链表
  2. openlayers编辑区域
  3. Java集合之Collections 剖析
  4. HTML/JavaScript实现地图以鼠标为圆心缩放和移动
  5. Wannafly Camp 2020 Day 2B 萨博的方程式 - 数位dp
  6. CMS系统
  7. Linux C语言 文件操作
  8. 1级搭建类109-Oracle 12cR2 SI FS(Windows Server 2019)公开
  9. 0级搭建类004-中标麒麟 Linux 安装 (V7.0) 公开
  10. Java String类型转换成Date日期类型