SSM前后端数据操作案例七:在解决问题的道路上思考问题。

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: SSM前后端数据操作案例七:在解决问题的道路上思考问题。

(前后端的数据交互技术项目七:回顾这个学期的所学):梦幻神游入三国-回望自己这个学期的所学SSM框架总结起来四个字:删 查 增 改 简称(CRUP)。

接收到任务:今天的目标是完成单张表的(CRUP)将数据库的内容展示在页面上:首先完成这项任务要用到那些知识的要点呢!

第一部分:回顾一下所学框架的一些概念和基础的定义:学这个的目的是为了日后的更好的工作.

MyBatis框架。作用于对数据访问层的操作 对数据库的数据增删改查 这里包含多张表的增删改查.

Spring框架。这是一个模块 作用在 Mvc三层的各个领域.

SpringMvc框架.是Spring框架的一个模块 作用在控制层上.

Ajax技术。作用在前后端的数据交互上主要运用到的几个重要的参数信息.

Json数据解析。将控制层发送过来的增删改查的数据在Mvc转换成Json格式,然后在Html页面中对数据进行解析.

Html Css JavaScript Jquery 这是前端的入门基础也是java程序员一定要会的操作.

MySql 这是一门课程要想学更好 又要自己更加的深入的去了解信息。

第二部分:分析Mvc三层架构的执行流程代码是如何执行的呢?本项目采用的是注解开发的项目的.

理清思路:才能更好的解决问题.

方案一:如果采用的是普通的Java代码开发.

控制层.作用控制项目的整个运行流程:@1 接收浏览器发过来的消息,将消息发送到Mvc中的三层中层层返回最后回到控制层.

@2 控制层将最后数据库中的增删改查的数据返回到页面中 这里要用到Ajax+Json两课的灵活运用.

业务逻辑层:处理一些业务逻辑的信息 这里有 一个接口  在接口中定义的方法在实现类中去实现接口中没有实现的方法.

数据访问层:处理一些数据库信息 对数据库的信息增删改查:这里有 一个接口  在接口中定义的方法在实现类中去实现接口中没有实现的方法.


方案二:如果采用的是SSM框架的不用注解的方式用配置文件的方式

控制层:作用控制项目的整个运行流程:@1 接收浏览器发过来的消息,将消息发送到Mvc中的三层中层层返回最后回到控制层.

@2 控制层将最后数据库中的增删改查的数据返回到页面中 这里要用到Ajax+Json两课的灵活运用.

业务逻辑层:处理一些业务逻辑的信息 这里有 一个接口  在接口中定义的方法在实现类中去实现接口中没有实现的方法.

数据访问层:处理一些数据库信息 对数据库的信息增删改查:这里有 一个接口  在接口中定义的方法在实现类中去实现接口中没有实现的方法.这里要运用到的是三个框架的配置文件信息.

方案三:如果采用的是SSM框架的用注解的方式开发.

控制层:作用控制项目的整个运行流程:@1 接收浏览器发过来的消息,将消息发送到Mvc中的三层中层层返回最后回到控制层.

@2 控制层将最后数据库中的增删改查的数据返回到页面中 这里要用到Ajax+Json两课的灵活运用.

业务逻辑层.处理一些业务逻辑的信息 这里有 一个接口  在接口中定义的方法在实现类中去实现接口中没有实现的方法.

数据访问层.这里只需要定义接口文件 利用注解的开发对数据 的增伤改查操作 注解一般以@ 开头

第三部分:分析增删改查定义接口的原理:

如果用户要查整张表的信息要做以下分析


1 表中查到的是一条记录 那你又可以这样做 在java中定义了 Map集合 Map<String, Object>  


 2 如果查到的是两条记录或者是多条记录 外表用到是list集合 里面是MAP集合


   3所以多条记录利用的是 list中调用map集合 List<Map<String, Object>> getCarList()


如果用户查询表的一个字段 中有多条记录

1  多条记录利用List集合 一个字段利用的是String存放 2所以使用的是list中调用String List<String>


如果用户要增加一条记录 在这条记录中 包含多个字段 如果用户要修改一条一条记录 包含多个字段 如果用户要删除一条记录 包含多个字段 返回值 为 int类型


