mybatis学习笔记,简介及快速入门

  

1. mybatis是什么?

,MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO (Plain Old Java object,普通的Java对象)映射成数据库中的记录.MyBatis让程序员将主要精力放在SQL上,通过MyBatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写SQL)满足需要SQL语句。

2。MyBatis的框架结构


 MyBatis学习笔记,简介及快速入门

3。MyBatis的配置文件

& lt; ? xml  version=" 1.0 ",编码=皍tf - 8”, ?比;   & lt; ! DOCTYPE 配置   PUBLIC “-//mybatis.org//DTD  Config  3.0//EN”   “http://mybatis.org/dtd/mybatis-3-config.dtd”在   & lt; configuration>   & lt; !——,加载属性文件,——比;   & lt; properties 资源=癲b.properties”比;   & lt; !——属性中还可以配置一些属性名和属性值,,,在   & lt; !——, & lt; property  name=" jdbc.driver ", value="/祝辞,——比;   & lt;/properties>   & lt; !——,全局配置参数,需要时再设置,——比;   & lt; !——, & lt; settings>   时间/settings> & lt;——比;   & lt; !——,别名定义,——比;   & lt; typeAliases>   & lt; !——,针对单个别名定义   类型:类型的路径   别名:别名   ,——比;   & lt; !——, & lt; typeAlias 类型=癱n.itcast.mybatis.po.User”,别名=坝没А?祝辞,——比;   & lt; !——,批量别名定义,   指定包名,mybatis自动扫描包中的阿宝类,自动定义别名,别名就是类名(首字母大写或小写都可以)   ——比;   & lt; package  name=" cn.itcast.mybatis.po "/比;   & lt;/typeAliases>   & lt; !——,和春天整合后,环境配置将废除——比;   & lt; environments 默认=胺⒄埂北?   & lt; environment  id=胺⒄埂痹?   & lt; !——,使用jdbc事务管理、事务控制由mybatis——比;   & lt; transactionManager  type=" JDBC,/比;   & lt; !——,数据库连接池,由mybatis管理——比;   & lt; dataSource 类型=盎慵北?   & lt; property  name="司机",value=" https://www.yisu.com/zixun/$ {jdbc.driver} ",/比;   & lt; property  name=" url ", value=" https://www.yisu.com/zixun/$ {jdbc.url} ",/比;   & lt; property  name="用户名",value=" https://www.yisu.com/zixun/$ {jdbc.username} ",/比;   & lt; property  name="密码",value=" https://www.yisu.com/zixun/$ {jdbc.password} ",/比;   & lt;/dataSource>   & lt;/environment>   & lt;/environments>   & lt; !——,加载,映射文件,——比;   & lt; mappers>   & lt; mapper 资源=皊qlmap/User.xml”/比;   & lt; !——通过资源方法一次加载一个映射文件,——比;   & lt; !——, & lt; mapper 资源=坝成淦?UserMapper.xml”/祝辞,——比;   & lt; !——,通过mapper接口加载单个,映射文件   遵循一些规范:需要将映射器接口类名和mapper.xml映射文件名称保持一致,且在一个目录,中   上边规范的前提是:使用的是mapper代理方法   ,——比;   & lt; !——, & lt; mapper 类=癱n.itcast.mybatis.mapper.UserMapper”/祝辞,——比;   & lt; !——,批量加载映射器   指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载   遵循一些规范:需要将映射器接口类名和mapper.xml映射文件名称保持一致,且在一个目录,中   上边规范的前提是:使用的是mapper代理方法   ,——比;   & lt; package  name=" cn.itcast.mybatis.mapper "/比;   & lt;/mappers>   & lt;/configuration>

4。映射文件

& lt; ? xml  version=" 1.0 ",编码=皍tf - 8”, ?比;   & lt; ! DOCTYPE 映射器   PUBLIC “-//mybatis.org//DTD  Mapper  3.0//EN”   “http://mybatis.org/dtd/mybatis-3-mapper.dtd”在   & lt; !——,名称空间命名空间,作用就是对sql进行分类化管理,理解sql隔离,   注意:使用mapper代理方法开发,名称空间有特殊重要的作用   ——比;   & lt; mapper 名称空间=安馐浴北?   & lt; !——,在,映射文件中配置很多sql语句,——比;   & lt; !——,需求:通过身份证查询用户表的记录,——比;   & lt; !——,通过,选择执行数据库查询   id:标识,映射文件中的,sql   将sql语句封装到mappedStatement对象中,所以将id称为声明的id   parameterType:指定输入,参数的类型,这里指定int型,   #{}表示一个占位符号   # {id}:其中的id表示接收输入,的参数,参数名称就是id,如果输入,参数是简单类型,#{}中的参数名可以任意,可以价值或其它名称   resultType:指定sql输出结果,的所映射的java对象类型,选择指定resultType表示将单条记录映射成的java对象。   ,——比;   & lt; select  id=" findUserById ", parameterType=癷nt”, resultType=癱n.itcast.mybatis.po.User”比;   SELECT  *,得到USER  WHERE  id=# {value}   & lt;/select>   & lt; !——,根据用户名称模糊查询用户信息,可能返回多条   resultType:指定就是单条记录所映射的java对象,类型   ${}:表示拼sql串接,将接收到参数的内容不加任何修饰拼接在sql中。   使用${}拼接sql,引起,sql注入   $ {value}:接收输入,参数的内容,如果传入类型是简单类型,${}中只能使用价值   ,——比;   & lt; select  id=" findUserByName ", parameterType=耙浴?resultType=癱n.itcast.mybatis.po.User”比;   SELECT  *,得到USER  WHERE  username  LIKE  ' % $ {value} % '   & lt;/select>   & lt; !——,添加用户,   parameterType:指定输入,参数类型是pojo(包括,用户信息)   #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值   ——比;   & lt; insert  id=" insertUser ", parameterType=癱n.itcast.mybatis.po.User”比;   & lt; !,,   将插入数据的主键返回,返回到用户对象中   SELECT  LAST_INSERT_ID():得到刚插入进去记录的主键值,只适用与自增主键   keyProperty:将查询到主键值设置到parameterType指定的对象的哪个属性   秩序:SELECT  LAST_INSERT_ID()执行顺序,相对于插入语句来说它的执行顺序   resultType:指定SELECT  LAST_INSERT_ID()的结果类型   ,——比;   & lt; selectKey  keyProperty=" id ",订单=爸蟆?resultType=癹ava.lang.Integer”比;   SELECT  LAST_INSERT_ID ()   & lt;/selectKey>   insert  into 用户(用户名、生日、性别、地址),价值(# {username}, #{}生日,#{性},#{地址})   & lt; !,,   使用mysql的uuid()生成主键   执行过程:   首先通过uuid()得到主键,将主键设置到用户对象的id属性中   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

mybatis学习笔记,简介及快速入门