Mybatis基础教程.ppt

上传人:牧羊曲112 文档编号:6512853 上传时间:2023-11-08 格式:PPT 页数:27 大小:291.99KB
返回 下载 相关 举报
Mybatis基础教程.ppt_第1页
第1页 / 共27页
Mybatis基础教程.ppt_第2页
第2页 / 共27页
Mybatis基础教程.ppt_第3页
第3页 / 共27页
Mybatis基础教程.ppt_第4页
第4页 / 共27页
Mybatis基础教程.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Mybatis基础教程.ppt》由会员分享,可在线阅读,更多相关《Mybatis基础教程.ppt(27页珍藏版)》请在三一办公上搜索。

1、Mybatis技术简介,MyBatis的前世今生,MyBatis的前身就是iBatis,iBatis本是由Clinton Begin开发,后来捐给Apache基金会,成立了iBatis开源项目。2010年5月该项目由Apahce基金会迁移到了Google Code,并且改名为MyBatis。,MyBatis介绍,MyBatis是一个数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。MyBatis的优点:1.基于SQL语法,简单易学。2.能了解底层组装过程。3.SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。4.程序调试方便。,与传

2、统JDBC的比较,减少了61%的代码量最简单的持久化框架架构级性能增强SQL代码从程序代码中彻底分离,可重用增强了项目中的分工增强了移植性,JDBC 与 MyBatis直观对比,MyBatis 就是将上面这几行代码分解包装:前两行是对数据库的数据源的管理包括事务管理,3、4 两行MyBatis通过配置文件来管理 SQL 以及输入参数的映射,6、7、8 行MyBatis获取返回结果到 Java 对象的映射,也是通过配置文件管理。,MyBatis,MyBatis的映射关系:,表结构,JavaBean,Xml配置,MyBatis基本要素,一、configuration.xml 全局配置文件二、map

3、per.xml 核心映射文件三、SqlSession接口,基础配置文件configuration.xml,configuration.xml是系统的核心配置文件,包含数据源和事务管理器等设置和属性信息,XML文档结构如下:,基础配置文件SQL映射文件,SQL映射文件:/1.使用相对路径/2.使用全路径,SQL映射文件,SQL 映射文件结构:resultMap 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载对象。sql 可以重用的 SQL 块,也可以被其他语句引用。insert 映射插入语句 update 映射更新语句 delete 映射删除语句 select 映射查询语句,SQ

4、L映射文件,基本结构,SQL映射文件,Select 单条记录 select*from dbo.users where username=#name,映射语句Testpublic void testSelect()SqlSession session=MybatisUtil.getSqlSession();String name=李四;User us=session.selectOne(munityhealth.model.UserMapper.selectUser,name);System.out.println(us.toString();session.close();,SQL映射文件,S

5、elect List select*from dbo.users,映射语句Testpublic void testSelectList()SqlSession session=MybatisUtil.getSqlSession();List users=new ArrayList();users=session.selectList(munityhealth.model.UserMapper.selectUsers);for(User u:users)System.out.println(u);,SQL映射文件,Insertinsert into dbo.users(username,age)

6、values(#username,#age),映射语句Testpublic void testAdd()SqlSession session=MybatisUtil.getSqlSession();User user=new User(hhhh,124,32);int result=session.insert(munityhealth.model.UserMapper.insertUser,user);mit();System.out.println(result);session.close();,SQL映射文件,deletedelete from dbo.users where user

7、name=#username,映射语句Testpublic void testDelete()SqlSession session=MybatisUtil.getSqlSession();String statement=munityhealth.model.UserMapper.deleteUser;int result=session.delete(statement,hhhh);mit();System.out.println(result);session.close();,SQL映射文件,updateupdate dbo.users set age=#age where userna

8、me=#username,映射语句Testpublic void testUpdate()SqlSession session=MybatisUtil.getSqlSession();String statement=munityhealth.model.UserMapper.updateUser;User user=new User(hhhh,30,32);int result=session.update(statement,user);mit();System.out.println(result);session.close();,SQL映射文件,表列名跟类属性名不一致1.使用别名 s

9、elect className cname,classno cno from dbo.classes where classNo=#no 2.使用ResultMap映射 select className,classno from dbo.classes where classNo=#no,SQL映射文件,表列名跟类属性名不一致1.映射语句Testpublic void testDiffientNameAndColumn()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuilder().build(TestM

10、ybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();String no=01;Classes cs=session.selectOne(munityhealth.model.UserMapper.selectClasses,no);System.out.println(cs.toString();Classes cs1=session.selectOne(munityhealth.model.UserMapper.selectClasses

11、01,no);System.out.println(cs1.toString();,SQL映射文件,查询结果一对一1.Xml配置 select*from Classes cleft join Teacher on classno=cnowhere c.classno=#cno,SQL映射文件,查询结果一对一1.映射语句Testpublic void testOneToOne()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuilder().build(TestMybatis.class.getClassLo

12、ader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();String no=01;Classes cs=session.selectOne(munityhealth.model.UserMapper.selectClassOne2One,no);System.out.println(cs.toString();System.out.println(cs.getTeacher().toString();,SQL映射文件,查询结果一对多1.Xml配置 select*from Classes c

13、left join Teacher on classno=cnowhere c.classno=#cno,SQL映射文件,查询结果一对多1.映射语句Testpublic void testOneToMore()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuilder().build(TestMybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();Stri

14、ng no=02;Classes cs=session.selectOne(munityhealth.model.UserMapper.selectClassOne2More,no);System.out.println(cs.toString();for(Teacher te:cs.getTeachers()System.out.println(te.toString();,SQL映射文件,传入参数是Map1.Xml配置 select*from Classes cleft join Teacher on classno=cnowhere c.classno=#cnoselect*from u

15、sers u where u.tno=#no,SQL映射文件,传入参数是Map1.映射语句Testpublic void testMap()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuilder().build(TestMybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();String name1=李四;Map map=new HashMap();m

16、ap.put(no,1);List list=session.selectList(munityhealth.model.UserMapper.selectByMap,map);System.out.println(list.size();,动态SQL,Xml配置select*from users u where 1=1 and u.username like#username,映射测试语句Testpublic void testMapbyDynamic()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBui

17、lder().build(TestMybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();String name1=李;Map map=new HashMap();if(name1!=null,一级缓存,1.映射语句/*一级缓存Session级,下列情况不会有。1、执行了session.clearCache()2、执行CUD操作,修改,新增,删除3、不是同一个Session对象*/public void testOneCache()SqlSe

18、ssionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuilder().build(TestMybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session=factory.openSession();String name1=李四;User us=session.selectOne(munityhealth.model.UserMapper.selectUser,name1);System.out.println(us.to

19、String();/session.clearCache();User us1=session.selectOne(munityhealth.model.UserMapper.selectUser,name1);System.out.println(us1.toString();,二级缓存,1.Xml配置2.映射测试/*二级缓存是在一个xml的一个namespace中有效 缓存结果集(相同的查询条件)*/public void testTwoCache()SqlSessionFactory factory=(SqlSessionFactory)new SqlSessionFactoryBuil

20、der().build(TestMybatis.class.getClassLoader().getResourceAsStream(mybatis.xml);SqlSession session1=factory.openSession();String name1=李四;User us=session1.selectOne(munityhealth.model.UserMapper.selectUser,name1);System.out.println(us.toString();System.out.println(-);mit();/需要此语句SqlSession session2=factory.openSession();/name1=“王五”;/开启次语句缓存失败User us1=session2.selectOne(munityhealth.model.UserMapper.selectUser,name1);System.out.println(us1.toString();,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号