如果用户要增加一条记录 在这条记录中 包含多个字段


1首先服务器要接收用户增加数据的字段名 利用 @RequestParam 将每个字段存放起来


2 然后利用map集合的方式将增加的多个字段 封装起来转入到mvc三层流程图中


3 因为控制层将增加的数据封装成了Map集合方式 所以 在mvc三层的所有接口中定义 int 方法名称(Map<String, Object> map)


如果用户查询表的一个字段 中有多条记录

1多条记录利用List集合 一个字段利用的是String存放


2所以使用的是list中调用String List<String> 如果用户要增加一条记录 在这条记录中 包含多个字段 如果用户要修改一条一条记录 包含多个字段 如果用户要删除一条记录 包含多个字段 返回值 为 int类型 如果用户要增加一条记录 在这条记录中 包含多个字段


1首先服务器要接收用户增加数据的字段名 利用 @RequestParam 将每个字段存放起来


2 然后利用map集合的方式将增加的多个字段 封装起来转入到mvc三层流程图中


3 因为控制层将增加的数据封装成了Map集合方式 所以 在mvc三层的所有接口中定义 int 方法名称(Map<String, Object> map)


如果用户要删除一条记录 包含多个字段

int del(String ids); 删除为多条记录 int del(int id); 删除为一条记录 返回值为int类型 更据id删除 所以服务器器要接收到浏览器发过来的id更据主键id删除数据库指定的数据记录在第几条


如果用户查询表的一个字段 中有多条记录

1多条记录利用List集合 一个字段利用的是String存放


2所以使用的是list中调用String List<String> 如果用户要增加一条记录 在这条记录中 包含多个字段 如果用户要修改一条一条记录 包含多个字段 如果用户要删除一条记录 包含多个字段 返回值 为 int类型 如果用户要增加一条记录 在这条记录中 包含多个字段


1首先服务器要接收用户增加数据的字段名 利用 @RequestParam 将每个字段存放起来


2 然后利用map集合的方式将增加的多个字段 封装起来转入到mvc三层流程图中


3 因为控制层将增加的数据封装成了Map集合方式 所以 在mvc三层的所有接口中定义 int 方法名称(Map<String, Object> map)


如果用户要修改一条一条记录 包含多个字段 同理在SSM框架中修改数据


1 首先用户要将你要修改的是哪条记录的参数发到服务器中 然后服务器利用mvc三层原理最终将其转到数据库中


2 我查到的每一条记录 的存放方式是 Map<String, Object>


3 所以 返回的类型为 Map<String, Object> 方法名称(转入的参数) Map<String, Object> getInfoById(int id);


4 将修改信息如何展示在页面上这里需要你的前端基础


5 将浏览器修改后的信息返回到服务器 中到数据库中完成数据的修改


6 将修改的信息利用Map封装起来 所以 返回的类型为 int方法名称(转入的参数) int updateInfo(Map<String, Object> map); 思考你要修改的是一条记录 而一条记录利用的是 Map<String, Object> 存放


返回一条记录的值为 int 类型 所以接口定义下面方案 int updateInfo(Map<String, Object> map);

第四部分:Mvc三层架构增删改查执行流程.

查询功能

在查询的数据库中的表中肯定是多条记录 每个条记录中有多个字段 因此使用Java存放的方式是


在这里我使用的是MVC三层架构的普通方式介绍


因此你要在数据反问层的接口中定义方法


List<Map<String, Object>> getStudentList();}或者是List<Student,student>gestudentList();}


同理在业务逻辑思层中:


List<Map<String, Object>> getStudentList();}或者是List<Student,student>gestudentList();}


那么如何将控制层 业务逻辑层 数据反问层 连接起来呢!


在控制层中: ITeacherService service = new TeacherServiceImp();


在业务逻辑层中


ITeacherDao dao=new TeacherDaoImp();


然后层层返回 到控制层


List<Map<String, Object>> teacherList = service.getTeacherList();
Map<String, Object> map = new HashMap<>();
map.put("list", teacherList);
new ObjectMapper().writeValue(response.getWriter(), map);


