mybatis之XML配置文件入门案例-增删改查

3. Mybatis的XML配置文件(重点) mybatis配置文件+动态sql+判断条件是否成立+会自动去除子句的开头的and或or+插入set关键字,并会删掉额外的逗号+遍历deleteByIds方法中传递的参数ids集合+通过属性refid,指定包含的SQL片段 阅读详情

mybatis的环境搭建

第一步:创建maven工程并导入坐标
第二步:创建实体类和dao的接口
第三步:创建Mybatis的主配置文件 SqlMapConifg.xml
第四步:创建映射配置文件 UserDao.xml
第五步:编写测试类

步骤开始:

包的层级关系的划分:
在这里插入图片描述

**第一步:创建maven工程并导入坐标

<dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

**

第二步:创建实体类和dao的接口

**
数据库表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) DEFAULT NULL,
  `birthday` varchar(200) NOT NULL,
  `sex` char(1) DEFAULT NULL,
  `address` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

实体类

import java.io.Serializable;


public class User implements Serializable {
    private Integer id;
    private String username;
    private String birthday;
    private String sex;
    private String address;
}

创建接口

import cn.hs.daomain.User;
import java.util.List;

//用户的持久层接口
public interface UserDao {
    /**
     * 查询全部的接口
     */
    List<User> findAll();

    /**
     * 保存的方法
     * @param user
     */
    void saveUser(User user);

    /**
     * 删除的方法
     * @param id
     */
    void del(Integer id);

    /**
     * 修改的方法
     * @param user
     */
    void update(User user);

    /**
     * 根据ID查询的方法
     * @param id
     * @return
     */
    User findOne(Integer id);
}

第三步:创建Mybatis的主配置文件 SqlMapConifg.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis的主配置文件-->
<configuration>
    <!--配置环境-->
    <environments default="mysql">
        <!--default:随意配置
        名字上面要和下面的mysql相对应-->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的四个基本信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/user"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="cn/hs/dao/UserDao.xml"/>
    </mappers>
</configuration>

**

第四步:创建映射配置文件 UserDao.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">
        <!--namespace="cn.hs.dao.UserDao"==>接口的全限定类名-->
<mapper namespace="cn.hs.dao.UserDao">
    
    <!--配置查询所有 resultType指的是返回值类型-->
    <select id="findAll" resultType="cn.hs.daomain.User">
        SELECT * from user
    </select>
    
    <!--配置添加 parameterType是参数类型-->
    <insert id="saveUser" parameterType="cn.hs.daomain.User">
        INSERT INTO user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})
    </insert>

    <!--配置删除 parameterType是参数类型-->
    <delete id="del" parameterType="java.lang.Integer">
        DELETE FROM user WHERE id=#{id}
    </delete>

    <!--配置修改 parameterType是参数类型-->
    <update id="update" parameterType="cn.hs.daomain.User">
        update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
    </update>

    <!--配置根据id查询 resultType是返回值类型-->
    <select id="findOne" resultType="cn.hs.daomain.User">
      SELECT * from user where id=#{id}
    </select>
</mapper>

第五步:编写测试类**

import cn.hs.dao.UserDao;
import cn.hs.daomain.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;

public class TestCrud {
   private InputStream in;
   private SqlSession sqlSession;
   private UserDao userDao;

   //把公共的方法提取出来
   @Before //用于在测试方法前执行
   public void init()throws Exception{
      //1.读取配置文件,生成字节输入流
      in= Resources.getResourceAsStream("SqlMapConfig.xml");
      //获取SqlSessionFactory
      SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
      //3.获取SqlSession对象
       sqlSession = factory.openSession();
      //获取dao的代理对象
       userDao = sqlSession.getMapper(UserDao.class);
   }
   
   //把公共的方法提取出来
   @After  //用于在测试方法之后执行
   public void destory() throws Exception{
      //释放资源
      sqlSession.close();
      in.close();
   }

   /**
    * 查询所有
    */
   @Test
    public void findAll(){
       //执行查询的所有方法
       List<User> users = userDao.findAll();
       //遍历
       for (User user : users) {
           System.out.println(user);
       }
   }

