Mybatis需要注意的细节】的更多相关文章

一.mybatis 基本配置 最近几天一直在学习mybatis,看了一些源码,本文讲述mybatis的一些基本配置和基本的用法和注意到一些细节.个人时间和精力有限,本文属于流水账类型,不成体系,算是自己的个人笔记吧. 1.本案例所使用的数据库为mysql,数据库的脚本代码如下: CREATE TABLE `message` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `COMMAND` varchar(16) DEFAULT NULL…
自我总结,欢迎拍砖! 目的:在需要返回int,long等基础类型数据的情况下,尽量在mybatis的Mapper中用基础类型的包装类. 原因:当查询的字段为空值时,mybatis会返回null,用基础类型接收则会出现异常,但是用包装类就把这个问题规避了. 一.读数据环境准备: 创建student表(无主键): create table student(id int,name varchar(20),idCard bigint,classNo varchar(10)); insert into s…
1.mybatis对sql执行后会对结果进行封装,如果没有返回任何记录,只是封装后的对象没有值,而对象并不为空null: (这个问题疏忽坑了两次,在对返回数组结果进行判断的时候,我用的if(Array!=null) 结果是判断正确,应该if(Array.length!=0)做判断记录是否为空) 2.mapper的xml文件中,if<test="ids.length!=0  and ids!=null "> 这里的与运算是用的and 3.数组数据的绑定问题 在这里传进来的的参…
mybatis第二篇 1.${}和#{}的区别 1.#在传参的时候,会自动拼接单引号:$不能拼接单引号; 2.$传参时,一般不支持jdbcType指定类型的写法;#则可以;如: ​ #{name,jdbcType=VARCHAR} 3.$一般用于在sql中拼接表名,结果排序,模糊查询等操作;其他正常参数传递一般使用 4.因为${}使用后不会自动拼接单引号,所以可能还会导致sql攻击 select * from user where username=${username} and passwor…
Mybatis要解决的问题: 1. 将sql语句硬编码到java代码中,如果修改sql语句,需要修改java代码,重新编译.系统可维护性不高. 设想如何解决? 能否将sql单独配置在配置文件中. 2. 数据库连接频繁开启和释放,对数据库的资源是一种浪费. 设想如何解决? 使用数据库连接池管理数据库连接. 3. 向preparedStatement中占位符的位置设置参数时,存在硬编码(占位符的位置,设置的变量值) 设想如何解决? 能否也通过配置的方式,配置设置的参数,自动进行设置参数 4. 解析结…
一.加载pom依赖包 <!--spring-boot开发热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> 二.使用描述 (1)当你使用IDE开发的时候,…
今天中午回到工位已经是12:20多了,没有时间睡觉了,本想着还能提前开始,结果看了点新闻之后,又是12:40了,所以新闻坚决不能看,执行力. 今天主要记录一下MyBatis中的特殊符号的问题,这个问题已经在面试中被问到了两回了,但都没答好,事不过三,记录下来,下一次绝对不能再在这里出问题了. 一.mybatis特点 同hibernate一样,mybatis是一个持久层框架,通过这个框架可以减化我们持久层代码的开发.面试的时候我们会经常被问到这个框架同hibernate的比较,下面先罗列几点myb…
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis/tree/7892801d804d2060774f3720f82e776ff318e3ba 前言: 在调用mybatis的查询条件时,之前,遇到需要验证多个参数的查询时,往往需要把所有参数都绑定到一个实体中去,然后调用获取. 现在,我们来详细描述mybatis传递参数的细节. 一.单个参数: 1.定义mapper接口: package com.xm.mappe…
1.前言 努力学习完ssm框架之后,终于也成功的把三大框架的使用以及配置文件细节忘得一干二净.为了努力捡起来以及方便今后的复习,决定写一篇博客记录一下. 本博客的所有分析都是在持久层接口以及接口中的方法已经创建的基础上进行的. 本博客对于Mybatis中标签的细节属性不做过多探讨,主要着重于Mybatis框架的底层原理和大体使用步骤. 本博客着重于以Mybatis的xml配置方式为主,作源码分析. 本博客中的所有图片均为原创,如需原图,请联系作者. 2. mybatis简介 持久层框架Mybat…
一.mybatis的基础crud的操作 先在接口中,写对应的方法名称,返回类型,访问符. 之后在映射配置文件中,写具体的实现 二.mybati中crud的细节 1.模糊查询 这是接口中 这是xml中 有两种表示方式: 第一种: 模糊查询时的百分号%,并没有在sql语句中进行体现,而是要在代理对象使用该方法时,在对应的参数里面加入, 因为第一种方式,是用的预编译的形式,用的是占位符,所以当代理对象调用方法时,传入的参数,是完全的插入到了 sql语句中了. 第二种:采用的是字符串拼接的方式,而且里面…