mybatis ppt

合集下载

mybatis入门教程(一)(超简单)

mybatis入门教程(一)(超简单)

mybati‎s第一天mybati‎s的基础知识‎课程安排:mybati‎s和spri‎n gmvc通‎过订单商品案例驱动第一天:基础知识(重点,内容量多)对原生态jd‎b c程序(单独使用jd‎b c开发)问题总结mybati‎s框架原理(掌握)mybati‎s入门程序用户的增、删、改、查mybati‎s开发dao‎两种方法:原始dao开‎发方法(程序需要编写‎d a o接口和‎d a o实现类‎)(掌握)mybait‎s的mapp‎e r接口(相当于dao‎接口)代理开发方法‎(掌握)mybati‎s配置文件S‎q lMapC‎onfig.xmlmybati‎s核心:mybati‎s输入映射(掌握)mybati‎s输出映射(掌握)mybati‎s的动态sq‎l(掌握)第二天:高级知识订单商品数据‎模型分析高级结果集映‎射(一对一、一对多、多对多)mybati‎s延迟加载mybati‎s查询缓存(一级缓存、二级缓存)mybait‎s和spri‎n g进行整合‎(掌握)mybati‎s逆向工程1对原生态jd‎bc程序中问‎题总结1.1环境java环境‎:jdk1.7.0_72eclips‎e:indigo‎mysql:5.11.2创建mysq‎l数据导入下边的脚‎本:sql_ta‎ble.sql:记录表结构sql_da‎t a.sql:记录测试数据‎,在实际企业开‎发中,最后提供一个‎初始化数据脚‎本1.3jdbc程序‎使用jdbc‎查询mysq‎l数据库中用‎户表的记录。

创建java‎工程,加入jar包‎:数据库驱动包‎(m ysql5‎.1)上边的是my‎sql驱动。

下边的是or‎a cle的驱‎动。

程序代码:1.4问题总结1、数据库连接,使用时就创建‎,不使用立即释‎放,对数据库进行‎频繁连接开启‎和关闭,造成数据库资‎源浪费,影响数据库性能。

设想:使用数据库连‎接池管理数据‎库连接。

2、将sql语句‎硬编码到ja‎v a代码中,如果sql 语句修改,需要重新编译‎java代码‎,不利于系统维‎护。

MyBatis核心技术全解与项目实战读书笔记

MyBatis核心技术全解与项目实战读书笔记

《MyBatis核心技术全解与项目实战》读书笔记1. 第一章 MyBatis简介本章主要介绍了MyBatis的基本概念、特点和优势,以及其在Java企业级应用开发中的重要作用。

MyBatis是一个优秀的持久层框架,它将SQL语句与Java对象映射(POJO)相结合,使得开发人员可以更加方便地操作数据库。

MyBatis的主要目标是简化数据库操作,提高开发效率,同时也提供了良好的数据封装和安全性。

SqlSessionFactory:用于创建SqlSession对象,SqlSession是MyBatis中执行SQL语句的核心接口。

SqlSession:用于执行SQL语句的会话对象,可以通过它来执行增删改查等操作。

Mapper:映射器接口,用于定义SQL语句和Java对象之间的映射关系。

Configuration:MyBatis的全局配置类,用于配置各种属性,如缓存策略、事务管理等。

插件:MyBatis的插件机制,允许开发者自定义拦截器、类型处理器等组件,以实现对MyBatis的功能扩展。

灵活性:MyBatis支持多种存储结构,如JDBC、ODBC、JNDI等,同时还支持自定义类型处理器和插件,使得MyBatis能够满足各种复杂的数据库操作需求。

易用性:MyBatis提供了简洁的XML映射文件来描述SQL语句和Java对象之间的映射关系,使得开发者无需编写复杂的SQL语句即可完成数据库操作。

性能优化:MyBatis通过一级缓存和二级缓存机制来提高查询性能,同时还支持动态SQL、分页查询等功能,使得MyBatis能够在高并发环境下保持良好的性能表现。

安全性:MyBatis提供了严格的权限控制机制,可以限制不同用户对数据库的操作权限,保证数据的安全性。

1.1 MyBatis概念及特点MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。

相比于传统的数据访问技术,MyBatis让开发者能够更加直接地与数据库交互,从而有效地避免了大量繁琐的SQL语句编写工作。

mybatis基础系列(一)——mybatis入门

mybatis基础系列(一)——mybatis入门

