mybatis
newme1993
这个作者很懒,什么都没留下…
展开
-
mybatis简介
MyBatis 本是apache的一个开源项目iBatis,MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的各种statement(stateme...转载 2019-07-01 20:54:23 · 89 阅读 · 0 评论 -
SqlMapConfig.xml配置文件
配置内容SqlMapConfig.xml中配置的内容和顺序如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transac...转载 2019-07-02 14:30:43 · 256 阅读 · 0 评论 -
mybatis 输入映射和输出映射
输入映射和输出映射Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心。复制昨天的工程,按照下图进行只保留Mapper接口开发相关的文件,其他的删除最终效果如下图:如下图修改SqlMapConfig.xml配置文件。Mapper映射器只保留包扫描的方式param...转载 2019-07-04 22:29:33 · 128 阅读 · 0 评论 -
使用resultMap
由于上边的mapper.xml中sql查询列(user_id)和Order类属性(userId)不一致,所以查询结果不能映射到pojo中。需要定义resultMap,把orderResultMap将sql查询列(user_id)和Order类属性(userId)对应起来改造OrderMapper.xml,如下:<?xml version="1.0" encoding="U...转载 2019-07-04 22:31:34 · 100 阅读 · 0 评论 -
动态sql If标签
If标签Mapper.xml文件UserMapper.xml配置sql,如下:<!-- 根据条件查询用户 --><select id="queryUserByWhere" parameterType="user" resultType="user"> SELECT id, username, birthday, sex, address FROM `use...转载 2019-07-04 22:39:04 · 5058 阅读 · 0 评论 -
Where标签 Sql片段 foreach标签
Where标签上面的sql还有where 1=1 这样的语句,很麻烦可以使用where标签进行改造改造UserMapper.xml,如下<!-- 根据条件查询用户 --><select id="queryUserByWhere" parameterType="user" resultType="user"> SELECT id, username...转载 2019-07-04 22:53:50 · 885 阅读 · 0 评论 -
使用resultMap
使用resultMap,定义专门的resultMap用于映射一对一查询结果。改造pojo类 在Order类中加入User属性,user属性中用于存储关联查询的用户信息,因为订单关联查询用户是一对一关系,所以这里使用单个User对象存储关联查询的用户信息。改造Order如下图:Mapper.xml这里resultMap指定orderUser...转载 2019-07-04 22:58:26 · 118 阅读 · 0 评论 -
一对多查询
案例:查询所有用户信息及用户关联的订单信息。用户信息和订单信息为一对多关系。sql语句:SELECT u.id, u.username, u.birthday, u.sex, u.address, o.id oid, o.number, o.cre...转载 2019-07-04 23:02:52 · 1094 阅读 · 0 评论 -
Mybatis整合spring1
整合思路SqlSessionFactory对象应该放到spring容器中作为单例存在。 传统dao的开发方式中,应该从spring容器中获得sqlsession对象。 Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。 数据库的连接以及数据库连接池事务管理都交给spring容器来完成。整合需要的jar包sp...转载 2019-07-04 23:11:01 · 101 阅读 · 0 评论 -
Mybatis整合Spring Dao开发
Dao的开发两种dao的实现方式:原始dao的开发方式 使用Mapper代理形式开发方式 直接配置Mapper代理 使用扫描包配置Mapper代理 需求:实现根据用户id查询 实现根据用户名模糊查询 添加用户创建pojopublic class User { private int id; private...转载 2019-07-04 23:23:37 · 145 阅读 · 0 评论 -
Mybatis逆向工程
使用官方网站的Mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和Mapper映射文件导入逆向工程使用课前资料已有逆向工程,如下图:复制逆向工程到工作空间中复制的效果如下图:导入逆向工程到eclipse中如下图方式进行导入:修改配置文件在generatorConfig.xml中配置Ma...转载 2019-07-04 23:30:52 · 100 阅读 · 0 评论 -
关联查询
商品订单数据模型 用户表:user 记录了购买商品的用户信息 Id:唯一标识一个用户 订单表:order 记录了用户创建的订单 创建用户:user_id(外键) 订单号 创建时间 订单状态 一对一:一个订单只能由一个用户创建 一对多:一个用户可以创建多个订单 ...转载 2019-07-05 19:13:33 · 154 阅读 · 0 评论 -
mybatis 整合 spring :Mapper代理形式开发dao
实现Mapper.xml编写UserMapper.xml配置文件,如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dt...转载 2019-07-05 20:31:44 · 153 阅读 · 0 评论 -
mybatis :mapper代理方法 selectOne selectList namespace
selectOne和selectList动态代理对象调用sqlSession.selectOne()和sqlSession.selectList()是根据mapper接口方法的返回值决定,如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。 2.namespacemybatis官方推荐使用mapper代理方法开发mapper接口,程...转载 2019-07-02 14:19:07 · 1232 阅读 · 0 评论 -
Mybatis Mapper动态代理方式
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper接口开发需要遵循以下规范:Mapper.xml文件中的namespace与mapper接口的类路径相同。 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同 Map...转载 2019-07-02 14:15:16 · 151 阅读 · 0 评论 -
mybatis原始DAO开发存在的问题
原始Dao开发中存在以下问题:Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码,不得于开发维护。...转载 2019-07-02 13:34:55 · 149 阅读 · 0 评论 -
Mybatis架构
mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂 由会话工厂创建sqlSession即...转载 2019-07-01 21:31:47 · 151 阅读 · 0 评论 -
Mybatis入门程序
mybaits的代码由github.com管理下载地址:https://github.com/mybatis/mybatis-3/releases课前资料提供的mybatis如下:mybatis-3.2.7.jar mybatis的核心包lib文件夹 mybatis的依赖包所在mybatis-3.2.7.pdf mybat...转载 2019-07-01 21:42:49 · 89 阅读 · 0 评论 -
mybatis入门程序2
实现根据id查询用户使用的sql:SELECT * FROM `user` WHERE id = 1在user.xml中添加select标签,编写sql:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""htt...转载 2019-07-01 21:51:50 · 1130 阅读 · 0 评论 -
mybatis #{}和${}
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql...转载 2019-07-01 21:53:42 · 1157 阅读 · 0 评论 -
parameterType和resultType selectOne和selectList
parameterType和resultTypeparameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中selectOne和selectLists...转载 2019-07-01 21:55:43 · 1350 阅读 · 0 评论 -
Mybatis入门程序3
实现添加用户使用的sql:INSERT INTO `user` (username,birthday,sex,address) VALUES('黄忠','2016-07-26','1','三国') User.xml <!-- 保存用户 --> <insert id="saveUser" parameterType="cn.itcast...转载 2019-07-01 22:51:56 · 76 阅读 · 0 评论 -
Mybatis解决jdbc编程的问题
数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。解决:在SqlMapConfig.xml中配置数据连接池,使用连接池管理数据库链接。 2.Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。 3.向sql...转载 2019-07-01 22:53:38 · 154 阅读 · 0 评论 -
mybatis与hibernate不同
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句。mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对...转载 2019-07-01 22:54:35 · 100 阅读 · 0 评论 -
SqlSession的使用范围
SqlSession的使用范围SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等。SqlSession通过SqlSessionFactory创建。SqlSessionFactory是通过SqlSessionFactoryBuilder进行创建。SqlSessionFactoryBuilderSqlSessionFactoryBuilder...转载 2019-07-04 19:02:39 · 4255 阅读 · 0 评论 -
springmvc 整合 mybatis 加入jsp页面
加入jsp页面复制课前资料的itemList.jsp和itemEdit.jsp到工程中效果配置完效果如下图:实现商品列表显示需求实现商品查询列表,从mysql数据库查询商品信息。DAO开发使用逆向工程,生成代码注意修改逆向工程的配置文件,参考MyBatis第二天逆向工程生...转载 2019-07-07 15:43:42 · 613 阅读 · 0 评论 -
springMVC 参数绑定 默认支持的参数类型
默认支持的参数类型需求打开商品编辑页面,展示商品信息。需求分析编辑商品信息,首先要显示商品详情需要根据商品id查询商品信息,然后展示到页面。请求的url:/itemEdit.action参数:id(商品id)响应结果:商品编辑页面,展示商品详细信息。ItemService接口编写ItemService接口如下图:Item...转载 2019-07-07 15:51:49 · 1200 阅读 · 0 评论 -
mybatis 原始DAO开发方式
使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法。原始Dao开发方法需要程序员编写Dao接口和Dao实现类。映射文件编写映射文件如下:(也可以使用入门程序完成的映射文件)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybat...转载 2019-07-02 13:33:30 · 160 阅读 · 0 评论 -
springMVC整合mybatis 配置
为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合。整合目标:控制层采用springmvc、持久层使用mybatis实现。创建数据库表sql脚本,位置如下图:创建数据库表springmvc,导入到数据库中,如下图:需要的jar包spring(包括springmvc) mybat...转载 2019-07-07 15:32:55 · 415 阅读 · 0 评论