Idea练习简单的列表添加修改

Idea练习简单的列表添加修改

启动类

package com.wpx;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.wpx.mapper")
public class StartProp {
    public static void main(String[] args) {
        System.out.println("启动");
        SpringApplication.run(StartProp.class,args);
    }
}

实体类

package com.wpx.pojo;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Data
public class Loan {

        private Integer id;
        private String name;
        private String idCard;

        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date ltime;

        private Double lmoney;

        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date rtime;

        private Double rmoney;
        private Integer bankid;

        private Integer bankId;
        private String bname;
        private Double interest;
        private Integer yearNum;
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date t1;
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date t2;

}
-----------------------------------------------------------------

package com.wpx.pojo;

import lombok.Data;

@Data
public class Bank {

        private Integer bankId;
        private String bname;
        private Double interest;

}

Mapper接口

package com.wpx.mapper;



import com.wpx.pojo.Loan;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface LoanMapper {
    int add(Loan loan);
    List<Loan> list(Loan loan);

    int update(Loan loan);

    Loan toUpdate(Integer id);
}

service接口实现类

package com.wpx.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import com.wpx.mapper.LoanMapper;
import com.wpx.pojo.Loan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class LoanService {

    @Autowired
    private LoanMapper loanMapper;

    public PageInfo<Loan> list(Loan loan, Integer pageNum, Integer pageSize){
        PageHelper.startPage(pageNum,pageSize);
        return new PageInfo<Loan>(loanMapper.list(loan));
    }
    public int add(Loan loan){
        int i=loanMapper.add(loan);
        return i;
    }

    public int update(Loan loan) {
        int i=loanMapper.update(loan);
        return i;
    }

    public Loan toUpdate(Integer id) {
        return loanMapper.toUpdate(id);
    }
}

Controller控制层

package com.wpx.controller;

import com.github.pagehelper.PageInfo;

import com.wpx.pojo.Loan;
import com.wpx.service.LoanService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;


@Controller
public class LoanController {
    //注入service接口
    @Autowired
    private LoanService loanService;

    private Logger logger= LoggerFactory.getLogger(LoanController.class);

    //跳转到list页面
    @RequestMapping("list")
    public String list(ModelMap modelMap, Loan loan, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "3")Integer pageSize){
        PageInfo<Loan> list = loanService.list(loan, pageNum, pageSize);//调用list方法
        modelMap.addAttribute("info",list);//将list传到前台
        modelMap.addAttribute("loan",loan);//将loan传到前台
        logger.info("Controller分页"+pageNum);
        logger.info("Controller分页"+list);
        return "list";
    }
    //跳转添加页面
    @RequestMapping("toadd")
    public String toadd(){
        return "add";
    }

    //执行添加方法并重定向到list页面
    @RequestMapping("add")
    public String add(Loan loan){
        loan.setLtime(new Date());
        System.out.println(loan);
        logger.info("Controller Add 贷款成功"+loan);
        loanService.add(loan);
        return "redirect:list";
    }

    @ResponseBody
    @RequestMapping("update")
    public Object update(Integer id){
        Loan loan= loanService.toUpdate(id);
        logger.info("Controller toUpdate"+loan+"id"+id);
        Double d=(loan.getYearNum()*loan.getInterest()*loan.getLmoney());
        loan.setRmoney((d/100)+loan.getLmoney());
        loan.setRtime(new Date());
        logger.info("Controller Update 还款成功"+loan);
        int i=loanService.update(loan);
        return i>0;
    }

}

Mapperxml配置文件