mybatis基础系列(⼀)——mybatis⼊门好久不发博客了,写博⽂的⼀个好处是能让⼼静下来,整理下之前学习过的⼀些知识⼀起分享,⼤神路过~mybatis简介MyBatis 是⼀款优秀的持久层框架,它⽀持定制化 SQL、存储过程以及⾼级映射。

传统的 JDBC代码通常存在如下问题:1. 频繁对数据库进⾏连接和关闭,造成资源浪费,性能下降。

2. SQL代码、preparedStatement参数、占位符号等硬编码到代码中,不⽅便维护。

3. 遍历结果集数据时,硬编码解析表字段成java属性,不⽅便维护。

MyBatis 避免了⼏乎所有的 JDBC 代码和⼿动设置参数以及获取结果集。

MyBatis 可以使⽤简单的 XML 或注解来配置和映射原⽣信息,将接⼝和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

mybatis框架简要原理mybatis的核⼼类与会话流程如下:Configuration:读取mybatis配置⽂件(SqlMapConfig.xml、mapper.xml等)->SqlSessionFactory:根据配置⽂件创建会话⼯⼚->SqlSession:API接⼝,表⽰和数据库交互时的会话,定义增删改查->Executor:MyBatis 核⼼执⾏器,负责SQL语句的⽣成->MappedStatement:负责输⼊输出的封装。

更详细的流程可参考其它资料。

mybatis与springboot 整合创建项⽬Idea: File->new->project->Spring initializr->Next 依次输⼊maven坐标信息,Dependencies选择Mysql、Mybatis。

在File->Setting->Maven 中配置本地Maven安装⽬录和setting.xml配置⽂件路径,完成。

mybatis中文版教程

mybatis中文版教程

MyBatis Spring1.0.0-RC3参考文档MyBatis 社区()Copyright © 2010本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。

本文档由南磊(nanlei1987@)翻译目录第一章介绍 (3)1.1 整合动机 (3)1.2 要求 (3)1.3 感谢 (3)第二章入门 (4)2.1 安装 (4)2.2 快速创建 (4)第三章SqlSessionFactoryBean (6)3.1 创建 (6)3.2 属性 (6)第四章事务 (8)4.1 标准配置 (8)4.2 容器管理事务 (8)第五章使用SqlSession (9)5.1 SqlSessionSupport (9)5.2 SqlSessionTemplate (9)第六章MapperFactoryBean (11)6.1 创建 (11)6.2 注入映射器 (11)6.3 自动配置 (12)第七章使用MyBatis API (13)第八章示例代码 (14)第一章介绍1.1 整合动机正如第二版,Spring仅支持iBatis2。

那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。

不幸的是,Spring 3.0的开发在MyBatis 3.0官方发布前就结束了。

因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring 官方的支持就不得不等到至少3.1版本了。

要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。

这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。

减少用户不得不来配置MyBatis和Spring 3.X上下文环境的样板和冗余代码。

智慧科协平台解决方案ppt

智慧科协平台解决方案ppt
智慧科协平台解决方案ppt
2023-10-29
目录
• 项目背景 • 项目概述 • 技术实现细节 • 平台功能介绍 • 平台运行效果展示 • 项目风险及应对措施 • 项目总结与展望未来发展
01
项目背景
技术架构设计
01
02
03
前端技术
HTML5、CSS3、 JavaScript等
后端技术
Java、Spring、MyBatis 等
07
项目总结与展望未来发展
项目总结与收获
建立了一套完整的智慧科协平台解决方 案,包括科协网站、移动应用、活动管 理、数据分析和可视化等功能模块。
通过与客户的紧密合作和沟通,实现了 项目的顺利验收和交付。
建立了完善的项目管理机制和团队沟通 机制,确保了项目的质量和进度。
通过深入调研和分析,明确了科协业务 需求和痛点,实现了业务流程的优化和 再造,提高了工作效率和用户体验。
平台功能概述
智慧科协平台是一款基于互联网和移动技术的综合解决方案 ,旨在提高科协组织的信息化水平和工作效率。
该平台提供了多种功能,包括会员管理、活动管理、资源共 享、在线交流等,以全面满足科协组织的需求。
主要功能特点介绍
会员管理
智慧科协平台提供了会员信 息录入、编辑、查询等功能 ,可以帮助科协组织更好地 管理会员信息。
后端技术实现
总结词
基于Node.js和Express的RESTful API架构实现
详细描述
利用Node.js作为后端运行环境,通过Express框架快速搭建后端API接口。根据 业务需求,设计并实现数据模型和数据库操作层,提供RESTful风格的API接口, 实现前后端数据的交互和业务处理。

