首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏好好学习

    MyBatis常用特性运用

    概要 今天我们接着来学习MyBatis的一些常用特性,包括别名,类型处理器,动态SQL 如何使用MyBatis 在本小节,我将通过一个例子介绍MyBatis 中一些常用特性的运用,包括类型处理器,动态SQL 别名 MyBatis 中有个比较好用的特性就是别名,这是为了减少在配置文件中配置实体类的全限定名的冗余。运用如下: 首先在MyBatis的配置文件中配置别名: <! MyBatis 内置了很多类型处理器(typeHandlers),详细可以参考MyBatis官方文档,对枚举类的处理的是通过EnumTypeHandler和EnumOrdinalTypeHandler两个处理器来处理了 在这里插入图片描述 动态SQL的使用 MyBatis的强大特性之一便是它的动态SQL,主要是处理 根据不同条件拼接SQL语句,例如拼接时添加必要的空格,去掉列表中的最后一列的逗号,MyBatis的动态SQL mapper namespace="com.jay.chapter2.mapper.Student3Mapper"> <resultMap id="studentResult" type="com.jay.chapter<em>2</em>

    56830发布于 2021-08-18
  • 来自专栏吴伟祥

    Mybatis 3.5新特性——Optional支持

    Mybatis 3.5 发布有段时间了,终于支持了 Optional ,这么实用的特性,竟然还没人安利……于是本文出现了。 文章比较简单,但非常实用,因为能大量简化恶心的判空代码。 时代码是这样写的: 1 2 3 4 5 @Mapper public interface UserMapper { @Select("select * from user where id = 你的代码可以这么写了: 1 2 3 4 5 @Mapper public interface UserMapper { @Select("select * from user where id 至于 Optional 怎么使用,本文不作赘述——JDK 12都发布了,你要我普及JDK 8的”新特性”吗?大家自行百度吧,百度很多了。关键词:Java 8 Optional 。 思考 Mybatis 已支持 Optional ,Mybatis Spring Boot Starter 也已跟进,引入如下依赖即可: 1 2 3 4 5 <dependency> <groupId

    2.6K00发布于 2019-04-18
  • 来自专栏Java Web

    MyBatis(2)——MyBatis 深入学习

    'student2',2); INSERT INTO card VALUES (1,1111); INSERT INTO card VALUES (2,2222); 注意: 这里并没有在数据库中设置外键 'student2'); INSERT INTO class VALUES (1,'Java课',1); INSERT INTO class VALUES (2,'Java课',2); 其中 class VALUES(2,1); INSERT INTO student_select_course VALUES(2,2); 根据要求我们来设计一下 SQL 语言: SELECT s.student_id 二级缓存示例 我们在同一个 SessionFactory 下查询 id = 1 的数据,只有第一次需要执行 SQL 语句,从后都是从缓存中取出来的: 参考资料:how2j.cn-MyBatis教程、Java3y-Mybatis 【缓存、代理、逆向工程】 参考资料: 《Java EE 互联网轻量级框架整合开发》 《Spring MVC + MyBatis开发从入门到项目实战》 How2j-MyBatis 系列教程 全能的百度和万能的大脑

    1K30发布于 2018-04-26
  • 来自专栏全栈程序员必看

    Mybatis笔记(2

    一、Mybatis的Dao层实现 1.1 代理开发方式介绍 Mapper 接口开发需要遵循以下规范: 1、 Mapper.xml文件中的namespace与mapper接口的全限定名相同 2、 Mapper select>查询 <insert>:插入 <update>:修改 <delete>:删除 <where>:where条件 <if>:if判断 <foreach>:循环 <sql>:sql片段抽取 四、Mybatis 个未实现的方法,其中setNonNullParameter为java程序设置数据到数据库的回调方法,getNullableResult为查询时 mysql的字符串类型转换成 java的Type类型的方法 ③在MyBatis 核心配置文件中进行注册 ④测试转换是否正确 1.2 plugins标签 MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据 groupId> <artifactId>jsqlparser</artifactId> <version>1.0</version> </dependency> ②在mybatis

    37810编辑于 2021-12-23
  • 来自专栏SQL/ORACLE

    MyBatis2

    ; /* 子流程1: SQL查询参数的设置 */ stmt = prepareStatement(handler, ms.getStatementLog()); /* 子流程2: Cause: " + e, e); } } } } } 复制代码 子流程2 SQL查询结果集的封装: 复制代码 // SimpleExecutor类 public List query 最后贴一张调用栈到达Java类的set方法中的快照: MyBatis缓存 MyBatis提供查询缓存,用于减轻数据库压力,提高性能。MyBatis提供了一级缓存和二级缓存。 同一个SqlSession对象对象执行2遍相同的SQL查询,在第一次查询执行完毕后将结果缓存起来,这样第二遍查询就不用向数据库查询了,直接返回缓存结果即可。MyBatis默认是开启一级缓存的。 MyBatis的二级缓存对细粒度的数据级别的缓存实现不友好,比如如下需求:对商品信息进行缓存,由于商品信息查询访问量大,但是要求用户每次都能查询最新的商品信息,此时如果使用mybatis的二级缓存就无法实现当一个商品变化时只刷新该商品的缓存信息而不刷新其它商品的信息

    68260发布于 2021-03-07
  • 来自专栏js笔记

    vite2 特性2

    jsx 没好用 安装插件@vitejs/plugin-vue-jsx npm install @vitejs/plugin-vue-jsx -D 配置在vite.config.js import vueJsx from '@vitejs/plugin-vue-jsx' ... /** * https://vitejs.dev/config/ * @type {import('vite').UserConfig} */ export default defineConfig({ ... //这里

    48720编辑于 2022-10-25
  • 来自专栏JAVA相关

    一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程

    @toc一、MyBatis简介1.1 MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了 1.2 MyBatis特性MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis可以使用简单的 ,则去镜像网站中下载没有,则去中央仓库中下载本人其他相关文章链接1.一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程2.二、搭建MyBatis 采用xml方式,验证CRUD(增删改查操作)3.三、MyBatis核心配置文件详解4.四、MyBatis获取参数值的两种方式(重点)5.五、MyBatis的增删改查模板(参数形式包括:String、对象 )9.九、MyBatis动态SQL10.十、MyBatis的缓存11.十一、MyBatis的逆向工程12.十二、MyBatis分页插件

    48500编辑于 2025-03-10
  • 来自专栏捞月亮的小北

    2. 搭建Mybatis

    MySQL 5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.Driver MySQL 8版本使用jdbc8驱动,驱动类使用:com.mysql.cj.jdbc.Driver 2、 核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息 核心配置文件存放的位置是src/main/resources目录下 创建mapper接口​ MyBatis中的mapper 因此一个映射文件对应一个实体类,对应一张表的操作 MyBatis映射文件用于编写SQL,访问以及操作表中的数据 MyBatis映射文件存放的位置是src/main/resources/mappers 目录下 2MyBatis中可以面向接口操作数据,要保证两个一致: a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致 b>mapper接口中方法的方法名和映射文件中编写 //读取MyBatis的核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //创建SqlSessionFactoryBuilder

    24110编辑于 2023-12-01
  • 来自专栏Java实战博客

    2 Mybatis 高级进阶

    result column = "password" property = "user.password"></result> </resultMap> <resultMap id = "orderMap<em>2</em>"

    25410编辑于 2022-01-19
  • 来自专栏云计算linux

    MyBatis.2剖析

    SqlSessionFactoryBuilder入手, 咱们先看看源码是怎么实现的: SqlSessionFactoryBuilder源码片段: 1 public class SqlSessionFactoryBuilder { 2 3 //Reader读取mybatis配置文件,传入构造方法 4 //除了Reader外,其实还有对应的inputStream作为参数的构造方法, 5 //这也体现了mybatis properties和environments的解析: XMLConfigBuilder: 1 public class XMLConfigBuilder extends BaseBuilder { 2 通过以上源码,我们就能看出,在mybatis的配置文件中: 1. configuration节点为根节点。 2. DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis

    18710编辑于 2024-12-17
  • 来自专栏全栈程序员必看

    SSM-Mybatis(2)

    ; Mapper.xml <select id="getUserByList" parameterType="map" resultMap="user"> select * from mybatis.user Integer> map = new HashMap<String, Integer>; map.put("startIndex",1); map.put("pageSize",2)

    15720编辑于 2022-09-22
  • 来自专栏java学习

    Mybatis学习笔记2

    Mybatis学习笔记2 本章目录描述: 1、Dao开发方法 1.1需求 1.2SqlSession的使用范围 1.3原始Dao开发方式 1.4 Mapper动态代理方式 2、SqlMapConfig.xml null; try { //通过sqlsession调用selectOne方法获取一条结果集 //参数1:指定定义的statement的id,参数22、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同 3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType void insertUser(User user)throws Exception; } 接口定义有如下特点: 1、 Mapper接口方法名和Mapper.xml中定义的statement的id相同 22 SqlMapConfig.xml配置文件 2.1配置内容 SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases

    80970发布于 2018-04-17
  • 来自专栏CSDN博客专栏

    SSM第六讲 MyBatis的高级特性

    MyBatis的高级特性 1 学习目标 1,理解Mybatis多对多关系 2,掌握Mybatis的延迟加载 3,掌握Mybatis缓存 4,掌握逆向工程生成mapper和实体类 2 Mybatis (); UserMapper userMapper2 = session2.getMapper(UserMapper.class); User user3 = userMapper2.findById = factory.openSession(); UserMapper mapper2 = session2.getMapper(UserMapper.class); User user2 tips:如果更改了任何数据那么二级缓存和一级缓存都将被清空 3.4 MyBatis缓存深入 一级缓存测试: @Test public void test2() throws IOException = factory.openSession(); UserMapper mapper2 = session2.getMapper(UserMapper.class); User user2

    1.1K10发布于 2020-09-27
  • 来自专栏火属性小虫

    MyBatis基础2(XML)

    , 9 9月 2021 作者 847954981@qq.com 后端学习, 我的编程之路 MyBatis基础2(XML) XML模式开发顺序: 创建DO对象 创建DAO对象,配置@Mapper注解 创建XML文件,并完成resultMap配置 创建对应的XML语句 在MyBatis中使用XML首先需要在 application.properties 文件中添加配置。 DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3- [CDATA[ >= ]]> #{time} </if> </select> 这里 >=、<、<=、>、&、| 这类表达式会导致MyBatis解析失败,所以我们需要使用 <! ,now(),now()) MyBatis会自动优化最后一个逗号,确保SQL正确。

    78920编辑于 2023-02-22
  • 来自专栏测试基础

    MyBatis-2MyBatis之xml 配置版

    MyBatis之xml 配置版 1 MyBatis 介绍 MyBatis 是一款标准的 ORM 框架,被广泛的应用于各企业开发中。 2 MyBatis 引入与配置 2.1 pom.xml依赖 首先在pom文件中添加依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId 中配置 MyBatis 基础属性; mybatis.mapper-locations:配置 Mapper 对应的 XML 文件路径; mybatis.type-aliases-package:配置项目中实体类包路径 3.3 mapper编写与调用 3.3.1 查询示例 1、指明对应文件的 Mapper 类地址: <mapper namespace="com.example.demo.dao.UserMapper"> 2、 DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-

    68210发布于 2020-09-16
  • 来自专栏JavaPark

    Mybatis 入门指北】2Mybatis 入门实例及 CRUD

    前言 上一篇文章中我们讲了什么是持久化以及 Mybatis 的相关简介,今天就来看看如何创建一个 Mybatis 入门实例以及如何利用 Mybatis 进行 CRUD。 PRIMARY KEY (id) ); 向数据库中插入数据 INSERT INTO user (id, name, password) VALUES (1, '村雨遥', '123456'),(2, 实例 编写 MyBatis 核心配置文件,在 main/resources 文件下新建 mybatis-config.xml ,配置数据库; <? DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis SQL 语句 UserDao mapper = sqlSession.getMapper(UserDao.class); User user = mapper.getUserById(2)

    48230编辑于 2022-06-16
  • 来自专栏Devops专栏

    2. MyBatis入门案例

    2. 创建Maven项目 2.设置 Maven 的相关依赖 <! 在resources下创建一个名为log4j.properties #2. 可以在Mybatis官网入门中找到配置模板 http://www.mybatis.org/mybatis-3/zh/getting-started.html # 2. 在com.lijw.dao包下创建一个接口,名为UserMapper # 2.

    44310编辑于 2022-01-17
  • 来自专栏阿飞的学习记录

    Mybatis的多表操作2

    一、Mybatis的多对多操作 例: 一个用户可以有多个角色 一个角色可以赋予多个用户 方法: 1、建立两张表:用户表,角色表 让用户表和角色表具有多对多的关系。 2、建立两个实体类:用户实体类和角色实体类 让用户和角色的实体类能体现出来多对多的关系 各自包含对方一个集合引用 //role角色表 private Integer roleId;

    31310编辑于 2022-03-23
  • 来自专栏捞月亮的小北

    2. Mybatis 入门程序

    --mybatis核心依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> < (使用mybatis的类库,编写mybatis程序,连接数据库,做增删改查就行了。) 在MyBatis当中,负责执行SQL语句的那个对象叫做什么呢? 已经验证了: mybatis核心配置文件的名字,不一定是:mybatis-config.xml。可以是其它名字。 mybatis核心配置文件存放的路径,也不一定是在类的根路径下。可以放到其它位置。 2. LOG4J LOG4J2 STDOUT_LOGGING ....... 注意:log4j log4j2 logback都是同一个作者开发的。 ‍

    24610编辑于 2024-06-11
  • 来自专栏js笔记

    vite2 特性3

    安装 vuex4和vue-router4 npm install vuex@next vue-router@next -S vue-router使用 创建文件src/router/index.js import { createRouter, createWebHistory } from 'vue-router' // new 转换成工厂函数 const router = createRouter({ history: createWebHistory(), routes: [

    18820编辑于 2022-10-25
领券