发到HTML页面进行JSON解析。


JSON解析后会将数据展示在页面。

删除功能

写出SQL语句


delete from emp where id=?


分析SQL语句在Java中利用什么方式存放起来的


在增删改中返回值为int类型值。删除是根据编号删除的因此控制器要将浏览器发来的ID接收 利用是是resquest对象


在控制层调用业务逻辑层的方法利用。


IEmpService service=new EmpServiceImp()


同理在业务逻辑层是实现类中


IEmpDao dao = new EmpDaoImp();


在业务逻辑层接口中定义方法利用int del(int Id)


同理在数据访问层接口中定义方法


int del(int Id)
int delete service.delete(ids);if(delete>0){response.sendRedirect("workList.html"); }


利用重定向的方式

增加功能

SQL语句当我点击按钮跳转到一个新的页面用于增加数据的信息。


当用户增加成功要进行页面的查询操作。


insert into emp values(?,?,?,?,?,?)",


返回值为int类型 在没条记录中但对应的属性和值。


在业务逻辑层接口中定义方法 int add(Map<String, Object> map);


同理在数据访问层


int add(Map<String, Object> map);


在控制层中


Map<String, String[]> parameterMap = request.getParameterMap();
int add = service.add(parameterMap);
if (add > 0) {
//添加成功,跳回主页面
response.sendRedirect("index.html");}

修改功能

首先第一部要获得你要修改那一条数据的id


第二步你要用jQuery的属性选择器将数据显示在页面上


第三步 你要将修改后的页面数据信息发回到服务器 经历MVC 三层架构 将修改后上,信息在数据库中更新


第四步将更新后的数据刷新到页面上查看。


总结遇到修改不用慌


先分清楚流程是什么 利用的技术是 Ajax+JSON解析。当我要修改的的记录编号ID 为1001001 时候


首先浏览器要将ID编号发送给服务器 在控制层中


将浏览器发过来的ID等于1001001接收


利用的是resquest 对象 然后将ID 参数发送到 业务逻辑层 在到数据访问层


为了更好的理解一般是从数据访问层的接口中定义方法


Map<String, Object> getInfoStudentById(int id);


在数据反问层实现类中实现


DBUtil.jt.queryForMap("select * from student where id=?", new Object[]{id});}


这里数据反问层使用的方案是


Ajax+Json+Mvc+JdbcTemplate+Servlect+Html+JavaScript+Jquery+Mysql


同理在业务实现类的接口


Map<String, Object> getInfoStudentById(int id);


在业务逻辑层接口的实现类中实现。


在控制层中调用以下方法


Map<String, Object> infoStudentById = service.getInfoStudentById(Integer.parseInt(id));
//我要获得 年龄 姓名 电话 地址
List<String> age = service.getAge();
List<String> name = service.getName();
List<String> phone = service.getPhone();
List<String> address = service.getAddress();

第二步步分上面的数据利用什么方式封装起来


Map<String, Object> map = new HashMap<>();
map.put("infoStudentById", infoStudentById);
map.put("age", age);
map.put("name", name);
map.put("phone", phone);
map.put("address", address);
new ObjectMapper().writeValue(response.getWriter(), map);


比如在浏览器中要在input标签中显示性别 年龄如何实现呢!


$("input[name=age]").val(json.infoStudentById.age)//将数据库中的年龄展示在页面中
(json.infoStudentById.sex = "男") {
$("input[value='男']").attr("checked", true)
} else {
$("input[value='女']").attr("checked", true)
}


用户单机修改按钮将修改后的数据发送到数据库中去步骤

浏览器中页面完成修改后数据库也要更新


因此根据MVC三层架构思想


控制器要接收到浏览器要修改的页面数据信息


在控制层的第一步


Map<String, String[]> parameterMap = request.getParameterMap();
String id = (String) request.getSession().getAttribute("id");


接下来从数据访问层的接口中定义方法


int updateStudent(Map<String, Object> map);


同理在业务逻辑层中的接口中写下以下方法


int updateStudent(Map<String, Object> map);


最终控制器回执行下面的内容


