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; ...
随机推荐
- shell脚本定时执行|关闭jar文件
编写shell脚本,用于启动.关闭jar程序: #!/bin/bash #description: 启动重启server服务 #需要配置环境变量后才能直接使用java这些变量 export JAVA_ ...
- Cookie&Sission 部分方法
Cookie:创建Cookie:Cookie cookie = new Cookie(String cookieName,String cookieValue); cookie.setMaxAge(i ...
- java远程执行linux服务器上的shell脚本
业务场景:需要从服务器A中新增的文件同步至本地服务器,服务器A中内存有限,需同步成功之后清除文件. Java调用远程shell脚本,需要和远程服务器建立ssh链接,再调用指定的shell脚本. 1.创 ...
- EF用导航熟悉遍历从表时,删除主表出错
var entitys= Repository.Table.Where(a => ids.Contains(a.UUID)).ToList(); entitys.ForEach(a => ...
- 【JavaScript数据结构系列】01-数组Array
[JavaScript数据结构系列]01-数组Array 码路工人 CoderMonkey 转载请注明作者与出处 # [JavaScript数据结构系列] # 01-数组Array 数组: 是有序的元 ...
- (八)Filter&ThreadLocal实现处理事务
ConnectionContext.java package com.aff.bookstore.web; import java.sql.Connection; public class Conne ...
- SSIS 数据类型 第二篇:变量的数据类型
变量(Variable)用于存储在Package运行时用到的值,集成服务支持两种类型的变量:用户自定义的变量和系统变量,自定义的变量由用户来定义,系统变量由集成服务来定义. 变量的用途十分广泛,用于容 ...
- C#线程 基本同步
第二部分: 基本同步 同步要点 到目前为止,我们已经描述了如何在线程上启动任务,配置线程以及双向传递数据.我们还描述了局部变量如何专用于线程,以及如何在线程之间共享引用,从而允许它们通过公共字段进行 ...
- GNS3内网配置虚拟机测试
一.背景:考虑在GNS3内网配置一台虚拟机系统,用于大流量测试. 二.环境: 1.win10系统已安装:GNS3和配套GNS3VM虚拟机(版本号:2.2.7):vmware虚拟机winxp(名称为:W ...
- HTTP 冷知识 | HTTP 请求中,空格应该被编码为 %20 还是 + ?
HTTP 请求中,空格应该被编码为什么?今天我们走进 RFC 文档和 W3C 文档,了解一下这个「史诗级」大坑. 1.%20 还是 + ? 开始讲解前先看个小测试,在浏览器里输入 blank test ...