Mbatis使用
Mybatis的搭建过程
导入jar
创建mybatis的核心(全局)配置文件mybatis-config.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">
<configuration> </configuration>
创建映射文件xxxMapper.xml,并配置
创建mapper接口,实现两个绑定:
- 接口全限定名要和映射文件的namespace保持一致
- 接口中方法名和sql语句的id保持一致
获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类
测试
Mybatis获取参数值的两种方式
${}
:insert into ssm values(null, admin, 10, 男)
Statement:必须使用字符串拼接的方式操作SQL,一定要注意单引号问题
#{}
:insert into ssm values(null, ?, ? ,?)
PrepareStatement:可以使用通配符操作SQL,因为在为String赋值时,可以自动加单引号,因此无需注意单引号的问题
使用建议:建议使用#{} ,在特殊情况下,需要使用${},例如模糊查询和批量删除
不同的参数类型,${}和#{}的不同取值方式
- 当传输参数为单个String或基本数据类型和其他包装类
#{}
:可以以任意的名字获取参数值${}
:只能以${value}
或${_parameter}
获取
- 当传输参数为JavaBean时
#{}
和${}
都可以通过属性名直接获取属性值,但是需要注意 ${}的单引号问题
- 当传输多个参数时,mybatis会默认将这些参数放在map集合中
- 两种方式:
- 键为0,1,2,3....N-1,以参数为值
- 键为param1,param2,param3...paramN,以参数位置
- 两种方式:
- 当传输Map参数时
1.#{}和${}
都可以通过键的名字直接获值,但是要注意${}的单引号问题 - 命名参数
- 可以通过@Parm("key") 为map集合指定键的名字
- 当传输的参数为List或Array,mybatis会讲List或Array放在map中
- List以list为键,Array以array为键
Mbatis使用的更多相关文章
- Mbatis Oracle 第一次插入失败 useGeneratedKeys
<insert id="insertAgentInfo" parameterType="pd" useGeneratedKeys="false& ...
- Mbatis——动态SQL
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- Mbatis错误信息整理
***每存在一对接口和xml文件,必须在xml文件中定义好mapper标签及namespace ***每对接口必须和xml文件名必须一致 <mapper>标签中的names ...
- Mbatis是什么?怎么运行?
一 . Mybatis是什么? Mybatis是一个持久层框架,其中编写的过程中sql语句是需要程序员自己去编写,Mybatis也有 一些映射(输入参数映射,输出参数映射),Mybatis是 ...
- Mbatis逆向工程常遇错误
org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may e ...
- mbatis中的#{}和${}
#{}和${}的区别是什么?a.#{}是预编译处理,${}是字符串替换. b.Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set ...
- mbatis动态sql中传入list并使用
<!--Map:不单单forech中的collection属性是map.key,其它所有属性都是map.key,比如下面的departmentId --> <select id=&q ...
- mybatis0201 01复习
mybatis是什么? mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架(因为mybatis提供输入和输出的映射,需要程序员自己写sql语句) ...
- IDEA搭建SSM出现的一些错误
下面是我这几天整合SpringMVC+Spring+MyBatis框架遇到的一些问题 ,在这里总结一下: 1:HTTP Status 500 - Request processing failed; ...
随机推荐
- day01:判断与循环(20170213)
#1测试判断用户与密码是否正确:import getpassusername = "llz"password = "123455"_username = inp ...
- Istio 将被捐赠给开源基金会 | 云原生生态周报 Vol. 47
作者 | 陈俊.徐迪.陈有坤.李鹏.敖小剑 业界要闻 1.Google Cloud CEO 表示将把 Istio 项目捐赠给基金会 Istio 项目找到了理想的发展方向: 捐赠给开源基金会. 2.Ko ...
- 仿开源框架从零到一完整实现高性能、可扩展的RPC框架 | 6个月做成教程免费送
去年年就在写一本付费小册,今年年初基本上就写完了,本来预计计划是春节上线结果由于平台的原因一直拖着没上.五一前跟平台联系给的反馈是五月份能上,结果平台又在重构,停止小册的申请和上线,最后我考虑了一下决 ...
- 使用盒子定位布局时margin和padding使用
首先说的是区别: 如图所示,黄色padding,绿色margin,中间的content是内容,margin和padding的值是不计算在内容高宽的.这里补充的是在实际情况中边框宽度也是不计算在内的.这 ...
- 基本sql语法
SQL 语句主要可以划分为以下 3 个类别. DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象的定义.常用 ...
- C#用Linq对列表/集合进查询
namespace ---> System.Linq; 使用&&进行多条件查询 也可以直接使用Lambda表达式+扩展方法的写法:
- [wordpress使用]004_导入多媒体
在写文章的时候难免要需要用到图片.音频或者视频文件,wordpress不仅提供本地上传多媒体文件功能,更提供在线导入多媒体.能更方便,范围更大的获取我们所需要的资源. 本地上传文件 在写文章的界面,选 ...
- [wordpress使用]002_主题
使用WordPress作为博客内容管理系统有一个很大的好处是,WordPress拥有大量的优秀的免费模板.你所需要的是下载安装,和稍作修改.下面接着开始WordPress教程:WordPress主题 ...
- [Firefox附加组件]0002.添加菜单项
Add-onSDK 还不能为火狐浏览器提供一个API添加新的菜单项.但它是可扩展的设计,所以任何人都可以建立和发布模块,使用插件开发者.大牛埃里克沃尔德写的MenuItems模块,能够使我们很方便的添 ...
- 05 . Nginx的反向代理与负载均衡
Nginx负载均衡 客户端的访问都被代理到后端的一台服务器上,最终会出现性能瓶颈,从而导致效率降低,前端用户的访问速度急速下降,要解决这个问题就需要添加多台httpd,同时承受大量并发连接,每台服务器 ...