mybaits基础增删改查-------mybatis(四)

2024-05-17 16:32

本文主要是介绍mybaits基础增删改查-------mybatis(四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mybatis的增删改查

  • mybatis流程:
    1 创建实体类及接口方法
    2 创建全局配置文件 configuration.xml
    3 创建 sql 映射文件 BlogMapper.xml
    4 将全局文件中维护 sql映射文件配置
    5 调用java API 执行相关sql操作
    注意sqlSession是线程非安全的

    实体java类:

    package model;public class Bloger {private Integer id;private String name;//这里需要注意变量的命名规范,因为实体变量会和sql记录一一对应,// 所以不规范的命名方式会导致mybatis执行异常private String userName;private int age;private String email;public Bloger(){}public Bloger(Integer id, String name, String userName, int age, String email) {this.id = id;this.name = name;this.userName = userName;this.age = age;this.email = email;}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 String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "BlogId:"+ getId()+ "  BlogName:"+getName()+ "  username:" + getUserName();}
    }
    

接口方法:

	package dao;import model.Bloger;import org.apache.ibatis.annotations.Select;public interface BlogerMapper {//通过接口方法 getBlogerId(Integer id)返回一个实体对象public Bloger getBlogerId(Integer id);public void addBloger(Bloger bloger);public void updateBloger(Bloger bloger);public Boolean deleteBloger(Integer id);}

mapper 配置文件:

<?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="dao.BlogerMapper"><!--model.Bloger --><select id="getBlogerId" resultType="Bloger">select id,name,user_name,age,email from mybatis_test where id = #{id}</select><!--添加博主 --><insert id="addBloger" parameterType="Bloger">INSERT  into mybatis_test(user_name,age,email,name)VALUES (#{user_name},#{age},#{email},#{name});</insert><update id="updateBloger" parameterType="model.Bloger">UPDATE mybatis_testSET user_name=#{user_name},age=#{age},email=#{email},name=#{name}WHERE id = #{id}</update><delete id="deleteBloger" parameterType="model.Bloger">DELETE  FROM mybatis_test where id =#{id}</delete>
</mapper>
package test;import dao.BlogerMapper;
import model.Bloger;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisDriver {public static void main(String[] args) throws Exception{mybatits_select();}public static SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "source/configuration.xml";InputStream inputStream= Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);return sqlSessionFactory;}public static void mybatits_add() throws IOException{// 获取SqlSessionFactory对象SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();// 获取回话对象SqlSession sqlSession=sqlSessionFactory.openSession();// 这里MyBaitis帮我们创建了代理对象BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);Bloger bloger=new Bloger();bloger.setName("樊瑞8号");bloger.setEmail("wujianqinjian8@163.com");bloger.setAge(33);bloger.setUserName("wujianqinjian8");blogerMapper.addBloger(bloger);sqlSession.commit();sqlSession.close();}public static void mybatits_delete() throws IOException{// 获取SqlSessionFactory对象SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();// 获取回话对象SqlSession sqlSession=sqlSessionFactory.openSession();// 这里MyBaitis帮我们创建了代理对象BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);blogerMapper.deleteBloger(11);sqlSession.commit();sqlSession.close();}public static void mybatits_update() throws IOException{// 获取SqlSessionFactory对象SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();// 获取回话对象SqlSession sqlSession=sqlSessionFactory.openSession();// 这里MyBaitis帮我们创建了代理对象BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);Bloger bloger=blogerMapper.getBlogerId(9);bloger.setAge(33);bloger.setUserName("wujianqinjian09");blogerMapper.updateBloger(bloger);sqlSession.commit();sqlSession.close();}public static void mybatits_select() throws IOException{// 获取SqlSessionFactory对象SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();// 获取回话对象SqlSession sqlSession=sqlSessionFactory.openSession();// 这里MyBaitis帮我们创建了代理对象BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);Bloger bloger=blogerMapper.getBlogerId(3);System.out.println(bloger);sqlSession.close();}
}
总结:看过前几章节的小伙伴,一定觉得这篇博客实在没有啥技术含量,为了保证系列的完整性,写了这个实例,需要注意的实体变量的命名需要规范从而避免不必要的麻烦!

最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!(由于广告太多,所以请先点赞,然后发博客名!)
在这里插入图片描述

创建了一个技术闲聊群:有兴趣可加我微信,拉你一起讨论杂七杂八的技术,虽然大家都不怎么活跃!
加好友备注:你的博客名 && 随便给我的任意文章点个赞或留言
在这里插入图片描述

这篇关于mybaits基础增删改查-------mybatis(四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995594

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详