文章目录

  • MyBatis实现增删改查功能(总)
    • 一、创建数据库、表、数据
    • 二、MyBatis的Maven项目创建
    • 三、MyBatis的Maven模块创建
    • 四、配置jar包pom.xml
    • 五、MyBatis的项目结构
    • 六、创建 jdbc.properties
    • 七、创建 mybatis-config.xml
    • 八、创建utils包 SqlSession工具类
    • 九、创建pojo包的Supermarket类
    • 十、创建mapper包接口方法 SupermarketMapper
    • 十一、创建mapper资源映射文件 SupermarketMapper
    • 十二、创建测试类

MyBatis实现增删改查功能(总)

  • 单增加,且获取自增的主键
  • 批量增加
  • 单删除
  • 批量删除
  • 单修改
  • 单查询
  • 全部查询
  • 一 到 八(MyBatis工程配置)

一、创建数据库、表、数据

CREATE DATABASE USE `ssm`;DROP TABLE IF EXISTS `t_supermarket`;CREATE TABLE `t_supermarket` (`id` int NOT NULL AUTO_INCREMENT COMMENT '商品id',`name` varchar(50) COMMENT '商品名称',`price` double  COMMENT '商品价格',`address` varchar(100) COMMENT '商品产地',`quality_guarantee_period` varchar(30) COMMENT '商品的保质期',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;insert  into `t_supermarket`(`id`,`name`,`price`,`address`,`quality_guarantee_period`) values
(1,'可乐',3,'合肥','6个月'),
(2,'雪碧',3,'合肥','6个月'),
(3,'巧克力',8,'南京','10个月'),
(4,'曲奇饼干',16,'北京','12个月'),
(5,'卫龙辣条',3,'上海','6个月'),
(6,'康师傅葱香排骨面',5,'上海','6个月'),
(7,'大鸡腿',8,'杭州','10个月'),
(8,'卤蛋',2,'深圳','6个月'),
(9,'泡椒凤爪',2,'合肥','6个月'),
(10,'火腿肠',1.5,'合肥','6个月');

二、MyBatis的Maven项目创建



三、MyBatis的Maven模块创建



四、配置jar包pom.xml

    <dependencies><dependency><!--junit测试--><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.10</version></dependency></dependencies>

五、MyBatis的项目结构

六、创建 jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=111111

七、创建 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--MYBatis核心配置文件中的标签必须要按照指定的顺序去配置properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--><!--引入 properties 文件--><properties resource="jdbc.properties"/><!--全局设置--><settings><!--日志--><setting name="logImpl" value="STDOUT_LOGGING"/><!--将下划线映射为驼峰--><setting name="mapUnderscoreToCamelCase" value="true"/><!--开启延迟加载--><setting name="lazyLoadingEnabled" value="true"/><!--按需加载,它要与延迟加载配合的,默认就是false,可以不写这段代码,但是最好写上--><setting name="aggressiveLazyLoading" value="false"/></settings><!--设置类型别名--><typeAliases><!--通过包来设置类型别名,指定包下所有的类型,将全部拥有默认的别名--><package name="com.sgz.mybatis.pojo"/></typeAliases><!--连接数据库--><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url"value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--引入mybatis的映射文件--><mappers><package name="com.sgz.mybatis.mapper"/></mappers></configuration>

八、创建utils包 SqlSession工具类

public class SqlSessionUtil {public static SqlSession getSqlSession() {SqlSession sqlSession = null;try {InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory build = builder.build(inputStream);sqlSession = build.openSession(true);} catch (IOException e) {e.printStackTrace();}return sqlSession;}
}

九、创建pojo包的Supermarket类

public class Supermarket {private Integer id;private String name;private Double price;private String address;private String quality_guarantee_period;public Supermarket() {}public Supermarket(Integer id, String name, Double price, String address, String quality_guarantee_period) {this.id = id;this.name = name;this.price = price;this.address = address;this.quality_guarantee_period = quality_guarantee_period;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getQuality_guarantee_period() {return quality_guarantee_period;}public void setQuality_guarantee_period(String quality_guarantee_period) {this.quality_guarantee_period = quality_guarantee_period;}@Overridepublic String toString() {return "Supermarket{" +"id=" + id +", name='" + name + '\'' +", price=" + price +", address='" + address + '\'' +", quality_guarantee_period='" + quality_guarantee_period + '\'' +'}';}
}

十、创建mapper包接口方法 SupermarketMapper

public interface SupermarketMapper {/*** 通过实体类,并获取自增的主键,添加商品(单)** @param supermarket*/void insertGoods(Supermarket supermarket);/*** 通过id,删除商品(单)** @param id*/void deleteGoods(@Param("id") Integer id);/*** 通过实体类,修改商品(单)* @param supermarket*/void updateGoods(Supermarket supermarket);/*** 通过id查询商品(单)* @param id* @return*/Supermarket selectGoodsById(@Param("id") Integer id);/*** 查询全部商品(全部)* @return*/List<Supermarket> selectAllGoods();/*** 批量删除商品(批量)* @param ids*/void deleteMoreGoods(@Param("ids") Integer[] ids);/*** 批量添加商品(批量)* @param supermarketList*/void insertMoreGoods(@Param("lists") List<Supermarket> supermarketList);}

十一、创建mapper资源映射文件 SupermarketMapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--对应接口的全类名-->
<mapper namespace="com.sgz.mybatis.mapper.SupermarketMapper"><!--void insertGoods(Supermarket supermarket);--><insert id="insertGoods" useGeneratedKeys="true" keyProperty="id">insert into t_supermarketvalues (null, #{name}, #{price}, #{address}, #{qualityGuaranteePeriod});</insert><!--void deleteGoods(@Param("id") Integer id);--><delete id="deleteGoods">deletefrom t_supermarketwhere id = ${id};</delete><!-- void updateGoods(Supermarket supermarket);--><update id="updateGoods">update t_supermarketset name                     = #{name},price                    = #{price},address                  = #{address},quality_guarantee_period = #{qualityGuaranteePeriod}where id = #{id}</update><!--Supermarket selectGoodsById(@Param("id") Integer id);--><select id="selectGoodsById" resultType="Supermarket">select *from t_supermarketwhere id = #{id}</select><!--List<Supermarket> selectAllGoods();--><select id="selectAllGoods" resultType="Supermarket">select *from t_supermarket</select><!-- void deleteMoreGoods(@Param("ids") Integer[] ids);--><delete id="deleteMoreGoods">delete from t_supermarket where id in(<foreach collection="ids" item="id" separator=",">#{id}</foreach>)</delete><!--void insertMoreGoods(List<Supermarket> supermarketList);--><insert id="insertMoreGoods">insert into t_supermarketvalues<foreach collection="lists" item="sup" separator=",">(null, #{sup.name}, #{sup.price}, #{sup.address}, #{sup.qualityGuaranteePeriod})</foreach></insert></mapper>

十二、创建测试类

public class TestMybatis {/*** 通过实体类,并获取自增的主键,添加商品(单)*/@Testpublic void testInsertGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);Supermarket supermarket = new Supermarket(null, "麻辣鸭脖", (double) 5, "合肥", "1个月");mapper.insertGoods(supermarket);System.out.println(supermarket);}/*** 通过id,删除商品(单)*/@Testpublic void testDeleteGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);mapper.deleteGoods(15);}/*** 通过name,设置实体类,修改商品(单)*/@Testpublic void testUpdateGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);Supermarket supermarket = new Supermarket(1, "可乐", 3.0, "合肥", "1个月");mapper.updateGoods(supermarket);}/*** 通过id查询商品(单)*/@Testpublic void testSelectGoodsById() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);Supermarket supermarket = mapper.selectGoodsById(2);System.out.println(supermarket);}/*** 查询全部商品(全部)*/@Testpublic void testSelectAllGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);List<Supermarket> supermarkets = mapper.selectAllGoods();supermarkets.forEach(System.out::println);}/*** 批量删除(批量)*/@Testpublic void testDeleteMoreGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);Integer[] integers = new Integer[]{4, 5, 6, 8};mapper.deleteMoreGoods(integers);}/*** 批量添加(批量)*/@Testpublic void testInsertMoreGoods() {SqlSession sqlSession = SqlSessionUtil.getSqlSession();SupermarketMapper mapper = sqlSession.getMapper(SupermarketMapper.class);Supermarket supermarket1 = new Supermarket(null,"康师傅葱香排骨面",5.0,"合肥","6个月");Supermarket supermarket2 = new Supermarket(null,"牛肉",10.0,"合肥","6个月");Supermarket supermarket3 = new Supermarket(null,"豆干",2.0,"合肥","6个月");Supermarket supermarket4 = new Supermarket(null,"香肠",5.0,"合肥","6个月");List<Supermarket> supermarkets = Arrays.asList(supermarket1, supermarket2, supermarket3, supermarket4);mapper.insertMoreGoods(supermarkets);}}