   /**
    * 保存数据
    * @throws Exception
    */
   @Test
   public void save()throws Exception{
      //封装数据
      User user = new User();
      user.setUsername("mz");
      user.setSex("男");
      user.setAddress("测试数据");
      user.setBirthday("2019-2-2");
      //执行sql语句
      userDao.saveUser(user);
      //提交
      sqlSession.commit();

   }

   /**
   * 删除
   */
   @Test
   public void del(){
      //执行sql语句
      userDao.del(1);
      //提交
      sqlSession.commit();
   }

   /**
    * 修改的方法
    */
   @Test
   public void update(){
      //封装数据
      User user = new User();
      user.setId(2);
      user.setUsername("update");
      user.setAddress("修改成功");
      user.setBirthday("2022-22-22");
      //执行sql语句
      userDao.update(user);
      //提交
      sqlSession.commit();
   }

   /**
    * 根据id查询
    */
   @Test
   public void findOne(){
      //执行sql语句
      User user = userDao.findOne(2);
      //提交
      System.out.println(user);
   }
}

over~

【MyBatis持久层框架】配置文件实现增删改查实战案例(下) MyBatis 支持自定义 sql,存储过程以及高级映射,它几乎免除了所有的 JBDC 代码以及设置参数和获取结果集的工作。解决了使用 JBDC 基础性的代码操作数据库时面临的 Java 代码的硬编码和操作繁琐的问题。 阅读详情

相关推荐

【MyBatis持久层框架】配置文件实现增删改查实战案例

我们为什么使用 MyBatis 开发呢?不难理解,MyBatis 作为一款优秀的持久层框架,支持自定义 sql,存储过程以及高级映射,它几乎免除了所有的 JBDC 代码以及设置参数和获取结果集的工作。解决了使用 JBDC 基础性的代码操作数据库时面临的 Java 代码的硬编码和操作繁琐的问题。

zhangxia_的博客 3181

MyBatis学习——配置相关xml实现增删改查

配置mybatis的配置文件。mybatis.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> ...

MADE_哒哒 265

【视频编码学习】AVS3参考软件HPM-4.1简单配置运行

1、用Visual Studio2017打开HPM-4.1文件夹 2、找到文件夹目录下x86_windows文件夹,因为是在win上运行该代码 3、然后找到对应vs版本(我当时2017版)的解决方案sln文件,双击打开可以看到该解决方案下的全部项目。 4、重新生成解决方案时发现提示sdk版本问题,所以右键点击所有的项目,选择重定向项目,修改一下sdk版本。 ...

谦虚勤奋诚实感恩 3100

mybatis配置文件xml中插入新数据

初用mybatis,发现很好的一个操作数据库的框架,里面有一些小技巧,挺简单,很实用,记录一下: mybatis的插入语句: <insert id="insertAsset" parameterType="Criteria"> <selectKey resultType="java.lang.String" keyProperty="condition.Id" orde...

weixin_30799995的博客 426

频谱分析常见坑:STM32的ADC采样+FFT处理时如何避免这5个错误

本文深入剖析了在STM32平台上进行ADC采样与FFT频谱分析时,工程师最常遇到的五个关键错误与性能陷阱。内容涵盖从采样频率设置、频谱泄露处理、ADC配置优化,到谐波识别校准及系统实时性设计,提供了详尽的避坑指南与实战调优策略,旨在帮助开发者构建稳定、精确的嵌入式频谱分析或波形识别系统。

7up55的博客 624

【项目实战】TARA威胁分析和风险评估

TARA是信息安全领域中的一种风险评估方法,在汽车信息安全的上下文中,TARA分析特别重要,因为它可以帮助识别和管理与智能网联车辆相关的各种威胁,包括数据泄露、未经授权的访问、远程操控等。通过TARA分析,企业可以制定出针对性的安全目标、产品要求和产品安全声明,以确保汽车及其零部件符合相关的信息安全标准和法规。此外,TARA分析还可以与数字化建模系统结合,以更系统化和高效的方式进行风险评估和管理。

