• mybatis实战教程(mybatis in action)之二:以接口的方式编程


    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:
    session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1)
    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:

    在src_user源码目录下建立 com.yihaomen.mybatis.inter 这个包,并建立接口类 IUserOperation , 内容如下:

    package com.yihaomen.mybatis.inter;
    import com.yihaomen.mybatis.model.User;
    
    public interface IUserOperation {    
        public User selectUserByID(int id);
        
    }

    请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应(<select id="selectUserByID")

    重写测试代码

    public static void main(String[] args) {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                IUserOperation userOperation=session.getMapper(IUserOperation.class);
                User user = userOperation.selectUserByID(1);
                System.out.println(user.getUserAddress());
                System.out.println(user.getUserName());
            } finally {
                session.close();
            }
        }
    整个工程结构图现在如下:

    这种方式,要注意的一个地方就是。在User.xml  的配置文件中,修改为 mapper namespace="com.yihaomen.mybatis.inter.IUserOperation" ,命名空间非常重要,不能有错,必须与我们定义的package 和 接口一致。

    运行这个测试程序,就可以看到结果了。
  • 相关阅读:
    由于取消了脚本支持,无法查看访问统计,也办法放gg广告了,本站更新速度降低.
    关于ASP循环表格的问题之解答
    STL中map用法详解
    vector与list的区别
    mysql联合索引 sql索引使用
    如何让linux/Centos 32位支持大于4G内存
    mysql事务
    Mysql InnoDB中的查询事务模式与锁定select ..for update
    linux 查看系统版本
    如何在64位的Linux中运行32位的应用程序
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/5652485.html
Copyright © 2020-2023  润新知