呀呼!呀呼! 2022-05-07 22:11 采纳率: 77.3%
浏览 56
已结题

为什么调用了BrandMapper里面的addBrand方法,这个方法已经给我一个返回值了,也在方法里面提交事务了,但是数据库还是没有增加数据

问题遇到的现象和发生背景

问题遇到的现象:为什么调用了BrandMapper里面的addBrand方法,这个方法已经给我一个返回值了,也在方法里面提交事务了,但是数据库还是没有增加数据

发生背景:itheima javaweb课程最后面利用Element、vue、axios的综合案例

问题相关代码(PS:为了突出重点只给出关键部分)

<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!--    为添加按钮绑定一个对话框    -->
    <el-dialog
            title="编辑品牌"
            :visible.sync="dialogVisible"
            width="30%"
            :before-close="handleClose">
<!--        对话框里面的表单-->
        <el-form ref="form" :model="brand" label-width="80px">
            <el-form-item label="品牌名称">
                <el-input v-model="brand.brandName"></el-input>
            </el-form-item>

            <el-form-item label="企业名称">
                <el-input v-model="brand.companyName"></el-input>
            </el-form-item>

            <el-form-item label="订单量">
                <el-input v-model="brand.ordered"></el-input>
            </el-form-item>

            <el-form-item label="备注" prop="description">
                <el-input type="textarea" v-model="brand.description"></el-input>
            </el-form-item>

            <el-form-item label="状态" prop="status">
                <el-switch active-value="1" inactive-value="0" v-model="brand.status"></el-switch>
            </el-form-item>

            <el-form-item>`
                <el-button type="primary" @click="addBrandOnSubmit">提交</el-button>
                <el-button  @click="dialogVisible=false">取消</el-button>
            </el-form-item>
        </el-form>

    </el-dialog>
<script>
 
    new Vue({
        el:"#app",
    methods:{
 addBrandOnSubmit() {
                var _this=this;           
                    axios({                    
                        method:"post",
                        url:"http://localhost:8080/ElementDemo/addBrandServlet",                
                        data:_this.brand
                    }).then(function (resq){            
                    
})
            }
package com.itheima.service;

import com.itheima.POJO.Brand;
import com.itheima.mapper.BrandMapper;
import com.itheima.util.sqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class brandService {
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryUtils.getSqlSessionFactory();   
    public int addBrand(Brand brand){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        int i = mapper.addBrand(brand);
        sqlSession.commit();
        sqlSession.close();
        return i;
    }
package com.itheima.web.servlet;

import com.alibaba.fastjson.JSON;
import com.itheima.POJO.Brand;
import com.itheima.service.brandService;

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 java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

@WebServlet(name = "addBrandServlet", value = "/addBrandServlet")
public class addBrandServlet extends HttpServlet {
    private brandService brandService = new brandService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doget...");
        BufferedReader reader = request.getReader();
        String s = reader.readLine();
        Brand brand = JSON.parseObject(s, Brand.class);
        int i = brandService.addBrand(brand);
        System.out.println("以增加"+i+"条记录");
        String jsonString = JSON.toJSONString(i);
        response.setContentType("text/json;charset=utf-8");
        response.getWriter().write(jsonString);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost...");
        this.doGet(request, response);
    }
}


package com.itheima.mapper;

import com.itheima.POJO.Brand;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface BrandMapper {
    @Insert("insert into t_brand values (null,#{brandName},#{companyName},#{ordered},#{description},#{status});")
    int addBrand(Brand brand);
 

运行结果:

img


可以看出来addBrand方法已经给出返回值了

img


但是数据库里面的数据并没有增加

img


在addBrand方法里也提交了事务

img


我填写的信息

我想要达到的结果:表单提交之后数据库的数据会增加这个新品牌的信息

  • 写回答

2条回答 默认 最新

  • qq_25376897 2022-05-09 09:17
    关注

    img

    img


    一个是t开头,一个是tb开头?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月7日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效