首页 > 其他分享 >Mybatis练习CRUD

Mybatis练习CRUD

时间:2023-07-22 11:34:32浏览次数:29  
标签:mapper UserMapper 练习 CRUD sqlSession user sql Mybatis id

namespace

namespcae中的包名要和mapper接口中的方法名一致

- id:就是对应的namespace中的方法名

- resultType: Sql语法执行的返回值

- parameter:    参数类型

1、select(选择、查询语句)

1、编写接口

List<User> getUserList();

2、编写mapper中sql语句

<select id="getUserList" resultType="com.fan.pojo.User">
select * from mybatis.user
</select>

3、测试
@Test
public void text(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for(User user :userList){
System.out.println(user);
}
sqlSession.close();
}

2、Insert

1、编写接口


//添加用户
int addUser(User user);

 

2、编写mapper中sql语句

<insert id="addUser" parameterType="com.fan.pojo.User">
insert into mybatis.user (id,name,pwd) values(#{id},#{name},#{pwd})
</insert>

3、测试
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(4,"樊**","666666"));
sqlSession.commit();
sqlSession.close();

}

3、修改 select

1、编写接口
//修改用户
int updateUser(User user);

2、编写mapper中sql语句
<update id="updateUser" parameterType="com.fan.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id= #{id}
</update>
 
3、测试
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"王五","555555"));
sqlSession.commit();
sqlSession.close();

}

4、删除 delete
1、编写接口
//删除用户
int deleteUser(int id);


2、编写mapper中sql语句
<delete id="deleteUser" parameterType="com.fan.pojo.User">
delete from mybatis.user where id =#{id}
</delete>
3、测试


@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();


}

注意!!!
添加,删除,修改 都需要提交事务
  sqlSession.commit();
-----------------------------

如果表中字段非常多,可以用Map或者 注解
Map传递参数,直接在sql中取出key即可 【parameterType="map"】
对象传递参数,直接在sql中取出对象的属性即可 【parameterType="objiect"】
只有一个基本参数类型的情况下,可以直接在sql中取到
1、编写接口
//万能Map
int addUser2(Map<String,Object> map);


2、编写在对应的mapper中sql语句

<insert id="addUser2" parameterType="map">
insert into mybatis.user (id,name,pwd) values(#{UserId},#{UserName},#{password})
</insert>

3、测试
@Test
public void addUser2(){
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","565656");
map.put("UserName","樊**");
mapper.addUser2(map);
sqlSession.commit();
sqlSession.close();

}
 


 





 
 
 

 

 

标签:mapper,UserMapper,练习,CRUD,sqlSession,user,sql,Mybatis,id
From: https://www.cnblogs.com/fanstu/p/17573061.html

相关文章

  • mybatisPlus
    mybatisPlusmybatisplus基础:mybatisspringspringmvc为什么要学习mybatisplus?可以解决大量时间所有的CRUD代码它都可以自动化完成简介简化jdbc操作简化mybatis快速入门网站:快速开始|MyBatis-Plus(baomidou.com)使用第三方依赖导入对应的依赖研究......
  • MySQL之视图CRUD
    MySQL之视图CRUD介绍视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SOL查询......
  • 20230720练习总结
    CF1523HHoppingAroundtheArray写在前面:毒瘤翻译!!!原题面有一句"Agrasshoppercanhoparoundthesellsaccordingtothefollowingrule"翻译过来就是不能删去起点和终点,翻译题面没有这句话!!!调了一个下午,答案一直比标答小!!!先忽略询问的终点,那么从\(i\)起跳,一定是跳到\([......
  • Mybatis笔记
    如何获得Mybatis?maven仓库:<!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></depende......
  • PHP代码练习Demo02
    <!DOCTYPEhtml><html><body><?phpecho"<h2>PHPisfun!</h2>";echo"helloworld"; echo"I'mabouttolearnPHP!<br>";echo"This","string","was&qu......
  • 字符串练习
    P4081[USACO17DEC]StandingOutfromtheHerdP只有一个串怎么做?那就是P2408不同子串个数。跑一遍后缀排序,按排序结果遍历后缀,考虑每个后缀会产生多少新串。为保证每个不同的串只被记录一次,只考虑去掉它与上一个串的重复部分,即为\(height_i\)。多个串类似,在串中加上......
  • 数据结构练习笔记——链式栈的设计与实现
    链式栈的设计与实现【问题描述】采用链式存储结构实现栈的基本操作,并借助栈实现进制转换。【输入形式】整数【输出形式】二进制数【样例输入】10【样例输出】1010#include<iostream>usingnamespacestd;#include<stdlib.h>structsnode{intdata;sn......
  • Mybatis属性配置示例(properties)
    属性(properties)这些属性可以在外部进行配置,并可以进行动态替换。既可以在典型的Java属性文件中配置这些属性,也可以在properties元素的子元素中设置。参考官网:https://mybatis.net.cn/configuration.html#properties首先创建数据库配置文件db.propertiesdriver=com.mysql.c......
  • sql 练习(hive,spqrk)
    数据准备表1课程表(course)*字段名**数据类型*课程编号(CNO)string课程名称(CNAME)string教室编号(TNO)string表2成绩表(score)*字段名**数据类型*学生编号(SNO)string课程标号(CNO)string分数(DEGREE)int表3学生表(student)*字段名**数据......
  • redis练习
    redis相关练习内容环境搭建缓存短信验证码缓存菜品信息SpringCache缓存套餐数据前言1).当前系统存在的问题之前我们已经实现了移动端菜品展示、点餐、购物车、下单等功能,但是由于移动端是面向所有的消费者的,请求压力相对比较大,而我们当前所有的数据查询都是从数据库......