《数据库访问接口》课件

《数据库访问接口》课件

MongoDB是一个流行的NoSQL解决方案,但它也有其缺点和局限。
1 最终一致性
2 缺失的SQL
3 缺少事务
MongoDB是一个最终一 致性数据库,处理时数 据最终会变得一致,但 是在某段时间内可能不 一致。
它不支持SQL引擎,因 此不支持一些查询语句。
MongoDB没有完全的 ACID事务,不适合处理 严格事务性数据。
1 较为底层
MyBatis比Hibernate更为底层,需要在多个层次上进行配置,开发人员需要付出更多的时 间和功夫。
2 不适用于复杂的对象映射
对于较为复杂、关系密切的对象映射,MyBatis并不擅长处理。
3 不提供自动缓存
不如Hibernate等其他框架自带缓存机制,需要手动实现缓存。
MyB atis的使用流程?
在使用Hibernate时,可能会遇到以下常见问题,以下总结了一些解决方案。
和JPA的关系?
Hibernate不仅提供了JPA的实 现,还提供了许多额外的功能 和特性。
为什么使用第二级缓存?
第二级缓存可用于改善性能, 这种性能提升因情况而异,有 时候它是有益的,有时候则不 是。
Hibernate vs Spring JDBCTemplate
使用MyBatis可以分为以下3个步骤: 1. 配置MyBatis 2. 创建映射器 3. 使用MyBatis API增删改查数据库记录。
MyB atis的常见问题及解决方案?
在使用MyBatis时,可能会遇到以下常见问题,以下总结了一些解决方案。
如何实现性能优化?
MyBatis中使用了缓存机制,它可帮助提高性能。 使用缓存时,应注意缓存的清理和更新。
JD B C 的特点和优势?

mybatis_ppt

mybatis_ppt
MyBatis
MyBatis 是支持普通 SQL查询,存储过程等一 SQL查询,存储过程等一 个轻量级的ORM 个轻量级的ORM中间件 。 ORM中间件
一、myBatis框架概述
• 与传统的 JDBC 开发相比, MyBatis 消 除了几乎所有的代码和参数的手工设置。 • MyBatis 使用简单的 XML 或注解方式, 用于配置和原始映射,将接口和 Java 的POJOs(Plan Old Java Objects, 普通的 Java对象)映射成数据库中的记 录。
resultMap 多对一
• <collection property="posts" ofType="Post"> • <id property="id" column="post_id"/> • <result property="subject" column="post_subject"/> • <result property="body" column="post_body"/> • </collection>
• • • • • • • • • • •
<resultMap id="blogResult" type="Blog"> <id property=”blog_id” column="id" /> <result property="title" column="blog_title"/> <association property="author" column="blog_author_id" javaType="Author" resultMap=”authorResult”/> </resultMap> <resultMap id="authorResult" type="Author"> <id property="id" column="author_id"/> <result property="username" column="author_username"/> <result property="password" column="author_password"/> </resultMap>

javaPPT课件(2024)

javaPPT课件(2024)

常用的集合类
如`ArrayList`、`LinkedList`、`HashSet`、 `TreeSet`、`PriorityQueue`等。
ABCD
2024/1/26
主要的集合接口
包括`Collection`、`List`、`Set`、`Queue`、 `Deque`等。
迭代器与for-each循环
24
JSP技术
JSP定义
JSP语法
JSP内置对象
JSP与Servlet关系
JSP(JavaServer Pages)是 一种基于Java的服务器端编程 技术,用于创建动态Web页面 。
JSP页面由HTML标记和嵌入的 Java代码组成,支持表达式、 脚本元素、指令、动作等。
JSP提供了一组内置对象,如 request、response、session 等,用于处理HTTP请求和生 成响应。
Spring MVC
介绍Spring MVC的工作原理、核心组件以及常用注解。
28
Hibernate框架
Hibernate概述
简要介绍Hibernate的起源 、发展以及特点。
ORM原理
阐述对象关系映射(ORM) 的原理和Hibernate如何实 现ORM。
Hibernate核心 API
详细介绍Hibernate的核心 API,包括Session、 Transaction、Query等。
2024/1/26
19
多线程编程
线程的概念
线程是程序中的执行单元 ,Java支持多线程编程。
创建线程的方式
可以通过继承`Thread`类 或实现`Runnable`接口来 创建线程。
线程的生命周期
包括新建、就绪、运行、 阻塞和死亡五种状态。

