导包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>huangshuoming</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>huangshuoming Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.3.10</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.1.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.32</version>
</dependency>
<!-- 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.20</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.10</version> <!-- 请根据你的项目需求选择合适的版本 -->
</dependency>
<!--jsp/servlet依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- 引入JSTL(JSP的标准标签库)-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 日志-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.20.0</version>
</dependency>
<!-- Json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
</dependency>
</dependencies>
<build>
<finalName>huangshuoming</finalName>
</build>
</project>
数据库
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.csnf"></context:component-scan>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/admin?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="huang2005A"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:SqlMapConfig.xml"></property>
<property name="typeAliasesPackage" value="com.csnf.entity"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.csnf.mapper"></property>
</bean>
</beans>
重要的
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>
<mvc:annotation-driven />
<context:component-scan base-package="com.csnf.controller"/>
<!-- 视图解析器配置-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- prefix前缀,suffix后缀-->
<property name="prefix" value="/WEB-INF/page/"/>
<property name="suffix" value=".jsp"/>
</bean>
<mvc:default-servlet-handler/>
</beans>
数据
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
controller
ackage com.csnf.controller;
import com.alibaba.fastjson.JSONObject;
import com.csnf.entity.Task;
import com.csnf.service.TaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
@Controller
public class TaskController {
@Autowired
private TaskService taskService;
@RequestMapping("/")
public String taskPage(){
return "tempfile";
}
@RequestMapping("/selectAll")
@ResponseBody
public String selectAll(String taskName){
ArrayList<Task> tasks;
if(taskName.equals("")){
tasks = taskService.selectTask();
}else {
tasks = taskService.selectTaskByName(taskName);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("tasks",tasks);
return jsonObject.toJSONString();
}
@RequestMapping("/tempfileupdeat")
public ModelAndView taskDetail(int taskId){
Task task = taskService.selectTaskById(taskId);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("task",task);
modelAndView.setViewName("tempfileupdeat");
return modelAndView;
}
@RequestMapping("/updateTask")
@ResponseBody
public String updateTask(Task task){
System.out.println(task);
int i = taskService.updateTask(task);
JSONObject jsonObject = new JSONObject();
if (i == 1){
jsonObject.put("success",true);
}else {
jsonObject.put("success",false);
}
return jsonObject.toJSONString();
}
@RequestMapping("/deleteTask")
@ResponseBody
public String deleteTask(int taskId){
int i = taskService.deleteTask(taskId);
JSONObject jsonObject = new JSONObject();
if (i == 1){
jsonObject.put("success",true);
}else {
jsonObject.put("success",false);
}
return jsonObject.toJSONString();
}
@RequestMapping("/deleteList")
@ResponseBody
public String deleteList(@RequestParam("arr") List<Integer> arr){
JSONObject jsonObject = new JSONObject();
for(int i=0;i<arr.size();i++){
int index = taskService.deleteTask(arr.get(i));
if(index!=1){
jsonObject.put("success",false);
return jsonObject.toJSONString();
}
}
jsonObject.put("success",true);
return jsonObject.toJSONString();
}
@RequestMapping("/addPage")
public String addPage(){
return "tempfileadd";
}
@RequestMapping("/tempfileadd")
@ResponseBody
public String addTask(Task task){
int i = taskService.insertTask(task);
JSONObject jsonObject = new JSONObject();
if (i == 1){
jsonObject.put("success",true);
}else {
jsonObject.put("success",false);
}
return jsonObject.toJSONString();
}
}
实体类
package com.csnf.entity;
import lombok.Data;
import java.sql.Date;
@Data
public class Task {
private Integer taskId;
private String taskName;
private String taskGroup;
private String taskContent;
private String taskExpression;
private int taskState;
private Date taskDate;
private int taskStrategy;
private int taskCurrent;
private String taskDesc;
}
Mapper
package com.csnf.mapper;
import com.csnf.entity.Task;
import org.apache.ibatis.annotations.*;
import java.util.ArrayList;
@Mapper
public interface TaskMapper {
@Select("select * from task")
ArrayList<Task> selectTask();
@Select("select * from task where task_name like concat('%',#{taskName},'%')")
ArrayList<Task> selectTaskByName(String taskName);
@Select("select * from task where task_id = #{taskId}")
Task selectTaskById(int taskId);
@Update("update task set task_name = #{taskName},task_group = #{taskGroup},task_content = #{taskContent} ,task_expression = #{taskExpression} , task_state = #{taskState} ,task_date = #{taskDate} where task_id = #{taskId}")
int updateTask(Task task);
@Delete("delete from task where task_id = #{taskId}")
int deleteTask(int taskId);
@Insert("insert into task(task_name,task_group,task_content,task_expression,task_state,task_date) values(#{taskName},#{taskGroup},#{taskContent},#{taskExpression},#{taskState},#{taskDate})")
int insertTask(Task task);
@Update("UPDATE task SET task_state = #{taskState} WHERE task_id = #{taskId}")
int updateTaskState(int taskId,int taskState);
}
Service
package com.csnf.service;
import com.csnf.entity.Task;
import java.util.ArrayList;
public interface TaskService {
ArrayList<Task> selectTask();
ArrayList<Task> selectTaskByName(String taskName);
int updateTask(Task task);
int deleteTask(int taskId);
int insertTask(Task task);
Task selectTaskById(int taskId);
}
impl
package com.csnf.service.impl;
import com.csnf.entity.Task;
import com.csnf.mapper.TaskMapper;
import com.csnf.service.TaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
@Service
public class TaskServiceImpl implements TaskService {
@Autowired
private TaskMapper taskMapper;
@Override
public ArrayList<Task> selectTask() {
return taskMapper.selectTask();
}
@Override
public ArrayList<Task> selectTaskByName(String taskName) {
return taskMapper.selectTaskByName(taskName);
}
@Override
public int updateTask(Task task) {
return taskMapper.updateTask(task);
}
@Override
public int deleteTask(int taskId) {
return taskMapper.deleteTask(taskId);
}
@Override
public int insertTask(Task task) {
return taskMapper.insertTask(task);
}
@Override
public Task selectTaskById(int taskId) {
return taskMapper.selectTaskById(taskId);
}
}
js页面
$(function(){
getData("");
$("#search-btn").click(function () {
var text = $("#search-txt").val();
getData(text);
})
$("#add-btn").click(function () {
window.location.href="/addPage";
})
$("#delete-btn").click(function () {
var index = window.confirm("确定删除吗?");
if (index) {
var checkbox = $("input[name='checkbox']:checked");
var arr= new Array();
checkbox.each(function () {
var taskId = $(this).val();
arr.push(taskId);
});
$.ajax({
url: "/deleteList",
type: "post",
data: {
arr:arr
},
dataType:"json",
traditional:true,
success: function (data) {
if (data.success) {
alert("删除成功");
getData("");
} else {
alert("删除失败");
}
},
error: function () {
alert("服务器异常");
}
})
}
})
});
function getData(text) {
$('#taskTableBody').empty();
$.ajax({
url: "/selectAll",
type: "post",
data: {
"taskId": text,
"taskName": text,
"taskGroup": text,
"taskContent": text,
"taskExpression": text,
"taskState": text,
"taskDate": Date
},
dataType: "json",
success: function (data) {
console.log(data);
for (var i = 0; i < data.tasks.length; i++) {
$('#taskTableBody').append(
"<tr>" +
"<td>" +
"<input type='checkbox' id='checkbox' name='checkbox' value='" + data.tasks[i].taskId + "'>" +
"</td>" +
"<td>" + data.tasks[i].taskId + "</td>" +
"<td>" + data.tasks[i].taskName + "</td>" +
"<td>" + data.tasks[i].taskGroup + "</td>" +
"<td>" + data.tasks[i].taskContent + "</td>" +
"<td>" + data.tasks[i].taskExpression + "</td>" +
"<td>" +
"<div class='form-check form-switch'>" +
"<input class='form-check-input' type='checkbox' role='switch' id='taskState-" + data.tasks[i].taskId + "' " + (data.tasks[i].taskState === 1 ? "checked" : "") + ">" +
"<label class='form-check-label' for='taskState-" + data.tasks[i].taskId + "'>" + (data.tasks[i].taskState === 1 ? "开" : "关") + "</label>" +
"</div>" +
"</td>" +
"<td>" + data.tasks[i].taskDate + "</td>" +
"<td id='btn1'>" +
"<a href='/tempfileupdeat?taskId=" + data.tasks[i].taskId + "'>" + "详情" + "</a>" +
"</td>" +
"<td id='btn2'>" +
"<a href='javascript:;' οnclick='deleteById(" + data.tasks[i].taskId + ")'>" + "删除" + "</a>" +
"</td>" +
"</tr>"
);
}
},
error: function () {
alert("服务器异常");
}
});
}
function deleteById(taskId) {
var index=window.confirm("确定删除ID为"+taskId+"的数据吗?");
if (!index){
return;
}
$.ajax({
url: "/deleteTask",
type: "post",
data: {
"taskId": taskId
},
dataType:"json",
success: function (data) {
console.log(data)
if (data.success) {
alert("删除成功");
getData("");
} else {
alert("删除失败");
}
},
error: function () {
alert("服务器异常");
}
});
}
js添加
$(function(){
$("#btn-save").click(function (){
var flag = window.confirm("是否确认保存?");
if(flag) {
var taskName = $("#task_name").val();
var taskGroup = $("#task_group").val();
var taskContent = $("#task_content").val();
var taskExpression = $("#task_expression").val();
var taskState = $("#task_state").val();
var taskDate = $("#task_date").val();
$.ajax({
url: "/tempfileadd",
type: "post",
data: {
"taskName": taskName,
"taskGroup": taskGroup,
"taskContent": taskContent,
"taskExpression": taskExpression,
"taskState": taskState,
"taskDate": taskDate
},
scriptCharset: 'UTF-8',
dataType: "json",
success: function (data) {
if (data.success) {
alert("新增成功")
window.location = "/"
} else {
alert("新增失败!")
}
},
error: function () {
alert("服务器异常");
}
});
}
});
});
js修改
$(function (){
$("#btn-enter").click(function () {
console.log("点击了");
updateById();
});
});
function updateById() {
var index=window.confirm("确定修改数据吗?");
if (index){
var taskId = $("#task_id").text();
var taskName = $("#task_name").val();
var taskGroup = $("#task_group").val();
var taskContent = $("#task_content").val();
var taskExpression = $("#task_expression").val();
var taskState = $("#task_state").val();
var taskDate = $("#task_date").val();
$.ajax({
dataType: "json",
method: "POST",
url:"/updateTask",
data: {
"taskId": taskId,
"taskName": taskName,
"taskGroup": taskGroup,
"taskContent": taskContent,
"taskExpression": taskExpression,
"taskState": taskState,
"taskDate": taskDate
},
success: function (data) {
if (data.success) {
alert("修改成功");
window.location.href = "/";
} else {
alert("修改失败");
}
},
error: function (data) {
alert("修改失败");
},
});
return true;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>Archetype Created Web Application</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>