一、使用注解则不需要创建映射配置文件:即xxxDao.xml

javaBean为什么要实现Serializable接口?

  Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成一组byte,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了。这一点甚至在跨网络的环境下也是如此,这就意味着序列化机制能自动补偿操作系统方面的差异。也就是说,你可以在Windows机器上创键一个对象,序列化之后,再通过网络传到Unix机器上,然后在那里进行重建。你不用担心在不同的平台上数据是怎样表示的,byte顺序怎样,或者别的什么细节。

入门案例:

  把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句

  同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名

  配置主配置文件:SqlMapConifg.xml

<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件
如果用注解来配置,此处应该使用class属性指定被注解的dao全限定类名
-->
<mappers>
<mapper class="cn.flypig666.dao.IUserDao"/>
</mappers>

   在dao中使用注解:@Select("select * from user")

public interface IUserDao {

    /**
* 查询所有结果
* @return
*/
@Select("select * from user")
List<User> findAll();
}

二、自定义Mybatis的分析

mybatis在使用代理dao的方式实现增删改查时具体步骤:

  1、 创建代理对象

  2、 在代理对象中调用selectList

查询所有的分析:

  1. 根据配置文件的信息创建Connection对象

    注册驱动,获取连接

  2. 获取预处理对象PrepareSatament  

    此时需要sql语句

    con.prepareStatement(sql)

  3. 执行查询

    ResultSet resultSet = prepareStatement.executeQuery();

  4. 遍历结果集用于封装

    List<E> list = new ArrayList();

    where(resultSet.next()){

      E  element = (E)Class.forName(配置的全限定类名).newInstance()

      //进行封装,将每个rs的内容都添加到elemet中

      /*

      我们的实体类属性和表中的列名是一致的

      于是我们就可以把表的列名看成是实体类的属性名称-----------------------------------此处使用到的技术:反射封装

      就可以使用反射的方式来根据名称获取每个属性,并把值进去

      */

      //把element加入到list中

      list.add(element);

    }

    5. 返回list

       return list;

mybatis学习:mybatis的注解开发和编写dao实现类的方式入门的更多相关文章

  1. 阶段3 1.Mybatis_02.Mybatis入门案例_3.mybatis注解开发和编写dao实现类的方式

    注解的用法 直接创建一个新的项目 下一步直接next 然后finish即可 把之前项目01里面的代码直接复制过来 复制到我们02的注解的工程中 把01项目导入的依赖也都粘贴过来 再把测试类复制过去 复 ...

  2. MyBatis学习04(注解开发)

    7.使用注解开发 7.1 面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面 ...

  3. Mybatis学习笔记之---编写dao实现类的CRUD

    Mybatis编写dao实现类的CRUD 1.pom.xml <dependencies> <dependency> <groupId>junit</grou ...

  4. Java开发学习(十)----基于注解开发定义bean 已完成

    一.环境准备 先来准备下环境: 创建一个Maven项目 pom.xml添加Spring的依赖 <dependencies>    <dependency>        < ...

  5. 【转】Mybatis学习---MyBatis知识、原始Dao开发和mapper代理开发

    [原文]https://www.toutiao.com/i6594610137560777223/ 一.什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及 ...

  6. MyBatis学习--mybatis开发dao的方法

    简介 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法. 主要概念介绍: MyBatis中进行Dao开发时候有几个重要的类,它们是SqlSessionFac ...

  7. MyBatis学习笔记(四) 注解

        使用MyBatis注解开发,可以省去类配置文件,简洁方便.但是比较复杂的SQL和动态SQL还是建议书写类配置文件. 注解还是不推荐使用的.只是了解了解!简单的CRUD可以使用注解.简单写写. ...

  8. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_1 Mybatis中编写dao实现类的使用方式-查询列表

    就是自己写实现类的方式来开发 直接finish 把之前写的CRUD的代码复制到过来. 在把之前pom.xml里面的包的依赖也复制过来 复制到当前的pom.xml内 允许自动导入 以上步骤就是复制了一个 ...

  9. Mybatis学习---Mybatis分页插件 - PageHelper

    1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...

随机推荐

  1. P1020 导弹拦截 /// DP Dilworth定理 LIS、LDS优化

    题目大意: https://www.luogu.org/problemnew/show/P1020 Dliworth有两个互相对偶的定理:U的链划分使用的最少集合数,等于它的最大反链长度.(1)U的反 ...

  2. 实现ViewPager的联动效果

    参考链接:android - Synchronizing two ViewPagers using OnPageChangeListener - Stack Overflow 其中有个非常完美的解决方 ...

  3. 使用CEfSharp之旅(5)CEFSharp 隔离Cookie

    原文:使用CEfSharp之旅(5)CEFSharp 隔离Cookie 版权声明:本文为博主原创文章,未经博主允许不得转载.可点击关注博主 ,不明白的进群191065815 我的群里问 https:/ ...

  4. spark 应用场景1-求年龄平均值

    原文引自:http://blog.csdn.net/fengzhimohan/article/details/78535143 该案例中,我们将假设我们需要统计一个 10 万人口的所有人的平均年龄,当 ...

  5. 创建 linuxrc 文件

    创建 linuxrc,加入如下内容: [arm@localhost my_rootfs]#vi linuxrc #!/bin/sh #挂载/etc 为 ramfs, 并从/mnt/etc 下拷贝文件到 ...

  6. CodeForces - 27E

    https://vjudge.net/problem/CodeForces-27E 求因子个数为n的最小的数dfs枚举质因子的幂 #include <iostream> #include ...

  7. 使用WCF上传文件

              在WCF没出现之前,我一直使用用WebService来上传文件,我不知道别人为什么要这么做,因为我们的文件服务器和网站后台和网站前台都不在同一个机器,操作人员觉得用FTP传文件太麻 ...

  8. Android基础控件EditText

    1.常用属性 <!--selectAllOnFocus 获得焦点后全选组件内所有文本内容--> <!--inputType 限制输入方式--> <!--singleLin ...

  9. nginx源码分析——数组

    ngx_array.h /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_ARRAY_H_INCLU ...

  10. HDU 3923 Invoker | 暑训Day1 C题填坑

    暑训第一天,专题为组合数学与概率期望. 最近一个月都没有学习新的知识,上午听聚聚讲课头脑都是一片空白.加上长期没刷题,下午做练习题毫无感觉.到晚上总算理清了蓝书上的一些概念,跟着榜单做题.最后唯独剩下 ...