Mybatis
2020-08-18 17:59:17 123 举报
AI智能生成
登录查看完整内容
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis具有简单易用的API,可以很好地集成到Spring等框架中,并且提供了丰富的插件机制,可以方便地扩展其功能。总之,MyBatis是一个功能强大、灵活而又易于使用的持久层框架,适用于各种规模的项目开发。
作者其他创作
大纲/内容
Mybatis
三层架构
1.界面层(视图层)一完成和用户的交互 ,接收请求,显示请求的处理结果
3.数据访问层(持久层)一数据库操作
框架
1.界面层: SpringMVC
2.业务逻辑层: Spring
3.数据访问层: MyBatis
基本步骤
1.加入maven的依赖-
<dependency><groupId> org.mybatis </groupId><artifactId> mybatis </artifactld><version> 3.5.1 </version></dependency>
2.创建Dao接口:定义了你操作数据的方法
4.创建mybatis的一个主配置文件: 1 )连接数据库; 2 )指定mapper文件的位置
1.inputStream in= Resources.getResoursesAsStraem(\"mybatis.xml主配置文件路径”);
2.SqlsessionFactory factory = SqlsessionFactoryBuilder.build(in);
3.Sqlsession session =factory.openSession( );
4.session.commit( );
5.session.close( );
Mybatis的动态代理
什么动态代理: mybatis帮你创建dao接口的实现类,在实现类中调用SqlSession的方法执行sq|语句
使用动态代理的方式
1.获取SqISession对象, SqlSessionFactory.openSession(参数默认为false,关闭自动提交)
2.使用getMapper方法获取某个接口的对象,sqlSession.getMapper(接口.class)
使用动态代理方式的要求:
1.dao接口和mapper文件放在一 起,同-个目录
2.dao接口和mapper文件名称- 致
3.mapper文件中的namespace的值是dao接口的全限定名称
参数传递:
1.-个简单类型的参数: #{任意字符}
3.使用一个java对象 ,对象的属性值作为mapper文件找到参数,#{java对象的属性名称}
5.使用Map作为参数,#{map的key}
$和#的区别:
font color=\"#c41230\
Mybatis返回结果:
resultType
1.类型的全限定名称
2.别名
在mybatis主配置文件定义别名 <typeAliases>
1.使用 <typeAlias>
<typeAlias type=\"com.bjpowernode.vo.ViewStudent\" alias=\"别名\" />
2.使用<package name=“包名\" /> : 类名就是别名
resultMap
自定义列名和java对象的属性名对应关系
<resultMap id=\"id的值,唯一标识\" type=\"com.bjpowernode.domain.MyStudent\"> <!--主键列,使用id。 culumn为数据库的列名,property为java实体类的属性名--> <id column=\"id\" property=\"stuid\" /> <!--非主键列,使用result--> <result column=\"name\" property=\"stuname\" /><result column=\"age\" property=\"stuage\" /> </resultMap>
列名和属性名不一样解决方式
1.使用列别名
select id as stuid
2.使用resultMap
like
1.在java代码中指定like的内容
where name like #{name}
2.在mapper中拼接like
where name like \"%\" #{name} \"%\"
动态SQL
foreach :循环数组,list集合。
<foreach collection=\"\" item=\"\" open=””close=””separator=”>#({xxx}</foreach>collection:表示接口中的方法参数的类型,如果是数组使用array,如果是list集合使用listitem:自定义的,表示数组和集合成员的变量open:循环开始是的字符close:循环结束时的字符separator:集合成员之间的分隔符
sq|代码片段:复用部分sqi语句的
1.先定义<sql id=\"自定义名称唯一\"> sql语句,表名,字段等</sq|>
2.再使用,<include refid= \"id的值\" />
Mybatis主配置文件
数据库配置文件的使用
mapper文件的位置
第一种方式:指定多个mapper文件 <!--<mapper resource=\"com/bjpowernode/dao/StudentDao.xml\"/> <mapper resource=\"com/bjpowernode/dao/OrderDao.xml\" />-->第二种方式: <!--使用包名name: xml文件( mapper文件)所在的包名,这个包中所有xml文件-次都能加载给mybatis使用package的要求: 1. mapper文件名称需要和接口名称-样,区分大小写的- -样2. mapper文件和dao接口需要在同一目录-- ><package name=\"com.bjpowernode.dao\"/>
pageHelper
使用步骤:
1.加入Maven依赖:
<dependency><groupId> com.github.pagehelper</groupld><artifactld> pagehelper</artifactId><version> 5.1.10</version></dependency>
< plugins><plugin interceptor= \"com.github.pagehelper.PageInterceptor\" /> </plugins>
0 条评论
回复 删除
下一页