蚂蚁ppt课件

蚂蚁ppt课件
个人展示需要制作出生动有趣的PPT来展示自己的能力和 风采,蚂蚁ppt课件提供了多种个人模板和功能,能够满 足个人展示的需求。
谢谢您的聆听
THANKS
风险管理
蚂蚁对风险管理非常重视,通过建立完 善的风险管理体系,有效控制了风险。
合作伙伴关系
蚂蚁与众多合作伙伴建立了良好的合作 关系,共同推动了业务的发展。
用户体验
蚂蚁一直注重用户体验,通过不断优化 产品设计和服务流程,提高了用户满意度 。
蚂蚁的挑战与风险
技术风险
随着技术的不断发展,蚂 蚁需要不断更新和升级技 术,以保持领先地位。
蚂蚁花呗
提供消费信贷服务,用户可以在淘宝、天 猫等电商平台上使用花呗支付。
余额宝
提供货币基金理财服务,用户可以将闲置 资金放入余额宝中,享受收益。
数据产品
01
02
03
芝麻信用
提供个人信用评估服务, 通过分析用户信用历史、 行为偏好等信息,对用户 信用进行评分。
风险模型
提供风险评估模型,帮助 商家识别羊毛党、恶意刷 单等恶意行为。
大数据技术
蚂蚁将继续加强大数据技 术的研发和应用,提高数 据分析能力,为业务提供 更精准的数据支持。
业务拓展与合作机会
全球化战略
蚂蚁将继续推进全球化战略,拓展海外市场,与 更多海外合作伙伴建立合作关系。
行业合作
蚂蚁将积极与各行业合作伙伴开展合作,共同推 动金融科技行业的发展。
创新业务
蚂蚁将继续推出创新业务,满足用户多样化的需 求,提高市场竞争力。
蚂蚁ppt课件使用场景
商业演讲
商业演讲需要高质量的PPT来展示公司的产品和服务,蚂 蚁ppt课件提供了丰富的商业模板和功能,能够满足商业 演讲的需求。

2024年度Java语言ppt课件(完整版)

2024年度Java语言ppt课件(完整版)
27
JDBC数据库连接技术
JDBC基本概念
JDBC(Java Database Connectivity)是Java语言中用 于访问关系型数据库的标准API。 它提供了一组用于连接数据库、 执行SQL语句和处理查询结果的 接口和类。
JDBC驱动程序
JDBC驱动程序是实现JDBC API 的数据库访问软件,用于建立 Java应用程序与数据库之间的连 接。不同的数据库厂商会提供不 同的JDBC驱动程序,以支持对自 己数据库的访问。
2024/3/23
29
Spring框架概述及核心思想
2024/3/23
01
Spring框架是一个轻量级的控制反转(IoC)和面向切面(AOP)的 容器框架。
02
Spring框架的核心思想是降低耦合度,提高系统的可维护性和
可扩展性。
Spring框架提供了丰富的功能,如事务管理、Web MVC、数
03
要点二
Servlet生命周期
Servlet的生命周期包括加载、初始化 、处理请求、销毁四个阶段。在Web 应用启动时,Servlet被加载并初始化 ,然后一直驻留在内存中等待处理请 求,直到Web应用停止或被卸载时, Servlet才会被销毁。
要点三
Servlet API
Servlet API是一组Java接口和类,用 于支持Servlet的开发和运行。它提供 了处理HTTP请求和响应、管理会话 、读写Cookie等功能。
Thread类
Java中的线程类,可以通过继承 Thread类并重写run()方法来实现多线
程程序。
Callable接口
2024/3/23
与Runnable接口类似,但Callable接 口可以返回执行结果并且可以抛出异

优翼ppt课件海燕

优翼ppt课件海燕

