• 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

     

  • 相关阅读:
    error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
    C# Console 运行之后最小化到状态栏
    CentOS7 设置防火墙端口
    Spring boot 与quart集成并在Job中注入服务
    Cron表达式周1至周5,每天上午8点至下午18点,每分钟执行一次
    Electron 调用系统Office软件
    jquery之超简单的div显示和隐藏特效demo
    IE系列不支持圆角等CSS3属性的解决方案
    使用CSS3建立不可选的的文字
    ASP.NET中使用TreeView显示文件
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/10269094.html
Copyright © 2020-2023  润新知