先认识一下这几个类.Resources是一个class SqlSessionFactoryBuilder 创建新项目 复制相关的依赖 复制之前的代码 复制到当前项目的src下 把Mybits的依赖删除掉 删除Mbits依赖后,就相当于没有Mybits的内容了. 新建类Resources 之类就可以把Resources的包导入进来了.就是我们自己新建的类 Resources Resources类里面创建方法getResourceAsStream 方法内是三步: 1.拿到类的字节码 2.获取字节码的…
Unit07: MyBatis框架简介 . MyBatis基本应用 1. myBatis (1)myBatis是什么? 是一个开源的持久层框架. 注:myBatis底层仍然是jdbc. (2)编程步骤 step1. 导包. mybatis,ojdbc,junit. step2. 添加配置文件. 注:配置文件主要包含连接池的配置和映射文件的位置. step3. 写实体类. 注:属性名必须跟表的字段名一样(大小写不区分). step4. 写映射文件. 注:映射文件主要包含的是sql语句. step5…
Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. Mybatis开发环境准备 1.创建测试项目,普通的Java项目就可以,项目结构如下图所示: 2.添加相应的jar包 mybatis:myba…
注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. 这段代码的注释放开 再把注释掉的方法LoadMaperAnnotation也放开 首先解析xml的class属性 得到的就是dao接口的全限定类名 找到注解就找到了sql语句 怎么获取到的结果类型呢? 通过getGenericReturnType拿到泛型. Generic表示的是泛型. 运行结果 1…
接下来就可以写创建代理对象的方法了 类加载器,代理谁,就用谁的加载器,因为这里用daoInterfaceClass.getClassLoader() 第二个代理谁就要和谁有相同的接口,daoInterfaceClass本身就是一个接口,这里创建一个类的数组把daoInterfaceClass传进去. 如何代理呢?需要写一个自己的代理方式.MapperProxy这个类是没有的. 创建MapperProxy 实现接口InvocationHandler 重写invoke方法 这里把Mapper对象传递…
把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,解析的技术有很多.…
本文将在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…