springmvc-mybatis的增删改查以及主键返回

SpringBoot整合MyBatis,使用原生dao获得插入数据后的主键 SpringBoot 原生dao层方法 比如 insertSelective 是不返回主键的,但有时候我们需要返回主键,又不想在xml写sql语句,这时我们可以 Override 原接口。 其中,keyProperty 是实体属性,keyColumn 是数据库对应字段,插入成功后,就可通过record.getGoodsId()方法获取返回的主键了。 import org.apache.ibatis... 阅读详情

基于原始dao开发,而不是mapper代理

1.usermapper.xml

<?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="cn.itcast.ssm.mapper.UserMapper">

    <!-- #{}表示一个占位符 根据id查询用户-->
    <select id="findUserById" parameterType="int" resultType="com.ssm.model.User">
        SELECT * FROM USER WHERE id=#{value}
    </select>

    <!-- ${}表示拼接sql字符串 根据姓名模糊查询用户 
        可能会造成sql注入为题,如果接收的参数为简单类型,只能为${value} 与 #{}不一样,可是使用任何名称
    -->
    <select id="findUserByName" parameterType="java.lang.String" resultType="com.ssm.model.User">
        SELECT * FROM USER WHERE USERNAME LIKE '%${value}%'
    </select>

    <!-- 插入新用户   自增主键的返回-->
    <insert id="insertUser" parameterType="com.ssm.model.User">
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        <!-- 非自增主键的返回 通过uuid() 
        <selectKey keyProperty="id" order="before" resultType="java.lang.String">
            SELECT uuid()
        </selectKey>
        如果通过这个方式 那么插入语句为
        insert into user(id,username,password) values (#{id},#{username},#{password})
        -->
        insert into user(username,password) values (#{username},#{password})
    </insert>


    <!-- 删除用户 -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from user where id=#{id}
    </delete>

    <!-- 更新用户 -->
    <update id="updateUser" parameterType="com.ssm.model.User">
        update user set username=#{username},password=#{password} where id=#{id}
    </update>
</mapper>

2.userdao.java

package com.ssm.dao;

import java.util.List;

import com.ssm.model.User;

public interface UserDAO {

    public User selectByID(int id);
    public List<User> findUserByName(String username);
    public void insertUser(User user);
    public void deleteUser(int id);
    public void updateUser(User user);
}

//dao实现

package com.ssm.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;

import com.ssm.dao.UserDAO;
import com.ssm.model.User;

public class UserDAOImpl extends SqlSessionDaoSupport implements UserDAO {

    @Override
    public User selectByID(int id) {
        SqlSession sqlsession = this.getSqlSession();

        User user = sqlsession.selectOne("findUserById", id);
        return user;
    }

    @Override
    public List<User> findUserByName(String username) {
        List<User> list = null;
        list = this.getSqlSession().selectList("findUserByName", username);
        return list;
    }

    @Override
    public void insertUser(User user) {
        this.getSqlSession().insert("insertUser", user);
    }

    @Override
    public void deleteUser(int id) {
        this.getSqlSession().delete("deleteUser", id);
    }

    @Override
    public void updateUser(User user) {
        this.getSqlSession().update("updateUser", user);
    }


}

3.springmvc控制器

package com.ssm.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

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.RequestParam;

import com.ssm.dao.UserDAO;
import com.ssm.model.User;


@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserDAO dao;

    @RequestMapping(value="/select",method=RequestMethod.GET)
    public String selectById(@RequestParam("id")int id)
    {
        System.out.println("test");
        User user = dao.selectByID(id);
        System.out.println(user.toString());
        return "index";
    }

    @RequestMapping(value="/selectbyname",method=RequestMethod.GET)
    public String findUserByName(@RequestParam("username")String username,HttpServletRequest request)
    {
        List<User> list = dao.findUserByName(username);
        request.setAttribute("userlist", list);

        return "user";
    }

    //测试,主动生成User算了
    @RequestMapping(value="/insert",method=RequestMethod.GET)
    public String insertUser()
    {
        User user = new User();
        user.setPassword("insert");
        user.setUsername("insert");
        dao.insertUser(user);
        System.out.println(user.getId());
        return "index";
    }

    @RequestMapping(value="/delete",method=RequestMethod.GET)
    public String deleteUser(@RequestParam("id")int id)
    {
        dao.deleteUser(id);
        return "index";
    }
    @RequestMapping(value="/update",method=RequestMethod.GET)
    public String updateUser()
    {
        User user = new User();
        user.setId(8);
        user.setPassword("insertAfter");
        user.setUsername("insertAfter");
        dao.updateUser(user);
        return "index";
    }


}

,以上

Spring MVC+Mybatis整合实现用户登录以及增删改查功能 SpringMVC和Extjs一起使用,为以后做一个好看的页面做铺垫 立即下载

相关推荐

mybatis 根据id批量删除的实现操作

主要介绍了mybatis 根据id批量删除的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

springboot中mybaits自动返回新增数据的主键

一 搭建项目工程 2.mapper <mapper namespace="com.ljf.spring.boot.demo.dao.OrderDao" > <!-- 添加信息 --> <insert id="addOrder" parameterType="com.ljf.spring.boot.demo.model.Order"> insert into tb_orders(order_id,order_name) values(#{orderI

健康平安的活着的专栏 2176

从零开始!Jupyter Notebook的安装教程(附带pip和Python的安装教程)

本篇文章创造性的以“授人以渔”的方式教大家如何安装Jupyter Notebook、pip和Python,以及对于Jupyter Notebook代码路径的基本设置。

保证安全,保证寿终正寝的博客 13万+

mybatis插入后返回主键id的三种方式

返回主键id的三种方式

lsl_hope_haniel的博客 2万+

京东礼品卡绑定技术解析与安全验证实践

电商系统开发中,卡券绑定是常见的业务场景,其核心在于安全验证机制的设计与实现。从技术原理来看,现代验证系统通常采用多层防护,包括前端数据加密、行为验证(如滑块验证)和风控校验等关键技术。这些机制通过设备指纹采集、请求签名验证等方式,有效防范自动化攻击。在实际工程实践中,开发者需要特别关注接口鉴权流程,正确处理安全令牌(如st/vt令牌)和请求签名。京东礼品卡绑定作为典型案例,展示了如何平衡用户体验与系统安全,其验证系统会持续升级,需要开发者跟踪接口变化。对于企业级应用,建议采用混合模式技术方案,结合浏览器自

weixin_28607671的博客 235

保姆级教程:用Python+MM-Agent搭建自己的数学建模AI助手(支持GPT-4o/DeepSeek)

本文提供了一份详细的教程,教你如何使用Python和MM-Agent框架搭建数学建模AI助手,支持GPT-4o和DeepSeek-R1等LLM后端。从环境配置、HMML知识库集成到多LLM适配和建模流程实现,手把手教你构建智能建模系统,提升数学建模效率。

k6l7m8n9的博客 452

springmvc的jdbcTemplate 插入 返回主键

public int insertCustomer(final Customer customer) { //TODO. final String sql = "insert into customer (mobile,nickname,password,score,avatar,push_key,reg_time) values(?,?,?,?,?,?,now...

weixin_34409822的博客 111

腾讯云运维工程师认证TCA--真题(最新2022.11)

解析:云原生应用的12要素,1.基准代码:一份基准代码,多份部署;解析:腾讯云主账号具备对其名下资源(包括存储桶)的最大权限,您虽然可以在存储桶策略中限制几乎所有操作,但主账号始终具备 PUT Bucket Policy 操作的权限,主账号调用该操作不检查存储桶策略。解析:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。解答:云原生五大关键技术:微服务、容器化、DevOps、持续交付。

e1210101的博客 9915

Mybatis-语法笔记

怀念二抱三抱

文天大人 2044

RC4加密算法详解

RC4(也称为 Rivest Cipher 4)是流密码的一种形式,流密码逐字节操作数据流。RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。在存储大量的信息时,RC4展现出它的实用性,面对大量的数据,

weixin_43211186的博客 1万+

用户行为数据分析 User Behavior Data from Taobao for Recommendation

一、提出问题 二、理解数据 数据来源 阿里云天池数据集:(https://tianchi.aliyun.com/dataset/dataDetail?dataId=649) 本文选取的数据集为UserBehavior.csv,共有5242880条数据。数据的具体类别如下表所示: 用户行为种类有四种,如下表所示 对于数据维度的说明如下: 在本文选取的2017年11月25日到2017年12月3日的时间范围内,不重复的用户数量为10202,不重复的商品ID数为412369,不重复的商品类目ID数为5859,

cccxxxqq的博客 5206

Spring+SpringMVC+MyBatis+JQ+BootStrap练习

技术架构:视图层(view):展示数据,与用户交互. html:静态页面,css:美化页面,js动态显示页面,jsp其实就是servlet但是因可以动态交互页面 传值你说属于前端就属于前端吧控制器(Controller):控制业务处理流程(接收请求,接收参数(封装参数,根据不同的请求调用对应 业务层处理,根据处理结果返回响应信息)) servlet(功能可以实现但是很麻烦,一个请求对应一个servlet),SpringMVC用一个共有的

tiantiantbtb的博客 1万+

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 158

springMVC + Mybatis通用Mapper使用

通用Mapper基于Mybatis的插件。开发人员不需要编写SQL,只要写好实体类,就能支持相应的单表增删改查,根据ids批量查询、新增、删除方法。 直接上代码 Maven依赖: &amp;amp;amp;lt;!-- 通用Mapper --&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp

qq_40543150的博客 1795

VSCode + QMT 量化交易完整解决方案!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1328

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Mybatis通用Mapper(tk.mybatis)的使用

一、前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 二、什么是通用Mapper 通用Mapper就是为了解决单表增删改查...

不见其长,日有所长 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MyBatis - tk.mybatis详细教程

一、前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 二、什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相

知行 6284

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

快速入门MyBatis

学习目标: MyBatis 学习完MyBatis框架 学习笔记: 1. 三层架构 界面层:和用户交互,调用业务逻辑层进行功能处理,显示请求的处理结果 业务逻辑层:接收传递的数据,完成业务逻辑;向上为界面层提供处理结果,向下问数据访问层要数据 数据访问层:和数据库交互,向上提供数据 不可跨层 2.常用的框架SSM Spring:是整合其他框架的框架,核心是IOC(控制翻转)和AOP(面向切面编程),它由20多个模块构成(大佬)。 SpringMVC:Spring家族的一员,专门用来优

Jv7box的博客 443

Mybatis通用Mapper介绍与使用

Mybatis通用Mapper介绍与使用 https://blog.csdn.net/dwf_android/article/details/79359360 mybatis通用mapper在这个git https://github.com/abel533/Mapper/wiki/1.1-java 前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在...

weixin_30693683的博客 148

Spring SpringMVC Mybatis框架整合实战

本系统后台技术栈使用Spring、Spring MVC、MyBatis框架编写,前台页面使用Html模版和jQuery框架完成页面信息展示功能。车辆管理业务模块的主要功能包括:查询车辆、添加车辆、修改车辆、删除车辆、文件上传。

草原印象的博客 674

Spring+SpringMVC+Mybatis基础框架搭建

首先在Eclipse中创建maven web项目first20190108,可以参考我的博客:第一个maven web项目的创建和运行。 SSM基础框架的全部配置结构如下: 所需要的各配置文件如下: 配置 名称 主要内容 ...

碌碌无为的小陈的博客 451

【JavaEE22-后端部分】 SpringBoot+MyBatis+SpringMVC 从零实战:手把手教你搭建图书管理系统(附源码)

从数据库设计到接口开发,从分页查询到强制登录,本文带你完整实现一个基于 SpringBoot + MyBatis + SpringMVC 的图书管理系统。不仅有用户登录、图书增删改查、批量删除、分页展示等核心功能,还深入探讨了“未登录也能操作”的安全隐患,并给出了统一返回结构 + Session 校验的解决方案。文章最后抛出“每个接口都要重复写登录校验”的痛点,为后续学习 Spring Boot 拦截器埋下伏笔。全文代码清晰、注释详尽,适合初学者快速掌握企业级开发的基本套路。 项目源码已上传 Gitee,点

弹简特的博客,步履不停,持续学习,多尝试,多复盘,多沉淀。 1万+

全网最强SpringMVC教程 | 万字长文爆肝SpringMVC(二)

SSM框架整合开发与核心功能实现 摘要:本文档详细介绍了Spring、SpringMVC和MyBatis(SSM)三大框架的整合开发流程,包括统一结果封装、异常处理、前后端功能整合以及拦截器实现。主要内容涵盖: SSM整合配置: 创建Maven web工程并添加依赖 配置Spring核心类(SpringConfig)和数据源(JdbcConfig) 配置MyBatis整合(MybatisConfig) 配置SpringMVC(SpringMvcConfig) 核心开发流程: 基于三层架构(DAO、Servi

qq_45832461的博客 1120

idea springmvc_IDEA搭建SSM(spring+springmvc+mybatis)Maven项目的入门案例

上一篇文章已经搭建好了SSM的框架,并且启动成功,今天来编写一下入门案例。文章的主要内容:1、hello world的编写2、引入log4j,在控制台打印sql3、增删改查的编写一、在mysql数据库中创建对应的表 employee表1、使用Navicat创建表,如图所示注意:主键id的数据类型为int,是为了设置它为自动递增,方便插入数据,因为插入数据时,就可以不用管id这一项了,传入 null...

weixin_39996496的博客 149
上一篇: springmvc-mybatis整合
下一篇: activity启动service的两种方式
cst_code
博客等级 码龄10年 4粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值