MyBatis实现增删改查功能(总)相关推荐

  1. Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建

    Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...

  2. 使用EF框架实现MVC的增删改查功能!!!Entity Framework

    一.什么是EF? ADO.NETEntity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.ADO.NET Entity Fram ...

  3. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

    一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...

  4. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...

    在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...

  5. mybatis实现增删改查xml配置和后端Java编程完整教程

    mybatis实现增删改查xml配置和后端编程教程 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...

  6. mybatis完整增删改查入门实例

    mybatis完整增删改查入门实例 编程步骤 ①创建Java工程. ②导入jar包. ③创建sqlMapConfig.xml配置文件,这是mybatis的入口. ④创建数据库,数据库表user_c,插 ...

  7. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  8. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  9. bootstrap表格遍历_BootStrap实现带有增删改查功能的表格(DEMO详解)

    前言 bootstrap的表格样式,有类似EasyUI的表格,也有卡片式表格,放到移动端显示,各有千秋.但是BootStrap自带的表格是没有操作列的,网上的资源不少,但是都是比较单一.零碎,JS.C ...

最新文章

  1. 链客区块链技术问答社区
  2. Ionic创建页面以及页面之间跳转、页面添加返回按钮、新增底部页面
  3. java源码导入eclipse_spring5源码如何导入eclipse
  4. ELF文件的格式和加载过程
  5. Docker中搭建FastDFS文件系统(多图)
  6. 使用SQLDMO中“接口SQLDMO.Namelist 的 QueryInterface 失败”异常的解决方法
  7. TensorFlow 2.0 - tf.data.Dataset 数据预处理 猫狗分类
  8. Apache查看并发及TIME_WAIT过多的解决
  9. quartus仿真19:JK触发器序列1001检测器
  10. 大航海北斗星导航系统V1.10
  11. 【CSS】虎躯一震!flex=1 和 flex-grow=1 竟然不一样!
  12. AD域服务器中批量创建帐户
  13. 五、鼎捷T100总账管理之总账报表及查询
  14. 第一个FPGA项目:led_flash简介项目流程和项目中遇到的问题
  15. 屏下摄像头,实现这一全面屏终极方案有多难?
  16. 无源贴片晶振四角引脚_四脚贴片晶振有方向之分吗
  17. 音乐、音效素材库,好听的BGM都在这~
  18. android ping tools,PingTools
  19. 【华为OD机试真题 python】星际篮球争霸赛【2022 Q4 | 100分】
  20. 计算属性computed里面的getter和setter

热门文章

  1. unity3D游戏开发实战(一)——角色移动与对白
  2. 2007年度網絡最新警句,樂不死你
  3. rabbitmq自动及手动ACK
  4. 纳尼亚传奇2 片尾曲
  5. python游戏解法_友尽妙招:用Python解“智力游戏”
  6. GVINS编译出现大量的error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope错误
  7. 计算机计磁盘术语,计算机术语-磁盘
  8. 程序设计与算法(三)第09周测验(2020春季)
  9. 微服务SpringCloud Alibaba架构
  10. Java求今天是周几的程序代码