layui实现基础的增删改查
非必要不会把框架的每层代码放出来(没什么意义)
准备工作
配置layui参考(转)
https://blog.csdn.net/weixin_43977327/article/details/103016179
数据库先搞好
注意表名
我新建一个很简单的表
查询
后台新建一波文件
先导入可以生成layui可识别json的工具包
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/***
*
* @author Administrator
*
*/
public class ObjtoLayJson {
public static String toJson(Object object,String[] colums) throws Exception {
String[] dataRow = new String[colums.length];
Field[] fields = object.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldName = fields[i].getName();
String fistfont = fieldName.substring(0,1).toUpperCase();
String methodname = "get"+fistfont+fieldName.substring(1);
Method method = object.getClass().getMethod(methodname);
if (method.invoke(object) == null) {
dataRow[i] = "null";
}else {
dataRow[i] = method.invoke(object).toString();
}
}
//System.out.println(Arrays.toString(dataRow));
String jsonStr = "[{\"status\":0}, {\"message\": \"success\" }, {\"count\": 1000},{\"rows\":{\"item\":[";
for(int i = 0; i < dataRow.length; i++) {
String arr = "{";
if (dataRow[i] == null || "NULL".equals(dataRow[i]) ) {
arr += "\"\"";
}else {
arr += "\"" + colums[i] + "\""+":" ;
arr += "\"" + dataRow[i]+"\"";
}
arr += "}";
if( i < dataRow.length - 1 ) {
arr += ",";
}
jsonStr += arr;
}
jsonStr += "]}}]";
return jsonStr;
}
public static <T> String ListtoJson(List<T> objects,String[] colums) throws Exception {
String[][] dataRow = new String[objects.size()][colums.length];
int count = 0;
for (Object object : objects) {
Field[] fields = object.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String fieldName = fields[i].getName();
String fistfont = fieldName.substring(0,1).toUpperCase();
String methodname = "get"+fistfont+fieldName.substring(1);
Method method = object.getClass().getMethod(methodname);
if (method.invoke(object) == null) {
dataRow[count][i] = "null";
}else {
dataRow[count][i] = method.invoke(object).toString();
}
}
count += 1;
}
String jsonStr = "[{\"status\":0}, {\"message\": \"success\" }, {\"count\": 1000},{\"rows\":{\"item\":[";
for(int i = 0; i < dataRow.length; i++) {
String arr = "{";
for( int j = 0; j < dataRow[i].length; j++) {
//System.out.println("j======"+j);
if(dataRow[i][j] == null || "NULL".equals(dataRow[i][j])) {
arr += "\"\"";
}else {
arr += "\"" + colums[j] + "\""+":" ;
arr += "\"" +dataRow[i][j] + "\"";
}
if( j < dataRow[i].length - 1 ) {
arr += ",";
}
}
arr += "}";
if( i < dataRow.length - 1) {
arr += ",";
}
jsonStr += arr;
}
jsonStr += "]}}]";
return jsonStr;
}
public static void main(String[] args) throws Exception {
// User user = new User();
// user.setAge(18);
// user.setId(1);
// user.setPassword("123456789");
// String[] colums = {"id","userName","Password","age"};
String jsonString = toJson(user,colums);
System.out.println(jsonString);
// List<Object> users = new ArrayList<Object>();
// users.add(user);
// users.add(user);
// String helloString = ListtoJson(users,colums);
// System.out.println(helloString);
}
}
一层一层来
先把实体类写好
@Data代表get set方法(不用自己生成了)
import lombok.Data;
@Data
public class Test {
private int id;
private String acc;
private String pwd;
}
controller
对应好字段名(acc , pwd)
import com.qcby.entity.Test;
import com.qcby.service.TestService;
import com.qcby.util.ObjtoLayJson;
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.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
@RequestMapping("test")
public class TestController {
@Autowired
private TestService testService;
@ResponseBody
@RequestMapping(value = "selectAll", method = RequestMethod.GET, produces = "text/json;charset=utf-8")
public String selectAll(HttpServletRequest request) throws Exception {
request.setCharacterEncoding("utf-8");
List<Test> list = testService.selectAll();
String[] column = {
"id", "acc", "pwd"};
String data = ObjtoLayJson.ListtoJson(list, column);
return data;
}
}
service接口
import com.qcby.entity.Test;
import java.util.List;
public interface TestService {
List<Test> selectAll();
}
serviceImpl
import com.qcby.dao.TestMapper;
import com.qcby.entity.Test;
import com.qcby.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("TestService")
public class TestServiceImpl implements TestService {
@Autowired
private TestMapper testMapper;
@Override
public List<Test> selectAll() {
return this.testMapper.selectAll();
}
}
dao层(mapper层)
import com.qcby.entity.Test;
import java.util.List;
public interface TestMapper {
List<Test> selectAll();
}
mapping
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qcby.dao.TestMapper">
<resultMap id="BaseResultMap" type="com.qcby.entity.Test">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="acc" jdbcType="VARCHAR" property="acc"/>
<result column="pwd" jdbcType="VARCHAR"