int student = service.updateStudent(parameterMap, Integer.parseInt(id));
if(student>0){
System.out.println("恭喜用户修改信息已完成");
response.sendRedirect("workList1.html");
}


最后修改页面完成。仔细分析发现也不是那么难吧!🤗

项目代码:

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style type="text/css">
div{
    font-size: 23px;
    font-weight: normal;
    font-family: 楷体;
    background-color: lightskyblue;
    color: red;
}
</style>
<script src="js/jquery-3.6.js"></script>
<script type="text/javascript">
    $(function () {
        $.ajax({
            url: "list.do",
            type: "GET",
            data: "",
            success: function (json) {
                parsTale(json);
            },
            error: function () {
                alert("连接失败")
            },
            dataType: "json"
        });
    });
//    定义方法
    function parsTale(jsons) {
        for (var i = 0; i < jsons.length; i++) {
            $("table").append("<tr>" +
                "<td>"+jsons[i].id+"</td>" +
                "<td>"+jsons[i].bookid +"</td>" +
                "<td>"+jsons[i].scribe+"</td>" +
                "<td>"+jsons[i].price+"</td>" +
                "<td>"+jsons[i].number+"</td>" +
                "<td>"+jsons[i].redingwriter+"</td>" +
                "<td>"+jsons[i].dianjinumber+"</td>" +
                "<td><input type='button' value='删除' onclick='del("+jsons[i].id+")'></td>" +
                "<td><input type='button' value='增加' onclick='add()'></td>" +
                //    修改页面忘记转入id
                "<td><input type='button' value='修改' onclick='update("+jsons[i].id+")'></td>" +
                "</tr>")
        }
    }
//    定义方法删除数据
    function del(id) {
        location.href="del.do?id="+id;
    }
//    定义反发增加语句
    function add() {
    confirm("开始增加数据")
        location.href="add.html";
    }
//    定义方法修改页面
    //转入参数id
    function update(id) {
        confirm("开始修改页面的数据")
        location.href="update1.do?id="+id;
    }
</script>
<body>
<div align="center">
    <!--    id  bookid scribe  price number  redingwriter  dianjinumber
    (3001001, '《人生》', 23, 34, '王晓丽', 345)-->
    <h1>图书管理系统的首页查询页面</h1>
    <table>
        <tr>
            <th>编号</th>
            <th>书籍编号</th>
            <th>书籍名称</th>
            <th>价格</th>
            <th>用户浏览量</th>
            <th>阅读人</th>
            <th>网上点击量</th>
            <th>删除</th>
            <th>增加</th>
            <th>修改></th>
        </tr>
    </table>
<h1><a href="index1.html">第二张表的增删改查</a></h1>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            font-size: 23px;
            font-weight: normal;
            font-family: 楷体;
            background-color: darkcyan;
            color: white;
        }
    </style>
</head>
<body>
<div align="center">
    <h1>增加数据页面</h1>
    <form action="add.do" method="post">
        <table>
            <!--(`bookid`, `scribe`, `price`, `number`, `redingwriter`, `dianjinumber`)-->
            <tr>
                <td>书籍编号</td>
                <td><input type="text" placeholder="请输入书籍的编号" name="bookid"></td>
            </tr>
            <tr>
                <td>书籍名称</td>
                <td><input type="text" placeholder="请输入书籍名称" name="scribe"></td>
            </tr>
            <tr>
                <td>书籍价格</td>
                <td><input type="number" placeholder="请输入书籍价格" name="price"></td>
            </tr>
            <tr>
                <td>书籍数量</td>
                <td><input type="number" placeholder="请输入书籍数量" name="number"></td>
            </tr>
            <tr>
                <td>阅读的作者</td>
                <td><input type="text" placeholder="请输入阅读的作者" name="redingwriter"></td>
            </tr>
            <tr>
                <td>点击量</td>
                <td><input type="number" placeholder="请输入点击量" name="dianjinumber"></td>
            </tr>
            <th colspan="2"><input type="submit" value="增加一条记录"></th>
        </table>
    </form>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            font-size: 23px;
            font-weight: normal;
            font-family: 楷体;
            background-color: darkcyan;
            color: white;
        }
    </style>
