MyBatis入门程序之Mapper代理方式】的更多相关文章

Mapper代理的开发方式,程序员只需要编写mapper接口(相当于dao接口)即可,MyBatis会自动为mapper接口生成动态代理实现类. 一.开发规范 1.mapper接口的全限定名要和mapper映射文件的namespace的值相同 2.mapper接口的方法名称要和mapper映射文件中的statement的id相同 3.mapper接口的方法参数一般只能有一个,且类型要和mapper映射文件中statement的parameterType的值保持一致 (传一个参数,可以直接以键值对…
1.ResultMap高级结果映射 如果查询出的列名和属性名不一致,可以通过ResultMap做映射,放在statement的输出类型中 如下: 2.动态SQL,使用各种动态标签实现动态拼接sql,常用动态SQL标签有if.where.foreach where 和 if 标签使用如下 <mapper namespace="com.hjp.mapper.UserMapper"> <select id="findUserByName" paramet…
不是用mapper代理方式也能够实现,但是不推荐 Mapper代理的开发方式,程序员只需要编写mapper接口(相当于dao接口)即可.Mybatis会自动的为mapper接口生成动态代理实现类. 不过要实现mapper代理的开发方式,需要遵循一些开发规范. 开发规范 mapper接口的全限定名要和mapper映射文件的namespace的值相同. mapper接口的方法名称要和mapper映射文件中的statement的id相同: mapper接口的方法参数只能有一个,且类型要和mapper映…
作为一个java的学习者,我相信JDBC是大家最早接触也是入门级别的数据库连接方式,所以我们先来回忆一下JDBC作为一种用于执行SQL语句的Java API是如何工作的.下面的一段代码就是最基本的JDBC开发流程. 在上代码之前要先导入JDBC的jar包,由于我用的数据库是mysql,所以要先导 入如下的jar包 接下来的就是加载数据库驱动,获取数据库链接之类的工作了,当然了这些工作都是通过代码来完成的.为了和接下的mybatis配置文件对比,我在这里采用的预处理的方式进行查询,代码如下: pu…
创建一个简单的MyBatis入门程序,实现对学生信息的增删改查功能(基于XML配置) 一.新建一个Java工程,导入MyBatis核心jar包.日志相关的jar包以及连接Oracle数据库所需驱动包,目录结构如下 二.创建MyBatis核心配置文件mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//myba…
使用mapper代理方式开发: 需要编写mapper接口,UserMapper.java需要编写映射文件,UserMapper.xml需要遵循一些开发规范,mybatis便可以自动生成mapper接口实现类代理对象 遵循的开发规范:1:UserMapper.xml中namespace命名空间 与 UserMapper.java接口全限定名一致 2:UserMapper.java接口中方法的名称 与 UserMapper.xml中statement的id一致 3:UserMapper.java接口…
MyBatis入门程序 一.查询用户 1.使用客户编号查询用户 (1).创建一个数据表 USE spring; #创建一个名为t_customer的表 CREATE TABLE t_customer( id ) PRIMARY KEY AUTO_INCREMENT, username ), jobs ), phone ) ); #插入3条数据 '); '); '); (2)创建一个web项目,将Mybatis核心包放入,如图 (3)在src目录下创建一个com.itheima.po包,在该包下创…
不使用代理开发 之前,我们说了如何搭建mybatis框架以及我们使用mybatis进行简单的增删改查.现在,我们一起来构建一个dao层的完整代码.并用@test来模拟service层对dao层进行一下调用. 其实构建很简单,跟我们之前的差不多.如果不是为了演示其中的弊端,我甚至都懒得再写这些东西了.我们这次用UserDao为大家演示. 首先是导包.创建log4j.properties文件.创建sqlMapConfig.xml文件.创建User类.创建User.xml文件.将User.xml文件配…
一.入门程序: 1.mybatis的配置文件SqlMapConfig.xml 配置mybatis的运行环境,数据源.事务等. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config…
1. 添加配置文件 log4j.properties # Global logging configuration #开发环境下日志级别设置成DEBUG,生产环境设置成info或者error log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.Pa…
由于上节 <mybatis 入门优化>中的dao实现类耦合了user.xml中的statment的id,例如:src.main.resource.userMapper.findUserByName. 这节采用mapper接口的方式实现dao. IWebUserDao.java package com.mozi.dao; import java.util.List; import com.mozi.entity.*; public interface IWebUserDao { /**根据用户名…
上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的步骤.  使用mapper代理的方法来开发dao时,程序员只需要干两件事即可: 需要编写mapper.xml映射文件 需要编写mapper接口(相当于dao接口) 从做的工作来看,使用mybatis中使用mapper代理来开发dao会很方便,完全不需要我们去写具体的实现类,只需要写出接口即可,但是接…
MyBatis入门初体验时,使用mapper的方式: 很奇怪,为什么只有interface二没有实现,怎么就可以从数据库中查出准确的数据.其实Mybatis利用了JDK动态代理实现了相应功能,下面详细介绍其实现--JDK代理模式生成的代理对象. 与Executor一样,mapper通过XMLConfigBuilder解析保存在Congiguration中,下面分析关于mapper属性的的UML图: 查看MapperProxy源码 可知mapper方式处理,使用JDK动态代理,调用其invoke方…
1.入门程序实现需求 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户(二) 更新用户(二) 删除用户(二) 2.引入Mybatis所需 jar 包(Maven工程) <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</versio…
1.原始方法开发Dao Dao接口 package cn.sm1234.dao; import java.util.List; import cn.sm1234.domain.Customer; public interface CustomerDao { public void saveCustomer(Customer customer); public void updateCustomer(Customer customer); public void deleteCustomer(In…
     将MyBatis与Spring进行整合,主要解决的问题就是将SqlSessionFactory对象交由Spring来管理..所以该整合,只需将SQLSessionFactory的对象生成器SQLSessionFactoryBean注册到Spring容器中,再将其注入给Dao的实现类即可完成整合. 可以通过2种方式来实现Spring与MyBatis的整合: Mapper动态代理 支持扫描的Mapper动态代理 一.环境搭建 二.定义映射文件 import java.util.List;…
执行原理 入门程序编写 1.pom.xml 文件 <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>org…
这里讲的单表的增删改查,是由mapper代理的增删改查,先来看看步骤: 1.jar包的导入 2.配置全局的配置文件 3.建立接口 4.编写mapper.xml 5.测试 工程结构:这个你们自己可以调整,不一定和我一样 目录解析:  com.etc.mapper:这个包放的就相当于是dao的接口(com.etc.dao) config/mapper:这个放的就是操作数据库的相当于dao的实现类(com.etc.dao.impl) mybatis-config.xml:这个就是mybatis的全局配…
mapper代理方法 在我们在写MVC设计的时候,都会写dao层和daoimp实现层,但假如我们使用mapper代理的方法,我们就可以不用先daoimp实现类 当然这得需要遵守一些相应的规则: (1)Usermapper.java接口必须和Usermapper.xml名称相同,且要在同一目录下: (2)mapper.xml中namespace等于mapper接口的地址 (3)Usermapper.java接口中国的方法名和Usermapper.xml中statement的id一致 <!-- 7综…
前言 开心一刻 本人幼教老师,冬天戴帽子进教室,被小朋友看到,这时候,有个小家伙对我说:老师你的帽子太丑,赶紧摘了吧.我逗他:那你好好学习,以后给老师买个漂亮的?这孩子想都没想立刻回答:等我赚钱了,带你去韩国整形 简单示例 我们先来看一个纯粹的mybatis示例(不集成spring等其他框架),代码很简单,结构如下 完整代码地址:mybatis:mapper层和我们平时说的dao层指的是同一个内容,都是数据库操作的封装,但是在没有集成mybatis时,dao层的接口都是需要我们手动去写其实现类,…
一.一对一查询(ResultType比较简单,只需要指向扩展的类:ResultMap逐个匹配比较麻烦,可以配置属性autoMapping="true",还可以可以实现延迟加载) 1.ResultType方式: 根据需要扩展Pojo类,如查询订单对应的用户,可以写订单扩展类继承订单类,如下图 2.ResultMap方式: Pojo类中包含另一个类,mapper配置中使用association标签关联另一个类    或者 二.一对多查询 (在ResultMap中使用collection实现…
一.mybatis下载 mybaits的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 下载完后的目录结构: 二.环境搭建 2.1 创建Java工程 2.2 加入jar包 加入mybatis核心包.依赖包.数据驱动包. 核心包: 依赖包: 数据驱动包: 2.3 加入配置文件 如下图创建资源文件夹config,加入log4j.properties和SqlMapConfig.xml配置文件 在config下创建lo…
1.实现需求 添加用户 更新用户 删除用户 2.添加用户 (1)映射文件User.xml(Mapper)中,配置添加用户的Statement <!-- 添加用户: parameterType:指定输入参数类型是pojo(包括用户的信息) #{}中指定pojo的属性名,接收到pojo对象的属性值, mybatis通过 OGNL 获取对象的属性值--> <insert id="insertUser" parameterType="com.bjxb.mybatis…
1.数据准备 2.编写实体类 package com.forest.owl.entity; import java.util.Date; public class User { private Long id; private String userName; private String userPassword; private String userPhone; private String userEmail; private byte[] headImg; private Date c…
1.引入相关jar包(版本对应关系3.3.1版本的mybatis和1.1.1的spring-mybatis匹配,3.4.1版本的mybatis和1.3.1的spring-mybatis匹配) 如果不对应会报org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()类似错误 maven的pom.xml配置如下 <?xml version="1.0" encoding="UTF-8"?&…
1. 学习计划 第一天: 1.Mybatis的介绍 2.Mybatis的入门 a) 使用jdbc操作数据库存在的问题 b) Mybatis的架构 c) Mybatis的入门程序 3.Dao的开发方法 a) 原始dao的开发方法 b) 接口的动态代理方式 4.SqlMapConfig.xml文件说明 2. Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改…
一.引言 通过上一篇mybatis的入门学习,我们已经会使用mybatis实现简单的增删改查,但是我们也发现了用原始Dao开发的一些问题: Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码,不得于开发维护. 为了解决这些问题,我们采用Mapper动态代理方法来进行开发:程序员编写Mapper接口(相当于Dao接口),由Myba…
1. 开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体跟Dao原始方法中接口实现类的方法相同. Mapper接口开发需要遵循以下规范: 1.映射文件中namespace要等于接口的全路径 2.通过sql语句实现数据库的操作 3.映射文件中sql语句id要等与于接口的方法名称 4.映射文件中传入参数类型要等于接口方法的传入参数类型 5.映射文件中返回结果集类型要等于接口方法的返回值类型 2…
一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的重复性编码 二.mybatis执行流程 Mybatis基本的执行流程如下图所示: 三.mybatis入门程序 3.1 通过mybatis完成通过主键(id)查询用户(user) 3.1.1.项目环境搭建 建立的是Java项目.采用的mybatis版本为3.2.7. 需要导入mybatis核心jar包…
配置文件和映射文件再解读 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理sql语句 Statement的实际位置就等于namespace+StatementId 配置文件 别名 typeAliases别名: 自定义别名: <!-- 定义 别名 --> <typeAliases> <!-- 单个别名的定义 alias:别名,type:别名映射的类型 -…