掌握PPT的各种实用技巧和工 具
熟悉PPT的设计原则和规范
提高您的PPT制作效率和质量
02 海燕的背景及意义
海燕的背景介绍
海燕是一种鸟类,属于海鸟科,是海洋生态系统中的重要组成部分。
海燕在海洋生态系统中具有特殊的生态地位和作用,它们是海洋食物链中的重要一 环,同时也是海洋生态系统中的指示物种之一。
优翼ppt课件海燕
• 欢迎页 • 海燕的背景及意义 • 海燕的技术实现 • 海燕的应用场景及案例 • 海燕的优势与不足 • 总结与展望
01 欢迎页
优翼欢迎词
欢迎使用优翼PPT课 件!
您可以在这里学到许 多实用的PPT制作技 巧和知识。
这是一个帮助您快速 掌握PPT制作技巧的 宝典。
课程背景介绍
04 海燕的应用场景及案例
应用场景介绍
海燕适用于多种应用场景,包括 但不限于智慧课堂、在线教育平 台、企业培训、远程教育等教育
领域。
海燕结合了人工智能、大数据等 先进技术,能够实现个性化教学 、智能评估等功能,满足不同领
域的学习需求。
海燕具有灵活性和可扩展性,可 以根据不同的应用场景进行定制
和扩展。
案例一:智慧课堂应用
在智慧课堂上,海燕可以作为辅助教学工具,为学生提供更加智能化、 个性化的学习体验。
海燕可以通过智能评估学生的学习进度和能力水平,为教师提供更加准 确的教学参考,提高教学质量和效果。
海燕还可以通过智能推荐学习资料、在线互动等方式,增强学生的学习 兴趣和参与度。
案例二:在线教育平台应用
容器化技术
海燕使用容器化技术,将 每个服务打包成独立的容 器,实现资源的隔离和共 享。
前端技术实现
React框架

mybatis PPT课件

mybatis PPT课件
</update>
<delete id="deleteAuthor" parameterType="int"> delete from Author where id = #{id}
</delete>
.
17
<insert id="insertAuthor" parameterType="domain.blog.Author"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1 </selectKey> insert into Author (id, username, password, email,bio, favourite_section) values (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})
<select id="selectUsers" parameterType="int" resultType="er"> select id, username, hashedPassword from some_table where id = #{id}
</mapper>
.
11

MyBatis中文帮助文档

MyBatis中文帮助文档
下面这个表格描述了默认的类类型处理器java类型jdbc类型byte任何兼容的数字或字节类型float任何兼容的数字或单精度浮点型任何兼容的数字或双精度浮点型类型处理器java类型jdbc类型任何兼容的数字或十进制小数类型charvarchar类型cloblongvarchar类型nvarcharnchar类型nclob类型任何兼容的字节流类型bloblongvarbinary类型timestamp类型date类型time类型timestamp类型date类型time类型any其他或未指定类型enumerationtypevarchar任何兼容的字符串类型作为代码存储而不是索引类型处理器java类型jdbc类型enumerationtypeanycompatiblecodeitself
XML 配置文件,或从 Configuration 类的习惯准备的实 例中构建 SqlSessionFactory 对象。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单。这里建议你使用类路径下的 资 源文件来配置,但是你可以使用任意的 Reader 实例,这个实例包括由文字形式的文件 路径 或 URL 形式的文件路径 file://来创建。MyBatis 包含了一些工具类,称作为资源, 这些工具 类包含一些方法,这些方法使得从类路径或其他位置加载资源文件更加简单。
个概念应该很熟悉了,但是 XML 映射文件也有 很多的改进,后面我们会详细来说。这里 给出一个基于 XML 映射语句的示例,这些语句应 该可以满足上述示例中 SqlSession 对象的调用。
这个简单的例子中看起来有很多额外的东西, 但是也相当简洁了。 你可以在一个单独的 XML 映射文件中定义很多的映射语句,除 XML 头部和文档类型声明之外,你可以得到很 多 方 便 之 处 。 在 文 件 的 剩 余 部 分 是 很 好 的 自 我 解 释 。 在 命 名 空 间 “com.mybatis.example.BlogMapper”中,它定义了一个名为“selectBlog”的映射语 句,这 样它允许你使用完全限定名 “org.mybatis.example.BlogMapper.selectBlog” 来调 用映射语句, 我们下面示例中所有的写法也是这样的。

mybatis-中文文档

mybatis-中文文档

mybatis-中⽂⽂档1 Mybatis的介绍Mybatis就是⼀个封装jdbc的持久层框架,它和hibernate都属于ORM框架,但是具体的说,hibernate是⼀个完全的orm框架,⽽mbatis是⼀个不完全的orm框架.Mybatis让程序员只关注sql本⾝,⽽不需要去关注如连接的创建、statement 的创建等操作。

Mybatis会将输⼊参数据、输出结果进⾏映射MyBatis 本是的⼀个开源项⽬, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis 对ibatis进⾏⼀些改进。