</head>
<script src="js/jquery-3.6.js"></script>
<script type="text/javascript">
    /*获得id修改数据*/
    $(function () {
        $.ajax({
            url:"Update2.do",
            type:"GET",
            /*要转入的参数*/
            data:"",
            success : function(json){
                $("input[name='bookid']").val(json.bookid)
                $("input[name='scribe']").val(json.scribe)
                $("input[name='price']").val(json.price)
                $("input[name='number']").val(json.number)
                $("input[name='redingwriter']").val(json.redingwriter)
                $("input[name='dianjinumber']").val(json.dianjinumber)
            },
            error :function () {
                // alert("修改失败")
            },
            dataType:"json"
        });
    });
</script>
<body>
<div align="center">
    <!--修改页面-->
    <h1>修改数据页面</h1>
    <form action="update3.do" method="post">
        <table>
            <!--(`bookid`, `scribe`, `price`, `number`, `redingwriter`, `dianjinumber`)-->
            <tr>
                <td>书籍编号</td>
                <td><input type="text" placeholder="请输入书籍的编号" name="bookid"></td>
            </tr>
            <tr>
                <td>书籍名称</td>
                <td><input type="text" placeholder="请输入书籍名称" name="scribe"></td>
            </tr>
            <tr>
                <td>书籍价格</td>
                <td><input type="number" placeholder="请输入书籍价格" name="price"></td>
            </tr>
            <tr>
                <td>书籍数量</td>
                <td><input type="number" placeholder="请输入书籍数量" name="number"></td>
            </tr>
            <tr>
                <td>阅读的作者</td>
                <td><input type="text" placeholder="请输入阅读的作者" name="redingwriter"></td>
            </tr>
            <tr>
                <td>点击量</td>
                <td><input type="number" placeholder="请输入点击量" name="dianjinumber"></td>
            </tr>
            <th colspan="2"><input type="submit" value="修改一条记录"></th>
        </table>
    </form>
</div>
</body>
</html>
package Com.BookSystem.Controller;
import Com.BookSystem.Service.IBookSystemService;
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 javax.servlet.http.HttpSession;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 控制层
 */
