学习
实践
活动
工具
TVP
写文章

MyBatis(如何使用MyBatis

MyBatis是什么? DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3 -- 指定数据源 type:是否使用数据库连接池 pooled是mybatis内置的数据库连接池 mybatis内置的连接池不好用,但是spring可以代替管理数据源可以使用 使用 然后就是在测试类中使用配置好的MyBatis项目了 public class test { public static void main(String[] args) throws IOException ss.close(); } } xml中包括声明(声明版本信息及编码格式)、约束(mybatis使用的是dtd约束)、节点及属性。

7810

mybatis sql 调试(mybatis log 使用)

1.下载 mybatis log 插件 2.配置 application.yml(配置到当前调试的mapper路径即可) ?

72820
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用MyBatis框架

    框架就是偷懒的程序员将代码进行封装,之后进行重复使用的过程 2. 框架其实是一个半成品,以框架为例,连接数据库使用的驱动,url,用户名,密码等必须要告诉框架的 3. 程序员在使用框架的时候,通常以配置文件的形式告诉框架,多数会使用xml作为框架的配置文件 4. 因此,在使用框架进行开发的时候,需要编写配置文件,代码的编写反而会更少一些 5. MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(普通的旧Java对象)映射到数据库记录。 -- 用户指定使用哪一个开发环境 default : 用户指定使用的开发环境的id --> <environments default loc.equals(other.loc)) return false; return true; } } 5.5 Mybatis SQL映射文件 在Mybatis中,推荐使用mappers

    23410

    MyBatis 简单使用

    code,并且改名为 MyBatisMyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 -- MyBatis 依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId > <version>3.5.4</version> </dependency> 1.2 MyBatis 使用 1.2.1 实体类 /** * Created with IntelliJ IDEA DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd

    20320

    MyBatisMyBatis分页插件PageHelper的使用

    这篇博文主要来总结下如何使用PageHelper。    我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。 但是一旦model多了起来,复杂了起来,我们很自然的想到使用mybatis的逆向工程来生成相应的po和mapper,但是同时也会带来弊端,比如这里的分页问题就不好解决了。     在介绍如何使用这个分页插件之前,先介绍一下mybatis中的插件是如何工作的,主要作用在哪个环节。我之前有写过一篇mybatis的一篇入门文章:宏观上把我mybatis框架。 从图中可以看出,mybatis中首先要在配置文件中配置一些东西,然后根据这些配置去创建一个会话工厂,再根据会话工厂创建会话,会话发出操作数据库的sql语句,然后通过执行器操作数据,再使用mappedStatement 搞清楚了分页插件的执行情况,下面来总结下mybatis中PageHelper的使用。 1.

    42620

    Mybatis使用mybatis Interceptor对UpdateTime自动处理

    RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) public @interface UpdateTime { String value() default ""; } Mybatis 插件 使用@Intercepts标注这是个mybatis插件,@Signature标注要拦截的操作 package com.zb.iscrm.mybatisInterceptor; import com.zb.iscrm.annotation.UpdateTime DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org /dtd/mybatis-3-config.dtd"> <configuration> <!

    86630

    Mybatis【13】-- Mybatis动态sql标签怎么使用

    mybatis有一个强大的特性,其他框架在拼接sql的时候要特别谨慎,比如哪里需要空格,还要注意去掉列表最后一个列名的逗号,mybtis的动态sql可以帮助我们逃离这样的痛苦挣扎,那就是动态SQL. <if></if>,如果if里面的条件成立,那么就会使用标签的语句,但是我们可以知道where句子第一个标签是没有and的,而后面的条件都需要and。 所以有一种做法是第一个使用where 1 = 1,这个条件恒成立,后面的所有子语句都加上and,如果增加判断,那么我们只需要加<if>标签就可以了。 <! -- &可以使用and来代替 ,注意! 当使用可迭代对象或者数组时,index 是当前迭代的次数,item 的值是本次迭代获取的元素。当使用 Map 对象(或者 Map.Entry对象的集合)时,index是键,item 是值。

    93310

    Mybatis【13】-- Mybatis动态Sql标签的使用

    mybatis有一个强大的特性,其他框架在拼接sql的时候要特别谨慎,比如哪里需要空格,还要注意去掉列表最后一个列名的逗号,mybtis的动态sql可以帮助我们逃离这样的痛苦挣扎,那就是动态SQL.它还可以处理一种情况 ' " 替换符号 < <= > >= & ' " <if> 我们经常需要根据where后面的条件筛选出需要的数据,当多个条件拼接的时候,我们一般使用 <if></if>,如果if里面的条件成立,那么就会使用标签的语句,但是我们可以知道where句子第一个标签是没有and的,而后面的条件都需要and,所以有一种做法是第一个使用where 1 = 1,这个条件恒成立 -- &可以使用and来代替 ,注意! 当使用可迭代对象或者数组时,index 是当前迭代的次数,item 的值是本次迭代获取的元素。当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值。

    33230

    Mybatis 使用通用 mapper

    极其方便的使用 MyBatis 单表的增删改查。支持单表操作,不支持通用的多表联合查询。 1.1.2 相关依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version -- 扫描 mapper 所在的包,为 mapper 创建实现类【org 包改为 tk 包】--> <bean class="tk.<em>mybatis</em>.spring.mapper.MapperScannerConfigurer 情况1:没有<em>使用</em> @ld 注解明确指定主键字段 情况2:<em>使用</em> @ld 主键明确标记和数据库表中主键字段对应的实体类字段。 SelectMapper<T> List<T> select(T record) 根据实体中的属性值进行查询,查询条件<em>使用</em>等号 SelectAllMapper<T> List<T> selectAll

    76820

    Mybatis Generator的使用

    在写代码过程中,常常要写一些简单的CURD操作,为了能够把时间用在业务逻辑上,看了Mybatis Generator生成工具,根据官网的文档,改成适合自己使用的生成器。 DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0 //EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> generator的执行文件 如下: package me.xueyao; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration ; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback

    33320

    《放弃Mybatis使用tkMybatis》

    一、初始tkMybatis (1)简化sql语句,取消使用mapper.xml文件。 (2)方便统一管理,简化代码,取消臃肿的代码。 (可省略) (6)、使用TkMybatis提供的sql执行方法。 1.1.1、GenerationType.TABLE:使用表生产主键,即使用另外一张表单独维护主键。 (可省略) # mybatis mybatis: configLocation: classpath:mybatis-config.xml mapperLocations: classpath 接入即可使用。 (2)无需再去维护xml 。不需要关注sql的使用。 (3)提升开发效率。

    5.6K31

    简单使用 Mybatis Generator

    1、相关文档 官方文档: http://www.mybatis.org/generator/ 所在 github : https://github.com/mybatis/generator maven 依赖地址: https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core 2、添加依赖 jar 包 在 -- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0

    48450

    mybatis 使用经验小结

    </bean> 43 44 <bean id="sqlSessionFactory2" class="org.<em>mybatis</em>.spring.SqlSessionFactoryBean"> 45 二、如何使用Map做为参数及动态条件生成 1 <resultMap id="BaseResultMap" type="awbprint.<em>mybatis</em>.entity.PrintLayout"> 27 #{item} 28 </foreach> 29 </if> 30 31 </select> 14-31演示了如何使用 </else> </if>的效果,得借助<choose>、<when>、<otherwise>组合使用。 ; 13,27-29这几行是关键,这一段逻辑会经常使用,为了重用,可以封装一下: 1 /** 2 * 批量提交数据 3 * @param sqlSessionFactory

    41860

    MyBatis3使用

    二、MyBatis环境准备 作为这一系列文章的第1篇,今天先讲述MyBatis使用使用前先做下环境准备,以 Mysql为例,先创建数据库,假设名字为mybatis,然后创建表,表结构如下: CREATE TABLE `user` ( `id` int(11) NOT NULL 28 10:20:30'); INSERT INTO `user` VALUES ('2', 'howard', '13912345678', '2020-10-28 10:20:40'); 三、具体使用步骤 <version>3.3.0</version> </dependency> 使用的版本为3.3.0,后续都以这个版本讲述。 2、编写主配置文件 使用Xml描述,命名随意,根据公司规范,如mybatis-config.xml,以下为样例: <?xml version="1.0" encoding="UTF-8"?> <!

    17220

    Mybatis使用IN语句查询

    一、简介在SQL语法中如果我们想使用in的话直接可以像如下一样使用: select * from HealthCoupon where useType in ( '4' , '3' ) 但是如果在MyBatis 中的使用in的话,像如下去做的话,肯定会报错:     Map selectByUserId(@Param("useType") String useType)                 from HealthCoupon where useType in (#{useType,jdbcType=VARCHAR})    其中useType="2,3";这样的写法,看似很简单,但是MyBatis 但是MyBatis中提供了foreach语句实现IN查询,foreach语法如下: foreach语句中, collection属性的参数类型可以使:List、数组、map集合 ​     collection close:后缀   separator:分隔符,表示迭代时每个元素之间以什么分隔正确的写法有以下几种写法: (一)、selectByIdSet(List idList)如果参数的类型是List, 则在使用

    70220

    MyBatis Generator的使用

    对于自动生成这件事吧,我本人中立,一直没用过,主要是因为浅尝辄止,它生成的东西有些懒得看,用一下还是挺舒服的 自动生成的文件:mapper.xml 、model、dao 一、下载MyBatis Generator 的核心jar包和配置文件   官网地址:http://repo1.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/   下载解压后在 DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <! --数据库链接地址账号密码--> <context id="DB2Tables" targetRuntime="<em>MyBatis</em>3"> <jdbcConnection driverClass=

    1.7K20

    如何使用mybatis缓存

    1 一级缓存 一级缓存默认是开启的 2 二级缓存 开启二级缓存需要设置两个地方 settings设置 设置mybatis-config.xml参数 <configuration> -- 对二级缓存的细粒度控制,当前select语句是否使用二级缓存,useCache默认为true--> <select id="getAllUsers" resultMap="results insert into users(id, name) values (#{id}, #{name}) </insert> </mapper> 可以通过代码调试观察日志,看缓存<em>使用</em>的情况 [在这里插入图片描述] 可以下载代码调试更加直观的理解缓存<em>使用</em>:github代码

    14730

    MyBatis 标签的使用

    MyBatis在生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误。 使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。 没有使用if标签时,如果有一个参数为null,都会导致错误,如下示例: <update id="updateByPrimaryKeySelective" parameterType="RecruitmentConfBanner

    1.1K31

    Mybatis使用总结

    Mybatis使用总结 1.1. 多表连接查询 1.2. 表与实体类中的字段不对应 1.3. Mapper方法中参数问题 1.4. 批量删除 Mybatis使用总结 多表连接查询 如果需要使用多表连接查询,使用resultMap对应表与实体类的对应关系太麻烦,我们可以定义一个值对象,其中封装了多表连接查询返回的字段,我们直接使用值对象接收返回的结果即可 _连接的,但是在java中定义是使用驼峰式的命名风格,因此难免会出现字段不一样的情况,我们一般可以使用resultMap实现其的对应关系,或者在查询的时候,使用别名即可 Mapper方法中参数问题 默认的 mapper接口中的方法只能有一个参数,但是我们可以使用@Param("")这个注解来新增加参数 批量删除 批量删除mapper接口中方法传入的是数组,必须使用@Param()标记,否则将不能识别 使用的 我们可以在<delete>节点中使用<forEach>标签来遍历传入的数组 <!

    22710

    扫码关注腾讯云开发者

    领取腾讯云代金券