
mybatis
文章平均质量分 83
Alex_Ricardo
愿乘一片扁舟,在代码的海洋里遨游...
展开
-
mybatis学习之传统JDBC编程中的问题总结
对于原生态JDBC程序中的问题总结1、传统JDBC程序对于数据库的连接,使用时就创建,不使用立即释放,对于数据库频繁的进行开启和关闭,造成数据库的资源浪费,影响数据库的性能解决设想:使用数据库连接池管理数据库连接。2、传统JDBC将sql语句硬编码至Java代码中,如果sql语句需要修改,需要重新编译java代码,不利于系统的维护。解决设想:使用配置文件将sql语句配置在x原创 2017-06-19 13:04:10 · 576 阅读 · 0 评论 -
mybatis学习之动态SQL
概念 mybatis核心就是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活的拼接和组装需求用户信息的综合查询列表和用户信息查询的列表总数这两个statement使用动态sql对查询条件进行判断,如果输入参数不为空,才进行查询条件拼接where 与 ifmapper.xml: <!-- 用户信息的综合查询原创 2017-06-21 15:43:08 · 271 阅读 · 0 评论 -
mybatis学习之数据模型分析思路
1、数据模型的分析思路 1.1 每张表记录的数据内容分模块对诶张表记录的内容进行熟悉,相当于学习系统需求(功能)的过程 1.2 每张表数据库字段的设置非空字段、外键字段、这些都是重要的字段 1.3 数据库级别表与表之间的关系外间关系(子表和父表) 1.4 表与表之间的业务关系在分析他们之间的业务关系时,一定要建立在某个业务意义的基础之上去分析。原创 2017-06-22 21:17:08 · 575 阅读 · 0 评论 -
mybatis学习之高级映射中的一对一查询
1 一对一查询 1.1 需求 查询订单信息,关联查询创建订单的用户信息 1.2 resultType 1.2.1 sql语句 确定要查询的主表:订单表 order 再确定要查询的关联表: 用户表 userSELECT or原创 2017-06-22 23:07:19 · 781 阅读 · 0 评论 -
mybatis学习之高级映射中的一对多查询
一对多查询1、需求查询订单及订单明细的信息2 、sql语句确定主查询表:订单表 order确定关联查询表: 订单明细表 orderdetail在一对一查询的基础上,添加订单明细表的关联即可SELECT orders.*,user.`username`,user.`sex`,user.`address` , orderdetail.`id` orderde原创 2017-06-23 20:13:32 · 1006 阅读 · 0 评论 -
mybatis学习之高级映射中的多对多查询
多对多查询1、需求查询用户及用户所购买的商品信息2、sql语句需要查询的主表是:用户表User需要查询的关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联变:订单表order,订单明细表orderdetail,商品表itemsSELECT orders.*, user.`username`, user.`sex`,user.`addre原创 2017-06-23 21:12:52 · 368 阅读 · 0 评论 -
mybatis学习之高级映射 延迟加载
1、什么是延迟加载resultMap可以实现高级映射,对于查询结果有特殊要求的,使用association和collection 具备延迟加载的功能比如,查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求。当我们需要查询用户信息时,再查询用户信息。把对用户信息的查询按照需求去查询,就叫做延迟加载延迟加载:先从单表开始查询,需要时再从关联表关联查询,可以大大提高原创 2017-06-23 22:24:23 · 805 阅读 · 0 评论 -
mybatis学习之查询缓存
什么是查询缓存?mybatis提供查询缓存,用于减轻数据压力,提高数据库性能mybatis提供一级缓存和二级缓存一级缓存是SQLSession的缓存在操作数据库时需要构造SQLSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据不同的SQLSession之间的缓存数据区域(HashMap)是互相不影响的二级缓存是mapper级别的缓存原创 2017-06-24 20:16:47 · 4568 阅读 · 17 评论 -
mybatis学习之与Spring整合
整合思路需要spring通过单例模式管理SQLSessionFactorySpring和mybatis整合生成代理对象,使用SQLSessionFactory创建SQLSession(Spring和mybatis整合自动完成) 持久层的mapper,dao都需要由spring管理整合环境创建一个新的java工程(接近实际开发的工程结构)jar包:mybati原创 2017-06-25 00:53:15 · 477 阅读 · 0 评论 -
mybatis学习之逆向工程
什么是逆向工程?mybatis需要开发者自己编写sql语句,在mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java/mapper,xml/pojo.java...)在企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。下载逆向工程使用方法1、运行逆向工程建议使用Java原创 2017-06-25 14:03:45 · 641 阅读 · 0 评论 -
mybatis学习之输出映射
resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全不一致,就没有创建pojo对象只要查询出来的列名和pojo属性名有一个一致,就会创建pojo对象输出简单类型需求:用户信息的综合查询的列表总数,通过查询总数和上面用户综合查询的列表才可以实现分页mapp原创 2017-06-20 20:52:05 · 710 阅读 · 0 评论 -
mybatis学习之输入映射
我们可以通过parameterType来指定输入参数的类型,类型可以是简单类型,也可以是hashMap,也可以是包装类型(pojo)传递pojo的包装对象需求:完成用户信息的综合查询,需要传入许多查询条件(可能包括用户信息、其他的信息如:商品和订单)针对上面的需求,建议使用自定义的包装类型的pojo在包装类型的pojo中,将复杂的查询条件包装进去package po原创 2017-06-20 16:32:00 · 626 阅读 · 1 评论 -
mybatis学习之SqlMapConfig.xml的详细配置内容
mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transa原创 2017-06-20 15:51:48 · 2145 阅读 · 0 评论 -
mybatis学习之框架原理
1、什么是mybatis?mybatis是一个持久层的框架,是apache旗下的顶级项目。mybatis之前托管在googlecode下,目前托管在github下。点我下载mybatis是让程序员将主要精力放在sql之上,通过mybatis提供的映射方式,自由灵活的生成(半自动化,大部分需要程序员编写)满足需求的sql语句。mybatis可以将向preparedSt原创 2017-06-19 13:26:06 · 260 阅读 · 0 评论 -
SSM整合之高级参数绑定
包装类型pojo参数绑定1 、需求商品查询的Controller方法中实现商品查询条件的传入2 、实现方法第一种:在形参中添加HttpServletRequest request参数,通过request接收查询条件参数第二种:在形参中使用包装类型的pojo接收查询条件参数。分析:页面传参数的特点:复杂,多样。条件包括:用户账号,商品编号,订单信息等如果要将用户账原创 2017-06-28 18:30:48 · 514 阅读 · 1 评论 -
mybatis学习之环境配置
1、mybatis的运行环境此处使用mybatis-3.4.4版,下载地址在github上,前面博文中有下载地址如图:lib文件夹:包含mybatis的依赖包mybatis-3.4.4.jar:mybatis的核心包加入mysql的驱动包:mysql2、log4j.properties3、工程结构原创 2017-06-19 17:52:18 · 288 阅读 · 0 评论 -
mybatis学习之根据id查找用户例子
1、创建po类根据数据库字段一一生成表的po类在此处我们生成一个User类 //属性名和数据库表的字段一一对应 private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String原创 2017-06-19 18:55:03 · 9604 阅读 · 1 评论 -
mybatis学习之模糊查询用户例子
上接上一篇博客1、配置数据库映射文件(User.xml)在其中加入如下代码: <!-- 根据用户名称模糊查询用户信息 注意:此处resultType不管单条多条结果记录,都为所映射成的java对象 ${}表示拼接sql串,将接受到的参数的内容不加任何修饰拼接在sql语句中 使用${}符号可能会引起sql注入问题 -->原创 2017-06-19 19:22:17 · 588 阅读 · 0 评论 -
mybatis学习之添加新用户例子
1、配置数据库映射文件(User.xml)在其中加入如下代码: <!-- 添加用户 parameterType:指定输入的参数类型是pojo #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis也是通过OGNL来获取对象的属性值 --> INSERT INTO USER VALUES(#{id},#{us原创 2017-06-19 20:19:21 · 5693 阅读 · 0 评论 -
mybatis学习之删除和更新用户例子
1、编写数据库映射文件(User.xml)在配置文件中加入如下代码<!-- 删除用户 根据ID删除用户 --> DELETE from user where id = #{id} <!-- 更新用户 需要传入用户的ID和更新的信息 parameterType指定User对象,注意:id必须存在原创 2017-06-19 20:59:10 · 1574 阅读 · 0 评论 -
mybatis与hibernate本质的区别以及应用的场景
本质区别hibernate:是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序编写sql,sql语句自动生成。对于sql语句进行优化和修改是比较困难的mybatis:专注的是sql本身,需要程序员自己去编写sql语句,sql语句的修改和优化较为方便。mybatis是一个不完全的ORM框架,虽然程序员自己编写sql,但是mybatis也可以实现映射(输入输出映射)原创 2017-06-20 03:46:28 · 337 阅读 · 0 评论 -
mybatis学习之原始开发DAO与mapper代理开发DAO的区别
1、SqlSession使用的范围1.1 SqlSessionFactoryBuilder通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory将SqlSessionFactoryBuilder当成一个工具类来使用,不需要使用单例模式管理SqlSessionFactoryBuilder。在需要创建SqlSessionFactory时,只需原创 2017-06-20 05:34:33 · 12211 阅读 · 2 评论 -
SSM整合之环境配置和测试开发
需求使用springmvc和mybatis完成商品列表的查询整合思路springmvc+mybatis(ssm)的系统架构图解:第一步:整合DAO层(持久层)mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口,在spring容器中自动注入第二步:整合Service层(业务层原创 2017-06-26 21:46:31 · 3158 阅读 · 0 评论