Mybatis
文章平均质量分 80
程序员学习圈
值得去的地方,没有捷径;难走的路,才更值得开始!
展开
-
Mybatis 小总结
1.mybatis和hibernate的区别? (1) 两个最大的区别 针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法; 针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。 (2) 开发难度: Hibernate的开发难度要大于Mybatis。主要由于Hibernate比原创 2017-09-22 17:55:05 · 600 阅读 · 0 评论 -
Mybatis 分页插件 PageHelper 的使用
在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。但是一旦model多了起来,复杂了起来,我们很自然的想到使用mybatis的逆向工程来生成相应的po和mapper,但是同时也会带来弊端,比如这里的分页问题就不好解决了。 可能有人会说,我可以修改生成的文件,没错,这是可行的,但是一般我们通过逆向工程生成的文件,都不会去动它,所以这个时候,就需要使用分页插件来解决了。PageHelper 插件目前支持Oracle,Mysql,MariaDB,SQLit原创 2017-09-18 11:12:13 · 824 阅读 · 0 评论 -
Mybits 逆向工程
Mybatis的逆向工程是根据数据库表生成XXXmapper,XXXmapper.xml,entity类的步骤,下面详细示例: 1.创建数据库表 CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL COMMENT '下单用户id', `number` varchar(32) NOT NULL COMMENT '订单号', `createtime` datetime N原创 2017-09-17 23:21:06 · 527 阅读 · 0 评论 -
Mybatis 动态SQL
MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦,通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似原创 2017-09-17 23:20:19 · 458 阅读 · 0 评论 -
Mybatis 缓存
正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache。 对于原创 2017-09-16 23:29:24 · 299 阅读 · 0 评论 -
Mybatis 关联查询(多对一,一对多)
1.多对一查询 (1)单表查询(查询所有的订单): ① 在OrderMapper.xml文件中: <!-- 单表查询时使用resultType ,应该引起注意。如果还要查询关联表的属性,就需要使用resultMap : 1. resultMap: 结果映射. 把查询的结果映射为对应的 bean 的属性. 2. 一般滴, 若只查询单表, 则不需要使用 resultMap. 3. resultMap 和 resultType 只能选用其一. -->原创 2017-09-15 23:11:59 · 618 阅读 · 0 评论 -
MyBatis 在insert插入操作时返回主键ID的配置
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数。 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。 对于 MySQL 数据库只需要设置 keyProperty、keyColumn、useGeneratedKeys 属性 <!--原创 2017-09-15 19:00:18 · 2134 阅读 · 0 评论 -
MyBits 如何使用 databaseIdProvider
MyBatis可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的databaseId属性。MyBatis会加载不带databaseId属性和带有匹配当前数据库databaseId属性的所有语句。如果同时找到带有databaseId和不带databaseId的相同语句,则后者会被舍弃。为支持多厂商特性只要像下面这样在mybatis-config.xml或beans.xml文件中加入databaseId即可。 1.mybatis 的全局设置: 在 mybatis 的配置文件m原创 2017-09-15 18:58:25 · 3385 阅读 · 1 评论 -
Mybatis 输入映射和输出映射
1.如何使 Mapper.xml 文件和 Mapper 接口进行匹配 ? (1) 接口的全类名要和 Mapper.xml 文件中的 namespace 对应 ! 默认Mapper.xml 文件和 Maper 接口需要在同一个包下。 <!-- namespace: 名称空间. 是对当前 Mapper 文件的唯一标示.通常以 (实体类类名 + Mapper)结尾 --> < mapper namespace ="com.guigu.mybits.mapper.StudentMapper">......</ m原创 2017-09-15 17:35:03 · 871 阅读 · 0 评论 -
Spring 整合 MyBatis
本文主要介绍了如何将mybatis和spring整合在一起使用,本人使用的是mybatis-3.2.7 + spring4.1.3,使用c3p0作为数据库连接池。 1.编写数据访问接口(UserMapper.java) public interface UserMapper { public User findUserById(Integer id); } 2.编写数据访问接口映射文件(UserMapper.xml) <?xml version="1.0" encoding="UTF-8" ?> <原创 2017-09-15 12:38:20 · 340 阅读 · 0 评论 -
MyBatis_HelloWorld
1 什么是 MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOS(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 2 使用jdbc编程问题总结 (1) 创建数据库 CREATE TABLE `orders` ( `id` i原创 2017-09-14 22:35:50 · 429 阅读 · 0 评论