@Controller
public class ControllerBookSystem {
    @Autowired
    IBookSystemService service;
//    定义方法查询书籍
    @RequestMapping("list.do")
    @ResponseBody
    public Object ListS() {
        List<Map<String, Object>> list = service.getListS();
        return list;
    }
    //    定义方法删除数据
    @RequestMapping("del.do")
    public String del(@RequestParam int id) {
        int i = service.del(id);
        return "index.html";
    }
//    定义方法增加数据
    /*增加的页面不用 @ResponseBody*/
    @RequestMapping("add.do")
    public String add(@RequestParam int bookid,
                      @RequestParam String scribe,
                      @RequestParam int price,
                      @RequestParam int number,
                      @RequestParam String redingwriter,
                      @RequestParam int dianjinumber) {
        System.out.println("开始增加数据信息");
//         <!--(`bookid`, `scribe`, `price`, `number`, `redingwriter`, `dianjinumber`)-->
        Map<String, Object> map = new HashMap<>();
        map.put("bookid", bookid);
        map.put("scribe", scribe);
        map.put("price", price);
        map.put("number", number);
        map.put("redingwriter", redingwriter);
        map.put("dianjinumber", dianjinumber);
        int i = service.add(map);
        return "index.html";
    }
    //    定义方修改页面
    @RequestMapping("update1.do")
    public String update1(@RequestParam int id, HttpSession session) {
        session.setAttribute("id", id);
        return "update.html";
    }
    //定义方法
    @ResponseBody
    @RequestMapping("Update2.do")
    public Object update2(HttpSession session) {
        int id = (int) session.getAttribute("id");
        Map<String, Object> map = service.update2(id);
        return map;
    }
    @RequestMapping("update3.do")
    public String update3(@RequestParam int bookid,
                          @RequestParam String scribe,
                          @RequestParam int price,
                          @RequestParam int number,
                          @RequestParam String redingwriter,
                          @RequestParam int dianjinumber, HttpSession session) {
//         <!--(`bookid`, `scribe`, `price`, `number`, `redingwriter`, `dianjinumber`)-->
        Map<String, Object> map = new HashMap<>();
        int id = (int) session.getAttribute("id");
        map.put("bookid", bookid);
        map.put("scribe", scribe);
        map.put("price", price);
        map.put("number", number);
        map.put("redingwriter", redingwriter);
        map.put("dianjinumber", dianjinumber);
        map.put("id", id);
        int i = service.update3(map);
        return "index.html";
    }
    //操作第二张表的数据
    @RequestMapping("BookList.do")
    @ResponseBody
    public Object BookList() {
        List<Map<String, Object>> BookList = service.getBookList();
        return BookList;
    }
    //定义方法删除数据记录
    @RequestMapping("DelBook.do")
    public String DelBook(@RequestParam int id) {
        int i = service.getDeleteBook(id);
        return "index1.html";
    }
    //    定义方法增加数据记录
//    转入增加的参数<!--INSERT INTO `demossmtest`.`cardidsystem`(`name`, `age`, `dateime`, `carid`, `address`, `natives`)
//VALUES ('胡子欣', 21, '2022-06-06 22:26:05', 4567, '南昌', '青山湖区')-->
    @RequestMapping("CarAdd.do")
    public String CarAdd(@RequestParam String name,
                         @RequestParam int age,
                         @RequestParam Object datetime,
                         @RequestParam int CarId,
                         @RequestParam String address,
                         @RequestParam String addressCar) {
        Map<String, Object> map = new HashMap<>();
        map.put("name",name );
        map.put(" age", age );
        map.put("DateTime", datetime);
        map.put("CarId",CarId );
        map.put("address",address );
        map.put("addressCar", addressCar);
        int i=service.addCar(map);
        return "index1.html";
    }
//    修改数据的记录页面
    @RequestMapping("UpdateCar1.do")
    public String UpdateCar1(@RequestParam int id,HttpSession session){
        session.setAttribute("id",id);
        return "update1.html";
    }
//    定义方法
    @RequestMapping("UpdateCar2.do")
    @ResponseBody
    public  Object UpdateCar2(HttpSession session){
     int id = (int) session.getAttribute("id");
     Map<String, Object> map = service.SelectCar2(id);
     return map;
    }
//定义方法完成修改
    @RequestMapping("UpdateCar3.do")
    public String UpdateCar3(@RequestParam String name,
                         @RequestParam int age,
                         @RequestParam String datetime,
                         @RequestParam int CarId,
                         @RequestParam String address,
                         @RequestParam String addressCar,
                             HttpSession session) {
        Map<String, Object> map = new HashMap<>();
        map.put("name",name );
        map.put(" age", age );
        map.put("DateTime", datetime);
        map.put("CarId",CarId );
        map.put("address",address );
        map.put("addressCar", addressCar);
        int id = (int) session.getAttribute("id");
        map.put("id",id);
        int i=service.UpdateCar3(map);
        return "index1.html";
    }
}
package Com.BookSystem.Service;
import java.util.List;
import java.util.Map;
/**
 * 业务逻辑层接口
 */
public interface IBookSystemService {
    List<Map<String, Object>> getListS();
    int del(int id);
    int add(Map<String, Object> map);
    Map<String, Object> update2(int id);
    int update3(Map<String, Object> map);
    List<Map<String, Object>> getBookList();
    int getDeleteBook(int id);
    int addCar(Map<String, Object> map);
    Map<String, Object> SelectCar2(int id);
    int UpdateCar3(Map<String, Object> map);
}
package Com.BookSystem.Service;
import Com.BookSystem.Dao.IBookSystemDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * 业务逻辑层实现类
 */
