MyBatis 世界上流行最广泛的SQL 映射框架,由Clinton Begin 在2002 年创建,其后,捐献给了Apache 基金会,成立了iBatis 项目。2010 年5 月,将代码库迁致Google Code,并更名为MyBatis。 MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC 代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、 Map 接口和POJO 到数据库记录。
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。 每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得。
MyBatis的前世今生MyBatis的前身就是iBatis,iBatis本是由ClintonBegin开发,后来捐给Apache基金会,成立了iBatis开源项目。2010年5月该项目由Apahce基金会迁移到了Google Code,并且改名为MyBatis。MyBatis介绍MyBatis是一个数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。MyBatis的优点:1.基于SQL语法,简单易学。2.能了解底层组装过程。3.SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
MyBatis 是支持普通 SQL查询,存储过程等一个轻量级的ORM中间件 。MyBatis 使用简单的 XML 或注解方式,用于配置和原始映射,将接口和 Java 的POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层SQL映射框架(半ORM框架)。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录,摒除了大部分的JDBC代码、手工设置参数和结果集重获。
Mybatis简单例子
使用mybatis进行连接(嵌套)查询(也就是many-to-one或者是one-to-one)
MyBatis简介MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis只使用简单的XML和注解来配置和映射基本数据类型、Map接口和POJO到数据库记录。相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。
三、动态SQL语句有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。使用Oracle的序列、mysql的函数生成Id。这时我们可以使用动态sql。下文均采用mysql语法和函数(例如字符串链接函数CONCAT)。
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用。
MyBatis是什么?MyBatis是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果。MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素、Map接口和POJOs(普通java对象)到数据库中的记录。
Mybatis中的SqlBuilder是用来处理java程序动态拼接sql操作的,把我们从以前需要注意空格或者or,and,where等关键字处理中解脱出来,这个类设计的比较精巧,而且不依赖其他的类或者包,很适合移植到自己的项目中去,所以分离出来对其源码进行解读和改造。首先,它用一个Threadlocal对象来存储SQL对象(表达sql的实体对象),这个东西我觉得表明:你可以以函数工具的方式操作它,同时,你也可以用你的dao来继承这个类,并不用担心线程安全的问题。