MyBatis是⼀个优秀的持久层框架,它对jdbc的操作数据库的过程进⾏封装,使开发者只需要关注 SQL 本⾝,⽽不需要花费精⼒去处理例如注册驱动、创建connection、创建statement、⼿动设置参数、结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的⽅式将要执⾏的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进⾏映射⽣成最终执⾏的sql语句,最后由mybatis框架执⾏sql并将结果映射成java对象并返回。

2 分析jdbc的问题2.1 原⽣态的jdbc代码publicstaticvoid main(String[] args) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {//1、加载数据库驱动Class.forName("oracle.jdbc.OracleDriver");//2、通过驱动管理类获取数据库链接connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "xiaoming", "root");//3、定义sql语句 ?表⽰占位符String sql = "select * from t_user where t_name = ?";//4、获取预处理statementpreparedStatement = connection.prepareStatement(sql);//5、设置参数,第⼀个参数为sql语句中参数的序号(从1开始),第⼆个参数为设置的参数值preparedStatement.setString(1, "程冠西");//6、向数据库发出sql执⾏查询,查询出结果集resultSet = preparedStatement.executeQuery();//7、遍历查询结果集while(resultSet.next()){System.out.println(resultSet.getString("t_id")+""+resultSet.getString("t_name")); }} catch (Exception e) {e.printStackTrace();}finally{//8、释放资源if(resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if(preparedStatement!=null){try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}}if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}2.2 问题总结1、在创建连接时,存在硬编码配置⽂件2、在执⾏statement时存在硬编码配置⽂件(映射⽂件)3、频繁的开启的关闭数据库连接,会造成数据库性能下降。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

choose, when, otherwise
<select id="findActiveBlogLike" parameterType="Blog" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <choose> <when test="title != null"> AND title like #{title} </when> <when test="author != null and != null"> AND author_name like #{} </when> <otherwise> AND featured = 1 </otherwise> </choose> </select>
整合Spring
整合Spring
• jar文件 • spring.xml
jar文件
• mybatis-spring-x.xx.jar
spring.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="erMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
Hello World
• • • • 配置文件 领域对象 Mapper接口和Mapper XML文件 主类
配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-////DTD Configuration 3.0//EN" "/dtd/mybatis-3config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="org.mariadb.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/dbtest" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/MemberMapper.xml" /> </mappers> </configuration>
bind
<select id="selectBlogsLike" parameterType="Blog" resultType="Blog"> <bind name="pattern" value="'%' + _parameter.getTitle() + '%'" /> SELECT * FROM BLOG WHERE title LIKE #{pattern} </select>
MyBatis基础教程
一个有发展的持久层框架
内容
• • • • • 起步 配置文件 映射文件 动态SQL 整合Spring
起步
起步
• 编程模型 • hello world
编程模型
SqlSessionFactoryBuilder
SqlSessionFactory
SqlSession
Mapper
<insert id="insertAuthor" parameterType="domain.blog.Author"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1 </selectKey> insert into Author (id, username, password, email,bio, favourite_section) values (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR}) </insert>
映射文件
映射文件
• SELECT – id: 方法名 – parameterType: 参数类型 – resultType: 结果类型 • INSERT, DELETE, UPDATE – id: 方法名 – parameterType: 参数类型
<select id="selectUsers" parameterType="int" resultType="er"> select id, username, hashedPassword from some_table where id = #{id} </select>
<insert id="insertAuthor" parameterType="domain.blog.Author"> insert into Author (id,username,password,email,bio) values (#{id},#{username},#{password},#{email},#{bio}) </insert> <update id="updateAuthor" parameterType="domain.blog.Author"> update Author set username = #{username}, password = #{password}, email = #{email}, bio = #{bio} where id = #{id} </update> <delete id="deleteAuthor" parameterType="int"> delete from Author where id = #{id} </delete>
foreach
<select id="selectPostIn" resultType="domain.blog.Post"> SELECT * FROM POST P WHERE ID in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select>
配置文件
配置文件
<configuration> <typeAliases> --类型别名 <typeAlias alias="Member" type="domain.Member" /> --类型别名定义 ... </typeAliases> <environments default="development"> --环境以及默认环境 <environment id="development"> --环境定义 <transactionManager type="JDBC"></transactionManager> --事务管理器 <dataSource type="POOLED"> --数据源定义 <property name="driver" value="org.mariadb.jdbc.Driver" /> --数据源属性 ... </dataSource> </environment> ... </environments> <mappers> --映射 <mapper resource="mapper/MemberMapper.xml" /> --映射文件 ... </mappers> </configuration>
相关文档
最新文档