Mybatis接口注解 您所在的位置:网站首页 mybatis使用手册 Mybatis接口注解

Mybatis接口注解

#Mybatis接口注解 | 来源: 网络整理| 查看: 265

在上一章中,我们已经搭建了 myeclipse,mybatis,mysql 的开发环境,并且实现了 mybatis 的一个简单的查询。要注意的是,这种方式是用 SqlSession 实例来直接执行在User.xml文件中映射的 SQL 语句:session.selectOne("com.yiibai.mybatis.models.UserMapper.getUserByID", 1),但是还有比这更简单的方法,使用合理描述参数和SQL语句返回值的接口(比如:IUser.class),这样现在就可以不使用类似User.xml配置文件,至此更简单,代码更安全,不容易发生的字符串文字和转换的错误,下面是项目创建的详细过程:

1、创建一个接口:IUser,并在其中声明对应的操作方法

在 src 源码目录下创建一个包:com.yiibai.mybatis.dao,并建立接口类 IUser 及一个方法, 在方法上面,我们使用了一个SQL注释,内容如下:

package com.yiibai.mybatis.dao; import org.apache.ibatis.annotations.Select; import com.yiibai.mybatis.models.User; /** * @author yiibai.com */ public interface IUser { @Select("select * from user where id= #{id}") public User getUserByID(int id); }

请注意,这里面代码有一个方法名 getUserByID 必须与 User.xml 里面配置的 select 的 id 对应()同名,虽使用注解映射不需要User.xml。

2、创建对应映射接口 SQL 语句

首先配置 MyBatis 所需的数据连接文件,这里创建一个文件: src/config/Configure.xml ,其内容如下:

在包:com.yiibai.mybatis.models 下创建一个User.java 类文件,与上一节中 User 类代码相同,这里只是拷贝过来,User.java具体的代码内容如下:

package com.yiibai.mybatis.models; public class User { private int id; private String name; private String dept; private String phone; private String website; public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }

与 User.java 对应的 XML 配置文件:User.xml 可以少省略,不用创建,本节讲解的就是如何消灭类似于User.xml的配置文件。

3、测试接口映射

我们在 src 这个目录下创建一个类:Main.java,用来测试整个配置和程序运行结果,有关 Main.java 的代码详细内容如下:

import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.yiibai.mybatis.dao.IUser; import com.yiibai.mybatis.models.User; public class Main { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("config/Configure.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); sqlSessionFactory.getConfiguration().addMapper(IUser.class); } catch (Exception e) { e.printStackTrace(); } } public static SqlSessionFactory getSession() { return sqlSessionFactory; } public static void main(String[] args) { SqlSession session = sqlSessionFactory.openSession(); try { IUser iuser = session.getMapper(IUser.class); User user = iuser.getUserByID(1); System.out.println("名字:"+user.getName()); System.out.println("所属部门:"+user.getDept()); System.out.println("主页:"+user.getWebsite()); } finally { session.close(); } } }

运行上面示例代码,得到以下结果 -

名字:New name, 所属部门:Tech, 主页:http://www.yiibai.com

最后补充,整个项目 mybatis-interface-02 的结构如下图所示:

  

上一篇: MyBatis环境配置及入门 下一篇: Mybatis增删改查(CURD) 加QQ群啦,易百教程官方技术学习群 注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有