@Service(value = "sService")
public class BookSystemServiceImp  implements  IBookSystemService {
    @Autowired
    IBookSystemDao dao;
    @Override
    public List<Map<String, Object>> getListS() {
        return dao.getListS();
    }
    @Override
    public int del(int id) {
        return dao.del(id);
    }
    @Override
    public int add(Map<String, Object> map) {
        return dao.add(map);
    }
    @Override
    public Map<String, Object> update2(int id) {
        return dao.update2(id);
    }
    @Override
    public int update3(Map<String, Object> map) {
        return dao.update3(map);
    }
    @Override
    public List<Map<String, Object>> getBookList() {
        return dao.getBookList();
    }
    @Override
    public int getDeleteBook(int id) {
        return dao.deleteBook(id);
    }
    @Override
    public int addCar(Map<String, Object> map) {
        return dao.addCar(map);
    }
    @Override
    public Map<String, Object> SelectCar2(int id) {
        return dao.selectCar2(id);
    }
    @Override
    public int UpdateCar3(Map<String, Object> map) {
        return dao.updateCar3(map);
    }
}
package Com.BookSystem.Dao;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
/**
 * 数据访问层
 */
public interface IBookSystemDao {
    @Select("select * from  booksystem")
    List<Map<String, Object>> getListS();
    @Delete("delete  from  booksystem where id=#{id} ")
    int del(@Param("id") int id);
    @Insert("INSERT INTO `demossmtest`.`booksystem`(`bookid`, `scribe`, `price`, `number`, `redingwriter`, `dianjinumber`) VALUES (#{bookid}, #{scribe}, #{price}, #{number}, #{redingwriter}, #{dianjinumber})")
    int add(Map<String, Object> map);
    /*Sql语句写的有问题*/
    @Select("SELECT * FROM booksystem WHERE id=#{id}")
    Map<String, Object> update2(@Param("id") int id);
    @Update("UPDATE `demossmtest`.`booksystem` SET bookid = #{bookid}, scribe =#{scribe},price = #{price}, number =#{number} ,redingwriter = #{redingwriter}, `dianjinumber` = #{dianjinumber} WHERE id = #{id}")
    int update3(Map<String, Object> map);
    //    操作第二张表
    @Select("SELECT * FROM cardidsystem")
    List<Map<String, Object>> getBookList();
    @Delete("delete  from  cardidsystem where id=#{id} ")
    int deleteBook(@Param("id") int id);
    @Insert("INSERT INTO `demossmtest`.`cardidsystem`(name, age, dateime, CarId, address, addressCar) VALUES (#{name}, #{ age},#{dateime},#{CarId},#{ address},#{addressCar})")
    int addCar(Map<String, Object> map);
    @Select("SELECT * FROM cardidsystem WHERE id=#{id}")
    Map<String, Object> selectCar2(@Param("id") int id);
    @Update("UPDATE cardidsystem SET name=#{name}, age=#{age}, dateime=#{dateime}, CarId=#{CarId}, address=#{address}, addressCar=#{addressCar} where id=#{id}")
    int updateCar3(Map<String, Object> map);
}
相关文章
|
6月前
ssm使用全注解实现增删改查案例——showEmp.jsp
ssm使用全注解实现增删改查案例——showEmp.jsp
|
6月前
ssm使用全注解实现增删改查案例——showDept.jsp
ssm使用全注解实现增删改查案例——showDept.jsp
|
6月前
ssm使用全注解实现增删改查案例——web.xml
ssm使用全注解实现增删改查案例——web.xml
|
6月前
ssm使用全注解实现增删改查案例——updateEmp.jsp
ssm使用全注解实现增删改查案例——updateDept.jsp
|
6月前
ssm使用全注解实现增删改查案例——saveEmp.jsp
ssm使用全注解实现增删改查案例——saveEmp.jsp
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的课程案例库平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的课程案例库平台附带文章和源代码部署视频讲解等
30 1
|
6月前
|
JSON 小程序 JavaScript
实现小程序与SSM后台数据交互
该文介绍了如何实现小程序与SSM后台的数据交互。在Java控制器中,通过`@RequestMapping`注解的`queryShop`方法处理HTTP请求,设置响应头允许跨域并返回JSON格式的商品列表。小程序端使用wx.request进行GET请求,接收到数据后在控制台打印。示例还包括了传递参数的方法和展示的交互效果图片。
43 2
|
5月前
|
Java Maven Android开发
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】2
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】
36 0