• mybatis学习:mybatis的注解开发和编写dao实现类的方式入门


    一、使用注解则不需要创建映射配置文件:即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;

  • 相关阅读:
    struts2解决动态多文件上传的问题(上传文件与数据库字段一一对应)(转)
    Android应用如何开机自启动、自启动失败原因
    android操作ini工具类
    C++#define的用法(含特殊)
    c指针
    WP7备注(34)(UpdateSourceTrigger|ValidatesOnExceptions|NotifyOnValidationError)
    WP7备注(30)(数据绑定基本)
    WP7备注(38)(VisualStateManager)
    WP7备注(39)(ResourceDictionary)
    WP7备注(35)(Vector Graphics|Raster Graphics)
  • 原文地址:https://www.cnblogs.com/flypig666/p/11497022.html
Copyright © 2020-2023  润新知