MyBatis
文章平均质量分 87
洒家肉山大魔王
学习是一辈子的事情,去身上的戾气也是一辈子的修炼。
展开
-
关于Mybatis的一些问题
1、#{}和${}的区别是什么?答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数原创 2021-09-29 22:22:56 · 108 阅读 · 0 评论 -
Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!
前言SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。一、Mybatis的SQL注入Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成原创 2020-11-24 21:00:47 · 211 阅读 · 0 评论 -
MyBatis(九)------MyBatis的优缺点知多少
Mybatis的优缺点知多少优点1. 易于上手和掌握2. sql写在xml里,便于统一管理和优化。3. 解除sql与程序代码的耦合。4. 提供映射标签,支持对象与数据库的orm字段关系映射5. 提供对象关系映射标签,支持对象关系组建维护6. 支持xml方式开发,提供xml接口映射文件,编写动态sql7.支持注解方式开发,在持久层接口类引入注解...原创 2020-04-06 22:15:51 · 289 阅读 · 0 评论 -
MyBatis(八)------MyBatis动态SQL
本节内容MyBatis动态SQL的基本使用 MyBatis动态SQL的基本元素:if、set、where、bind、foreach等元素 MyBatis的动态SQL的条件判断方法前言如果使用JDBC或者类似于Hibernate的其他框架,很多时候要根据需要去拼装SQL,这是一个麻烦的事情。因为某些查询需要许多条件,比如查询角色,可以根据角色名称或者备注等信息查询,当不输入名称时使用名...原创 2019-11-03 15:43:21 · 412 阅读 · 0 评论 -
MyBatis(七)------MyBatis映射器(resultMap元素)
目录1、resultMap元素1.1 resultMap元素的构成1.2 使用map存储结果集1.3 使用POJO存储结果集1、resultMap元素resultMap的作用:定义映射规则、级联的更新、定制类型转化器等。resultMap定义的主要是一个结果集的映射关系,也就是SQL到Java Bean的映射关系定义,它也支持级联等特性。只是MyBatis现有的版本只...原创 2019-05-13 19:38:02 · 3002 阅读 · 0 评论 -
MyBatis(六)------MyBatis映射器(select元素、insert元素、update元素、select元素、sql元素)
目录1、概述2、select元素2.1 简单的select元素的应用2.2 自动映射和驼峰映射2.3 传递多个参数2.3.1 使用map接口传递参数2.3.2 使用注解传递参数2.3.3 使用Java Bean传递参数2.3.4 使用混合方式传递参数2.4 使用resultMap映射结果集2.5 分页参数RowBounds3、insert元...原创 2019-05-12 14:04:48 · 3223 阅读 · 0 评论 -
MyBatis(五)------MyBatis配置
在配置 mybatisConfig.xml 配置文件的时候,必须按照标签的顺序进行配置。如果颠倒了它们的顺序,那么在MyBatis启动阶段就会发生异常。本节主要总结一下Mybatis配置项的作用,其中propertis、settings、typeAliases、typeHandler、plugin、environments、mappers是常用的内容。原创 2019-05-05 21:40:20 · 2324 阅读 · 0 评论 -
MyBatis(四)------MyBatis的生命周期及配置实例
生命周期是组件的重要问题,尤其是在多线程的情况中,比如互联网应用、Socket请求等,而MyBatis也常用于多线程的环境中,错误使用会造成严重的多线程并发问题,因此,我们需要掌握MyBatis组件的生命周期。而MyBatis的生命周期就是每一个对象应该存活的时间,比如一些对象一次用完后就要关闭,使它们被JVM销毁,以免继续占用资源。原创 2019-05-03 21:45:29 · 6139 阅读 · 0 评论 -
MyBatis(三)------MyBatis的核心组件
1、持久层的概念和MyBatis的特点持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏,或断电,或其他情况下,重新开启系统任然可以读取这些数据。一般执行持久任务的都是数据库系统,持久层可以使用巨大的磁盘空间,也比较廉价,缺点就是比较慢。当然慢是针对内存而言的,在一般的系统中运行是不存在问题的,比如内存管理系统,但是在互联网的秒杀场景下,每秒都需要执行成千上万次数据操作,慢是不能承受的,极有可能宕机,这种情况下考虑使用Redis(NoSQL)处理它。Java互联网应用通过MyBat..原创 2019-05-03 20:23:40 · 2195 阅读 · 0 评论 -
MyBatis(二)------使用JDBC编程问题总结
学习mybatis前,不得不提一下比较远古的JDBC编程。。1 使用JDBC编程问题总结1.1 创建mysql数据库先导入创建数据库的sql脚本导入到数据库中。1.2 创建工程开发环境:myeclipse marsJdk:1.71、创建一个java工程。2、导入jar包。此时需要mysql 的数据库驱动。1.3 jd...原创 2018-12-21 21:48:58 · 397 阅读 · 0 评论 -
MyBatis(一)------目录
目录mybatis介绍 Mybatis的入门 使用jdbc操作数据库存在的问题 Mybatis的架构 Mybatis入门程序 Dao的开发方法 原始dao的开发方法 动态代理方式 SqlMapConfig.xml文件说明 输入映射和输出映射 输入参数映射 返回值映射 动态sql Where Foreach Sql片段 关联查询 一对一...原创 2018-12-21 21:27:42 · 225 阅读 · 0 评论