mybatais基础

Posted hbnp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatais基础相关的知识,希望对你有一定的参考价值。

一,mybatis开发基于XML文件获取sqlSessionFactory方式进行查询

技术图片

 

 

在mybatis框架中通过基于XML文件获取sqlSessionFactory方式进行查询,有两个重要配置文件,两个重要对象。

<mappers>

    <mapper>resource="org/mybatis/example/***Mapper.xml" />

    <package    name="包名"    />

</mappers> 。

 

***Mapper.xml文件,查询映射文件,里面书写sql语句。

文件,mybatis-conf.xml  全局配置文件,定义连接对象等,映射的mapper文件。定义映射的mapper文件使用:

对象,sqlSessionFactory,sqlSession工厂,产生 sqlSession对象。 sqlSession,数据库连接对象,可以理解为对connection的封装。

 

 

二,mybatis开发基于 mapper接口的开发

技术图片

 

 

    1,搭建开发环境,mybatis jar 包,mysql连接包,log4j的包。

    2,创建mybati-config.xml,创建sqlSessionFactory对象。

   3,获取sqlSession对象。

   4,创建sql映射文件,EmployeeMapper.xml.  编写sql语句,在注册到mybati-config.xml中。

   5,编写Mapper接口。

   6,完成两个绑定。

      sql映射文件与mapper接口的绑定,    sql映射文件 namespace内为mapper接口的全类名。

        mapper接口中方法与sql映射文件中的sql语句的绑定,  sql接口中方法名与 sql映射文件中sql语句的id相同。

    7,获取mapper接口的代理实现类对象。                          sqlSession.getMapper(EmployeeMapper.class)

 

三,mybatis参数传递的几种类型和接收方式

传递的参数为一个普通类型参数(int,integer,string),在接收参数#{随便}内随便写。

参数个数大于一个,mybatis后台会将参数封装为一个map,map的key为(0,1,2,.....n-1或者param1,param2,param3,.......paramN)。获取参数时通过,0,1,2,3或者param1,param2进行获取。

命名参数,当参数个数大于一个时,使用0,1,2等索引获取参数,不太直观,可以通过@param(“XXX”)注解来对参数进行修饰,修饰后多个参数在被封装为Map后,Map的key为param注解的XXX。

POJO对象,当传递的参数为一个POJO对象时,#{}内取值为POJO对象的属性。

Map,我们可以将参数封装到Map中进行传值,#{}内取值即为Map的key。

传递的参数为Collection(List,Set),Array(数组),后台也会将参数封装为一个Map进行传递,如果为Collection,key为collection,如果为List,key为list,  如果为Array,key为array。建议使用@param注解对参数进行命名,提高代码的阅读行。

参数获取方式,${},#{}。其中#{}是sql预编译,参数的位置编译为占位符,${}是直接将参数拼接到sql语句中,有sql注入风险。#{}  预编译只能用在where条件,having过滤,limit分页后,其他位置必须使用${}进行sql拼接。

以上是关于mybatais基础的主要内容,如果未能解决你的问题,请参考以下文章

mybatis入门-第一个程序

Python基础 —— 目录

python基础教程(第二版)

基础架构基础服务基础平台基础中间件等等

Python运维开发基础01-语法基础

JAVA基础入门教程 -