奶爸的编程之路,也就一周冷个三天 2710

MyBatis通过配置文件XML方式对数据库中学生表进行增删改查以及多条件查询

1.首先建立学生表: 2.需要用到的相关包: 3.mybatis.xml配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-...

qq_725話的博客 595

Python爬虫实战:爬取国家企业信用信息公示系统(最新反反爬技术解析)

在当今大数据时代,企业信用数据对于市场分析、风险评估和商业决策具有重要价值。国家企业信用信息公示系统作为官方权威的企业信息平台,包含了全国各类企业的注册信息、行政处罚、经营异常等关键数据。复杂的反爬机制(动态Token、验证码、请求频率限制)数据渲染方式多样(部分内容由JavaScript动态加载)法律与合规风险(需遵守《网络安全法》和网站Robots协议)本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的企业信用信息爬虫,并重点解析应对各种反爬策略的解决方案。

2201_76125261的博客 2696

mybatis(xml配置sql增删改查,mapper动态代理,sqlmapconfig属性配置)

mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。 mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂 由会话工厂创建sqlSession即会话,操作...

qq_35240226的博客 1185

基于STM32设计的智能井盖(Lora组网+4G上云)_423

设计并实现了一种基于 STM32 与 Lora 通信技术的智能井盖监测系统。系统采用 STM32F103C8T6 作为核心控制器,在井盖节点端集成水位检测、有害气体检测、倾斜角度检测以及 GPS 定位等功能模块,对井盖内部环境状态和姿态变化进行实时监测。各井盖节点通过 Lora 无线通信方式组成网络,将采集的数据发送至主机(网关)进行汇聚处理。

719

QGIS之七建筑面由DSM和DEM获取高度并可视化

QGIS建筑面由DSM和DEM获取高度并可视化

yilvyangguang520的博客 3511

Mybatis学习(二)—— 利用XML配置文件/注解的方式实现CRUD增删改查等操作

文章目录前言一、增二、删三、改一、增 前言 通过前文Mybatis学习(一)—— 新手完成第一个Mybatis程序介绍的完成一个Mybatis的步骤可得,若再来新的需要操作的sql语句时,只需要更改第6步中的UserMapper接口内容,以及第7步中的Mapper.xml配置文件。很大程度简化了代码的编写。 本篇文章将从修改上述两个文件的内容,实现CURD功能。 一、增 UserMapper.java文件中: public interface UserMapper { void addUser(.

人生海海 567

Android P车机添加屏幕多指全局自定义手势操作

参照原生状态栏全局下拉手势拦截,实现屏幕全局多指手势响应操作,并对手势进行转换为KeyEvent,以便项目自定义手势行为或应用拦截手势行为。

shusuanly的博客 1251

Mybatis学习(1)——mybatis介绍 & 入门案例 & 全局配置文件详解 & 增删改查 + mybatis事务 & mapper.xml文件#{} 和 ${} & 动态SQL入门

1.全局配置文件mybatis-config.xml文件,驼峰命名,日志,起别名,配置连接数据库; 2.增删改查,如何用mybatis实现,select,update,insert,delete,#{},${}; 3.mapper.xml文件,parameterType和resultType,@param注解; 4.mybatis事务初步,打开自动提交,sqlSessionFactory.openSession(true); 5.动态SQL入门,if,foreach,set,代码片段,常见的转义符;

Arya的博客,专注后端领域 2277

北斗导航 | ILS(仪表着陆系统)、MLS(微波着陆系统)和GBAS(地基增强系统)的性能对比

最 早 的 GBAS 系 统 是 **局 域 增 强 系 统(LAAS)**,它是 1990 年由美国 Honeywell 公司 和 NASA 共 同 完 成 的 差 分 GPS(DGPS)演 变 而 来 的。1998 年,LAAS 被 ICAO 采 纳为 GBAS。2009 年 9 月 3 日 Honeywell 公 司 的GBAS 系统通过了 **CAT-I 精密进近着陆系统**的设计认证 ,而 **CAT-II 和 CAT-III 系统的研发和验证工作也正在有序的进行中**

尘世冰封的专栏 3986

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Mybatis学习(1)——mybatis介绍 &amp; 入门案例 &amp; 全局配置文件详解 &amp; 增删改查 + mybatis事务 &amp; mapper

在类import org.apache.ibatis.type.TypeAliasRegistry;中定义了很多预定义的别名别名映射的类型intIntegerintegerIntegerdoubleDoublefloatFloatbooleanBooleandateDatedecimalBigDecimalbigdecimalBigDecimal把模式改为xml文件的模式未来在mapper.xml文件中,就可以不写全类名了

2401_89734031的博客 746

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java操作数据库----MyBatis

1). 没有数据库连接池的情况客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要关闭连接对象从而释放资源,每次执行SQL时都需要创建连接、销毁链接,这种频繁的重复创建销毁的过程是比较耗费计算机的性能。2). 有数据库连接池的情况数据库连接池是个容器,负责分配、管理数据库连接(Connection)程序在启动时,会在数据库连接池(容器)中,创建一定数量的Connection对象允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

