接下来就可以写创建代理对象的方法了 类加载器,代理谁,就用谁的加载器,因为这里用daoInterfaceClass.getClassLoader() 第二个代理谁就要和谁有相同的接口,daoInterfaceClass本身就是一个接口,这里创建一个类的数组把daoInterfaceClass传进去. 如何代理呢?需要写一个自己的代理方式.MapperProxy这个类是没有的. 创建MapperProxy 实现接口InvocationHandler 重写invoke方法 这里把Mapper对象传递…
Unit07: MyBatis框架简介 . MyBatis基本应用 1. myBatis (1)myBatis是什么? 是一个开源的持久层框架. 注:myBatis底层仍然是jdbc. (2)编程步骤 step1. 导包. mybatis,ojdbc,junit. step2. 添加配置文件. 注:配置文件主要包含连接池的配置和映射文件的位置. step3. 写实体类. 注:属性名必须跟表的字段名一样(大小写不区分). step4. 写映射文件. 注:映射文件主要包含的是sql语句. step5…
我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件,由于xml里面编写大量的sql语句,所以在平时调试中需要对其进行调试,但是xml文件并不能像java文件一样,能快速进行跳转,对查找对应xml文件带来巨大的不便.网友基础idea强大的插件系统下,编写了免费插件Free Mybatis Plugin(mybatis框架下mapper接口快速跳转对应…
先认识一下这几个类.Resources是一个class SqlSessionFactoryBuilder 创建新项目 复制相关的依赖 复制之前的代码 复制到当前项目的src下 把Mybits的依赖删除掉 删除Mbits依赖后,就相当于没有Mybits的内容了. 新建类Resources 之类就可以把Resources的包导入进来了.就是我们自己新建的类 Resources Resources类里面创建方法getResourceAsStream 方法内是三步: 1.拿到类的字节码 2.获取字节码的…
注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. 这段代码的注释放开 再把注释掉的方法LoadMaperAnnotation也放开 首先解析xml的class属性 得到的就是dao接口的全限定类名 找到注解就找到了sql语句 怎么获取到的结果类型呢? 通过getGenericReturnType拿到泛型. Generic表示的是泛型. 运行结果 1…
把XMLConfigBuilder的包名补全 这样我们就可以调用里面的loadConfiguration方法了 创建工厂实现类 实现SqlSessionFactory的接口 实现接口里面的方法 把cfg作为参数传递给SqlSessionFactory的实现类 在实现类里面,提供一个Configration的对象,通过构造方法传递进来. Configuration里面包含了链接数据库的信息,以及执行的SQL语句 创建SqlSession实现类 工厂实现类里面把cfg传递到SqlSession的实现…
导入xml操作的类和用到的相关包 创建util包,然后把提供好的XMLConfigBuilder.java文件复制3过来 复制过来,里面用到了很多dom4j的东西 打开pom.xml 输入dependency.然后输入dom4j 这里用到的是dom4j的扩展内容,叫做xpath 用到xmpath就还需要导入包,jaxen 创建configuration 返回值是一个configuration.但是我们还没有这个 放到cfg的包下 我们把 configuration导进来.发现都是存放链接信息的…
如何创建代理对象,以及使用设计模式带来的优势 调用的组合关系 不关注的,执行JDBC那一套.第二个是解析XML,解析的技术有很多.…
Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. Mybatis开发环境准备 1.创建测试项目,普通的Java项目就可以,项目结构如下图所示: 2.添加相应的jar包 mybatis:myba…
由于公司要求,最近从.net向java 转,然后过程中遇到各种奇葩问题,特在此随记一番. 场景:一个方法中有两个参数,一个List的集合,一个int 类型的参数,最初我在xml的sql参数,无论定义成List还是int都报错,其实仔细一想就能明白,接口方法中定义了两个类型的参数,所以你XML中的参数类型无论定义成什么都是不对的. 原始写法: //========================这个例子是原始错误写法的例子===========Start void batchUpdateUrget…
http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图: 下面作简要概述: SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息.mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句,此文件需要在SqlMapConfig.xml中加载. 通过mybatis环境等配置信息构造SqlSessionF…
1 引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 JDBC实现查询分析 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: 加载JDBC驱动: 建立并获取数据库连接: 创建 JDBC Statements 对象: 设置SQL语句的传入参数: 执行SQL语句并获得查询结果: 对查询结果进行转换处理并将处理结果返回:…
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java…
MyBatis框架介绍 1. 什么是框架 (1) 框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程. (2) 框架其实是一个半成品, 以连接数据库为例, 连接数据库使用的驱动, url, 用户名 , 密码必须告知框架. (3) 程序员在使用框架的时候, 通常以配置文件的方式告知框架需要的信息, 多数会使用 xml 作为框架的配置文件. (4) 因此, 在使用框架开发代码时, 需要编写配置文件, 代码的编写反而会减少. (5) 框架都是第三方提供的, 提供的都是 jar 包. 因此, 使…
一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型.接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录. 2.mybatis特点 1)sql语句与代码分离,存放于xml配置文件中,方便管理 2)用逻辑标签…
http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解.本文将对Mapper.xml映射文件作更加细致的梳理,首先从Mapper.xml文件中的输入和输出映射开始.本文案例代码的编写是建立在前文MyBatis框架的学习(三)——Dao层开发方法案例基础之上的! 输入映射和输出映射 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个…
1      Mybatis入门 1.1    单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //载入数据库驱动 Class.forName("com.mysql.jdbc.Driver&q…
前身背景: 前身是iBatis,为Apache的一个开源项目.2010年迁移到了Google Code,改名为MyBatis.2013年迁移到Github. MyBatis框架以及ORM MyBatis是一个开源的数据持久层框架,内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询.存储过程和高级映射.作为持久层框架,主要思想是将程序中的大量的SQL语句分离出来,配置在相应的配置文件中,这样可以在不修改代码的情况下,直接在配置文件中的修改SQL. ORM(Object/Relationa…
九:SpringBoot-整合Mybatis框架,集成分页助手插件 1.Mybatis框架 1.1 mybatis特点 1.2 适用场景 2.SpringBoot整合MyBatis 2.1 核心依赖 2.2 核心配置 3.集成分页插件 3.1 mybatis配置文件 3.2 分页实现代码 1.Mybatis框架 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用…
只要你对 MyBatis 有所认识和了解,想必知道 MyBatis 有两种 SQL 语句映射模式,一种是基于注解,一种是基于XML. 基于 XML <mapper namespace="mapper.UserMapper"> <!--结果集映射(ORM)--> <resultMap id="userResultMap" type="entity.UserEntity"> <!-- propery表示Use…
项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/MybatisUtil.java package util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; i…
Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫. 1.Mybatis框架---Mybatis插件原理 2.java算法---静态内部类实现雪花算法 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用. 一.项目概述 1.项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主…
分析流程 1. 引入dom4j <dependencies> <!--<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency>--> <dependency> <groupId>dom4j&l…
前言 上一篇文章讲到了JDBC的基本用法及其问题所在,并提出了使用Mybatis的好处,那么今天这篇文章就来说一下该如何设计一个类似Mybatis这样的持久层框架(暂时只讲思路,具体的代码编写工作从下一篇文章开始). 从使用端的角度来设计 从使用端的角度来看,我们需要做一些配置工作,原理等同于使用Mybatis框架时所进行的配置.这其中包括以下步骤: 引入自定义持久层框架的jar包. 提供存放数据库核心配置的信息. 提供sql配置信息(包括sql语句.参数类型和返回类型). 这里暂时不讲这些工作…
MyBatis框架简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进. MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jdbc…
http://blog.csdn.net/yerenyuan_pku/article/details/71700957 使用MyBatis开发Dao层,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.本文案例代码的编写是建立在前文MyBatis框架的学习(二)——MyBatis架构与入门案例基础之上的! 需求 明确开发需求,在实际开发中,我们总归是要开发Dao层的,所以在本文中我使用MyBatis这个框架技术开发Dao层来将以下功能一一实现: 根据用户id查询一个用户信息 根据用…
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进,再后来托管到github下. MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jd…
学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/article/details/8190229 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的…
本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数据库: 本文使用的数据库为MySQL ,首先创建一个test数据库,创建goods表,SQL如下: CREATE TABLE `goods` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `goodsname` VARCHAR(20) NOT NULL, `good…