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();
        }
    }

整个工程结构图现在如下:


运行这个测试程序,就可以看到结果了。


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 轻舞肥羊 于 2012-11-13 11:25 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: mybatis java
相关日志:
评论: 16 | 引用: 0 | 查看次数: -
回复回复wwwl[2016-11-14 04:14 PM | del]
垃圾教程
回复回复无名[2016-09-14 11:15 AM | del]
哈哈哈,传说中的dao层
回复回复无名[2016-09-14 11:14 AM | del]
传说中的dao层
回复回复aflyun[2015-09-30 05:10 PM | del]
刚才第②种方式少了一段代码:
在Test.java中
sqlSessionFactory.getCoufiguration.addMapper(IUserOperation.class);
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();
        }
回复回复aflyun[2015-09-30 05:01 PM | del]
这个例子跑不通:
解决方案有两个:
①:User.xml中的namepace改为 接口IUserOperation的路径 ,其他的不用更改
②:不要User.xml文件,直接在接口IUserOperation上添加mybatis的注解@select
如:
public interface UserOperation {
    @Select("select * from users where id = #{id}")
    public User getUser(int id);
}

这样子就可以进行正常运行,显示结果了
回复回复牛穿疯[2015-09-02 09:25 AM | del]
引用来自 doris 引用来自 doris
如果用接口的话。需要改好几个地方才能成功。
1.User.xml改成IUserOperation.xml
2.IUserOperation.xml中的namespace改成接口IUserOperation的路径
3.configuration.xml中的mappers之前是引用的User.xml,现在相应改成IUserOperation.xml的路径。
这样子测试成功了。

其实只需要改第二条就好了
回复回复竣扬工作室[2015-06-22 06:00 PM | del]
教程写的很好,只是漏了修改User.xml配置文件的命名空间,需改成接口类的路径
回复回复Hanker[2015-04-02 04:02 PM | del]
doris说的没错
回复回复doris[2014-11-28 10:54 AM | del]
如果用接口的话。需要改好几个地方才能成功。
1.User.xml改成IUserOperation.xml
2.IUserOperation.xml中的namespace改成接口IUserOperation的路径
3.configuration.xml中的mappers之前是引用的User.xml,现在相应改成IUserOperation.xml的路径。
这样子测试成功了。
回复回复liandu[2014-05-04 03:04 PM | del]
namespace 改成 comyihaomenmybatisinterIUserOperation
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.