<?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.wpx.mapper.LoanMapper">
    <select id="list" resultType="Loan">
        SELECT * from t_loan l LEFT JOIN t_bank b on(l.bankid=b.bankId)
        <where>
            <if test="name!=null and name!=''">
                and l.name like concat('%',#{name},'%')
            </if>
            <if test="bankid!=0 and bankid!=null">
                and l.bankid=#{bankid}
            </if>

            <if test="t1!=null">
                and l.ltime &gt;= #{t1}
            </if>
            <if test="t2!=null">
                and l.ltime &lt;= #{t2}
            </if>

        </where>
    </select>


    <insert id="add">
        insert into t_loan(name,idCard,ltime,lmoney,bankid) value(#{name},#{idCard},#{ltime},#{lmoney},#{bankid})

    </insert>
    <update id="update">
        update  t_loan set rtime=#{rtime},rmoney=#{rmoney} where id=#{id}
    </update>
    <select id="toUpdate" resultType="loan">
          SELECT *,TIMESTAMPDIFF(YEAR,l.ltime,DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))+1 as yearNum from t_loan l LEFT JOIN t_bank b on(l.bankid=b.bankId)
		where l.id=#{id}
    </select>
</mapper>

测试类

package com.wpx.test;

import com.wpx.pojo.Loan;
import com.wpx.service.LoanService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.sql.SQLOutput;
import java.util.Date;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestLoan {
    @Autowired
    private LoanService loanService;

    @Test
    public void huanTest(){
        Loan loan= loanService.toUpdate(1);

        Double d=(loan.getYearNum()*loan.getInterest()*loan.getLmoney());
        loan.setRmoney((d/100)+loan.getLmoney());
        loan.setRtime(new Date());

        int i=loanService.update(loan);
        if (i>0)
            System.out.println("还款成功");

    }
    @Test
    public void addTest(){
        Loan loan = new Loan();
        loan.setId(3);
        int i=loanService.add(loan);

        if (i>0)
        System.out.println("添加成功");
    }
}

前台列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="/css/bootstrap.css" rel="stylesheet">

</head>
<body>

    <script src="/js/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script type="text/javascript">
        function toadd() {
            location="toadd";
        }
        function update(id) {
            $.post("update",{id:id},function(flag) {
                if (flag){

                    alert("还款成功");
                    location="list";
                }else {
                    alert("还款失败");
                }
            })
        }


    </script>
    <form action="list" method="get">
      姓名:<input type="text" name="name">
        <select name="bankid">
            银行:<option value="0">请选择</option>
            <option value="1">人民</option>
            <option value="2">工商</option>
            <option value="3">建设</option>
        </select>
        日期:<input type="date" name="t1">-  <input type="date" name="t2">
        <button>提交</button>
    </form>
    <button onclick="toadd()">添加</button>

    <table class="table">

            <tr>
                <td>id</td>
                <td>贷款人</td>
                <td>贷款人身份证</td>
                <td>贷款时间</td>
                <td>贷款金额</td>

                <td>贷款利息</td>

                <td>还款时间</td>
                <td>还款金额</td>
                <td>贷款银行</td>
                <td>操作</td>
            </tr>

        <#list info.list as item>

            <tr>
                <td>${item.id!}</td>
                <td>${item.name!}</td>
                <td>${item.idCard!}</td>
                <td>${(item.ltime?string('yyyy-MM-dd'))!}</td>
                <td>${item.lmoney!}</td>
                <td>${item.interest!}</td>
                <td>${(item.rtime?string('yyyy-MM-dd'))!}</td>
                <td>${item.rmoney!}</td>
                <td>${item.bname!}</td>
                <td>
                    <button onclick="update(${item.id})">
                        还款
                    </button>
                </td>
            </tr>

        </#list>


    </table>



    <a href="list?pageNum=1">首页</a>
    <a href="list?pageNum=${info.pageNum-1}">上一页</a>
    <a href="list?pageNum=${info.pageNum+1}">下一页</a>
    <a href="list?pageNum=${info.pages}">尾页</a>

</body>
</html>

在这里插入图片描述

前台添加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="/css/bootstrap.css" rel="stylesheet">

</head>
<body>
    <script src="/js/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>

    <form action="add" method="post">
       贷款人 <input type="text" name="name"><br>
       贷款银行 <select name="bankid">
            <option value="0">请选择</option>
            <option value="1">人民</option>
            <option value="2">工商</option>
            <option value="3">建设</option>
        </select><br>
        贷款人身份证 <input type="text" name="idCard"><br>
        贷款金额 <input type="text" name="lmoney"><br>
        <button>提交</button>
    </form>


</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值