跟着豪哥学Java 1124

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

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[SQL | MyBatis] MyBatis 简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

joyride_run的博客 827

JavaWeb -MyBatis

面向特定方法编程实现: 只在管理bean对象的过程中, 主要通过底层的动态代理机制, 对特定的方法进行编程优势: 代码无侵入, 减少重复代码, 提高效率, 维护方便。

2401_89172201的博客 994

Mybatis实现步骤

package com.itheima.test; import java.io.InputStream; import com.itheima.dao.IUserDao; import com.itheima.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactor.

qq_41661075的博客 155

Mybatis框架第一天

MyBatis框架概述 mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。 mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。 采用 OR

weixin_49131718的博客 151

Mybatis学习之路-Day1

Mybatis学习之路-Day1 1、什么是框架? ​ 框架是软件开发的一套解决方案,不同的框架解决的是不同的问题 ​ 框架可以提高效率 2、三层架构 ​ 表现层:用于展示数据的 ​ 业务层:处理业务需求 ​ 持久层:和数据库交互的 3、持久层技术解决方案 ​ JDBC技术: Connection、PreparedStatement、ResultSet ​ Spring的JdbcTemplate:Spring中对JDBC的简单对接 ​ Apached的DBUtils:和Spring的JdbcTemplate

weixin_45653543的博客 882

Mybatis认识与学习

通过Mybatis的快速入门,我们明白了,通过Mybatis可以很方便的进行数据库的访问操作。但是大家要明白,其实java语言操作数据库呢,只能通过一种方式:使用sun公司提供的 JDBC 规范。Mybatis框架,就是对原始的JDBC程序的封装。那到底什么是JDBC呢,接下来,我们就来介绍一下。JDBC: ( Java DataBase Connectivity ),就是使用Java语言操作关系型数据库的一套API。本质:sun公司官方定义的一套操作所有关系型数据库的规范,即接口。

qq_51773341的博客 1081

【JavaEE】Mybatis XML配置文件实现增删改查

Mybatis使用xml文件实现数据库的简单增删改查操作

yj20040627的博客 2401

MyBatis入门——MyBatis XML配置文件(3)

MyBatis的开发有两种方式:1、注解 2、XML。使用MyBatis的注解方式,主要是来完成一些简单的增删改查功能。,也就是将SQL语句写在XML配置文件中。MyBatis XML开发的方式需要以下两步:1、配置数据库连接字符串和MyBatis。2、写持久层代码。

cool_tao6的博客 1859

MyBatis的XML映射配置文件

2.3 MybatisX的使用。2.1 XML配置文件规范。2.2 XML配置文件实现。

weixin_53622554的博客 4510
上一篇: mybatis之入门案例-注解写法【新手入门】
下一篇: mybatis新手入门之注解写法-增删改查
wangxuejava
博客等级 码龄7年 6粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值