zoukankan      html  css  js  c++  java
  • Mybatis2

    接着上次的mybatis:

     原始dao开发方法(程序员需要写dao接口和dao实现类)

    dao接口:

     dao接口实现类

    public class UserDaoImpl implements UserDao {

    // 需要向dao实现类中注入SqlSessionFactory

    // 这里通过构造方法注入

    private SqlSessionFactory sqlSessionFactory;

    public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {

    this.sqlSessionFactory = sqlSessionFactory;

    }

    @Override

    public User findUserById(int id) throws Exception {

    SqlSession sqlSession = sqlSessionFactory.openSession();

    User user = sqlSession.selectOne("test.findUserById", id);

    // 释放资源

    sqlSession.close();

    return user;

    }

    测试代码:

     总结原始 dao开发问题:

    1dao接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员的工作量。

    2、调用sqlsession方法时将statementid硬编码了

    3、调用sqlsession方法时传入的变量,由于sqlsession方法使用泛型,即使变量类型传入错误,在编译阶段也不报错,不利于程序员开发。

    mapper代理方法(程序员只需要mapper接口(相当 于dao接口))

    程序员还需要编写mapper.xml映射文件

    程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。

    开发规范:

    1、在mapper.xmlnamespace等于mapper接口地址:

    2mapper.java接口中的方法名和mapper.xmlstatementid一致

    3mapper.java接口中的方法输入参数类型和mapper.xmlstatementparameterType指定的类型一致。

    4mapper.java接口中的方法返回值类型和mapper.xmlstatementresultType指定的类型一致。

     mapper.java

     mapper.xml

    SqlMapConfig.xml中加载mapper.xml

     测试

    SqlMapConfig.xml

    sqlMapConfig.xml加载属性文件:

    properties特性:

    注意: MyBatis 将按照下面的顺序来加载属性:

    properties 元素体内定义的属性首先被读取。

    然后会读取properties 元素中resourceurl 加载的属性,它会覆盖已读取的同名属性。

    最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

    建议:

    不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

    properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

    typeAliases(别名)

    如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterTyperesultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

    单个别名定义:

    引用别名:

    动态sql

    需求

    用户信息综合查询列表和用户信息查询列表总数这两个statement的定义使用动态sql

    对查询条件进行判断,如果输入参数不为空才进行查询条件拼接。

    mapper.xml

     

  • 相关阅读:
    c# WF 第11节 RichTextBox
    c# WF 第10节 textbox 控件
    c# WF 第9节 button控件
    c# WF 第8节 label控件
    c# WF 第7节 对控件的基本操作
    c# WF 第6节 MDI窗体
    c# WF 第5节 窗体的控件
    Python接口自动化之动态数据处理
    Saturn分布式调度之系统架构简介
    Jmeter系列之接口依赖
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/10269094.html
Copyright © 2011-2022 走看看