B站狂神说+mybatis增删改查操作

news/2024/11/2 18:34:35/

文章目录

      • 1.新增mapper接口
      • 2.修改mapper接口同级目录下的xml文件(UserMapper.xml)
      • 3.编写src同级别目录下的test文件
      • 4.万能的Map

1.新增mapper接口

java">package com.aloha.dao;import com.aloha.pojo.User;import java.util.List;public interface UserMapper {// 查询全部用户List<User> getUserList();// 根据ID查询用户User getUserById(int id);// 增加用户int addUser(User user);// 修改用户int updateUser(User user);// 删除用户int deleteUser(int id);
}

2.修改mapper接口同级目录下的xml文件(UserMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个对于的Dao/Mapper接口-->
<mapper namespace="com.aloha.dao.UserMapper"><!--select查询语句--><select id="getUserList" resultType="com.aloha.pojo.User">select * from mybatis.user;</select><select id="getUserById" parameterType="int" resultType="com.aloha.pojo.User">select * from mybatis.user where id = #{id}</select><insert id="addUser" parameterType="com.aloha.pojo.User">insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});</insert><update id="updateUser" parameterType="com.aloha.pojo.User">update mybatis.userset name=#{name}, pwd=#{pwd}where id=#{id};</update><delete id="deleteUser">delete from mybatis.user where id=#{id}</delete>
</mapper>

3.编写src同级别目录下的test文件

在这里插入图片描述

java">package com.aloha.dao;import com.aloha.pojo.User;
import com.aloha.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;public class UserDaoTest {@Testpublic void test() {// 1. 获取SqlSessionFactory对象SqlSession sqlSession = MybatisUtils.getSqlSession();// 2. 执行sql// 方式一: getMappertry {UserMapper userdao = sqlSession.getMapper(UserMapper.class);List<User> userList = userdao.getUserList();for (User user : userList) {System.out.println(user);}}catch(Exception e) {e.printStackTrace();}finally {// 3. 关闭SqlSessionsqlSession.close();}}@Testpublic void test2() {SqlSession sqlSession = MybatisUtils.getSqlSession();try {UserMapper usermapper = sqlSession.getMapper(UserMapper.class);User user = usermapper.getUserById(1);System.out.println(user);}catch(Exception e) {e.printStackTrace();}finally {// 3. 关闭SqlSessionsqlSession.close();}}@Testpublic void test3() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);int res = mapper.addUser(new User(4, "周杰伦", "12333"));if(res > 0) {System.out.println("插入成功");}// 提交事务sqlSession.commit();sqlSession.close();}@Testpublic void test4() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);int res = mapper.updateUser(new User(1, "无敌", "12333"));if(res > 0) {System.out.println("修改成功");}sqlSession.commit();sqlSession.close();}@Testpublic void test5() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);int i = mapper.deleteUser(4);System.out.println(i);sqlSession.commit();sqlSession.close();}
}

4.万能的Map

使用场景:比如插入一个对象,不想填所有的方法

UserMapper

java">// 万能的Mapperint addUser2(Map<String, Object> map);

UserMapper.xml

    <insert id="addUser2" parameterType="map">insert into mybatis.user (id, pwd) values (#{userId},#{passWord});</insert>

测试方法

java">    @Testpublic void test6() {SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map<String, Object> map = new HashMap<String, Object>();map.put("userId", 4);map.put("passWord", "222333");mapper.addUser2(map);sqlSession.close();}

http://www.ppmy.cn/news/1543938.html

相关文章

数据库 示例解析

描述&#xff1a; 找出顾客订单中所花运费比他所下订单平均运费的两倍都还贵的订单号&#xff0c;列出cOrderNo。运费属性名为mShippingCost&#xff0c;顾客号属性为cCustomerID。 代码示例&#xff1a; SELECT o.cOrderNo FROM orders o WHERE o.mShippingCost > (SELE…

个人总结cangjie仓颉程序设计-(一)

文章目录 基本了解注释常用数据类型 常用包基本写法变量定义&初始化数组定义&初始化默认数据类型字符串-数字转换字符-数字转换 本专栏还在持续更新&#xff1a; Cangjie仓颉程序设计-个人总结 这是双子专栏&#xff1a; 仓颉编程cangjie刷题录 基本了解 注释 注释…

LocalDate 类常用方法详解(日期时间类)

LocalDate 类常用方法详解 LocalDate 是 Java 8 引入的日期时间API中的一个类&#xff0c;用于表示不含时间和时区的日期&#xff08;年、月、日&#xff09;。以下是一些常用的 LocalDate 方法&#xff1a; 创建 LocalDate 实例 now()&#xff1a;获取当前日期 LocalDate t…

MySQL企业常见架构与调优经验分享

在企业中,MySQL 数据库的合理架构设计和性能调优至关重要,以下是关于 MySQL 企业常见架构与调优经验的分享: 一、MySQL 企业常见架构 主从复制架构 架构特点:由一个主数据库(Master)和多个从数据库(Slave)组成。主数据库负责写入数据,从数据库复制主数据库的事务日志(…

功能强大视频编辑软件 Movavi Video Editor Plus 2024 v24.2.0 中文特别版

Movavi Video Editor Plus中文修改版是一款功能强大的视频制作编辑软件&#xff0c;使用能够帮助用户快速从录制的素材中制作成一个精美的电影&#xff0c;支持进行视频剪辑&#xff0c;支持添加背影、音乐和各种音乐&#xff0c;软件使用简单&#xff0c;无需任何的经验和专业…

QT中TextEdit或者QLineEdit以十六进制显示数组数据

QT中TextEdit以十六进制显示数组数据 在Qt(一种跨平台的C++图形用户界面应用程序开发框架)中,如果你想在QTextEdit中以十六进制格式显示数组数据,你可以使用以下步骤: 创建一个 QTextEdit 控件 在你的Qt应用程序中创建一个 QTextEdit 控件,用于显示文本。QTextEdit *tex…

Scikit-LLM:大模型加持的scikit-learn

作为 Python 和 ML 的初学者&#xff0c;我经常依赖 scikit-learn 来完成几乎所有的项目。它的简单性和多功能性使实现各种算法成为一种令人着迷的体验。 现在&#xff0c;令人兴奋的是&#xff0c;scikit-learn 通过Scikit-LLM引入了 LLM 功能&#xff0c;从而进一步发展。这…

vue2开发 对接后端(go语言)常抛异常情况以及处理方法汇总

背景 在Vue2开发中&#xff0c;与后端&#xff08;Go语言&#xff09;接口对接时出现异常通常是由于前后端之间的数据交互出现了问题。常见的异常包括数据格式不匹配、请求方法不匹配、请求头部信息错误、跨域请求问题等。 常见异常 如出现报错提示&#xff1a; json : can…