直接上代码,全部在代码里讲解。

  1.实体类

package com.home.entity;

/**
* 此类是:user实体类
* @author hpc
* @2017年1月10日下午9:36:59
*/
public class User {
private Integer user_id;
private String user_name;
private String user_pwd; public User(Integer user_id, String user_name, String user_pwd) {
super();
this.user_id = user_id;
this.user_name = user_name;
this.user_pwd = user_pwd;
}
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_pwd() {
return user_pwd;
}
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
@Override
public String toString() {
return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]";
} }

  2. 接口注解

  

package com.home.entityInterface;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import com.home.entity.User; /**
* 此类是:映射关系接口
* @author hpc
* @2017年1月11日下午7:09:20
*/
public interface UserMapperInterface{
/**
* 获取指定id的User
* 当我们调用这个方法的时候就会去执行这一条sql语句,
* 这里面要注意点的是:
* 传进来的参数是以对象的形式传进来的,
* 所以取的时候要以对象属性来取,否则将会报错.
*/
@Select("select * from users where user_id=#{user_id}")
public User loadUser(User user); /**
* 更新user
*/
@Update("update users set user_name=#{user_name},user_pwd=#{user_pwd} where user_id=#{user_id}")
public int updateUser(User user);
/**
* 删除user
*/
@Delete("delete from users where user_id=#{user_id}")
public int deleteUser(User user);
/**
* 插入user
*/
@Insert("insert into users(user_name,user_pwd) values(#{user_name},#{user_pwd}) ")
public int insertUser(User user);
}

  3.mybatis的配置文件(要和xml配置一样,都要在mybatis配置文件中注册)

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 这个些头我也不记得我是到官方文档复制来的-->
<configuration><!-- 这是mybatis的配置,我们的配置都写在这里面 -->
<properties resource="jdbc.properties"/>
<!--properties标签用于 引入properties文件,在下面属性中我们要引用到properties中的内容 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/><!-- 事务管理 -->
<dataSource type="POOLED"><!-- 数据源 -->
<property name="driver" value="${jdbc.driverClass}"/>
<!-- 指定哪一个驱动 ,从properties中引用-->
<property name="url" value="${jdbc.url}"/>
<!-- 指定哪一个链接url -->
<property name="username" value="${jdbc.user}"/>
<!-- 指定哪一个链接用户 -->
<property name="password" value="${jdbc.password}"/>
<!-- 指定哪一个链接密码 -->
</dataSource>
</environment>
</environments>
<!-- 注册映射关系文件 -->
<mappers>
<!-- 这是我们上次注册映射关系配置文件的方式,这是以xml文件配置的方式注册的 -->
<!-- <mapper resource="com/home/entity/userMapper.xml"/> -->
<!-- 这次我们以接口的方式注入 ,所有的sql语句已经在接口的方法上写好了,就没必要在写 配置文件了-->
<mapper class="com.home.entityInterface.UserMapperInterface"/>
</mappers>
</configuration>

   4.测试

  

package com.home.mybatis;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.home.entity.User;
import com.home.entityInterface.UserMapperInterface;
import com.home.mybatis.utils.SessionUtils; public class TestApp {
public static void main(String[] args) throws IOException {
// 我将获取session的代码封装成了一个工具类,直接用工具类来获取session
SqlSession session = SessionUtils.getSession("mybatis.xml");
// 通过接口,直接使用session.getMapper(接口.class);获取到接口
UserMapperInterface mapper = session.getMapper(UserMapperInterface.class);
// 再调用接口的方法,去执行接口所注解的sql语句
System.out.println(mapper.insertUser(new User(null,"mh", "123")));
System.out.println(mapper.updateUser(new User(3, "hpc", "123")));
System.out.println(mapper.deleteUser(new User(3, null, null)));
System.out.println(mapper.loadUser(new User(1, null, null)));
// 将数据属性到数据中去
session.commit();
// 关闭session
session.close();
}
}

  5.结果

mybatis学习笔记二(接口注解)的更多相关文章

  1. mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现

    项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...

  2. Mybatis学习笔记二

    本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...

  3. MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...

  4. MyBatis学习笔记(二) 关联关系

    首先给大家推荐几个网页: http://blog.csdn.net/isea533/article/category/2092001 没事看看 - MyBatis工具:www.mybatis.tk h ...

  5. MyBatis学习笔记(二) Executor

    一.概述 当我们打开一个SqlSession的时候,我们就完成了操作数据库的第一步,那MyBatis是如何执行Sql的呢?其实MyBatis的增删改查都是通过Executor执行的,Executor和 ...

  6. MyBatis学习笔记二:MyBatis生产中使用环境搭建

    这里是在上一个环境的基础上修改的,这里就不在给出所有的配置,只给出哪里修改的配置 1.修改POJO对象为注解方式 2.创建Dao层接口 package com.orange.dao; import c ...

  7. Mybatis学习笔记(二) —— mybatis入门程序

    一.mybatis下载 mybaits的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 下载完后的目录结构: 二. ...

  8. mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)

    下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...

  9. Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)

    一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...

随机推荐

  1. 关于Dictionary字典和List列表

    命名空间System.Collections.Generic中有两个非常重要,而且常用的泛型集合类,它们分别是Dictionary<TKey,TValue>字典和List<T> ...

  2. iOS基础 - UIDynamic

    一.UIKit动力学 UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit 注意:UIKit动力学的引入,并不是 ...

  3. WinForm媒体播放器

    媒体播放控件(Windows Media Player )的常用属性和方法,并且利用它设计一个简单的媒体应用程序——媒体播放器.该媒体播放器可以播放 wav.avi.mid 和 mp3 等格式的文件. ...

  4. 编写高质量equals方法

    什么是equals方法 指示其他某个对象是否与此对象相等,equals方法存在Object类中,我们编写的类继承Object,可以覆盖Object的equals方法来实现我们的逻辑,去判断两个对象是否 ...

  5. 移动tempdb导致数据库服务不能启动

    事情的起因是因为数据库的IO操作过大,于是新加了个硬盘,发现在执行写入操作的时候,服务器的压力依然是比较大的,于是想到了内存盘.内存盘是"魔方"系统优化提供的一个小工具,就是将内存 ...

  6. Python:Module Install Issues

    Python里的Module安装过程总有一些奇怪的坑,在此整理一下,以供再遇到此类问题参看 (当然如果这篇文章有人看的话,希望能对你有所帮助~) 目前碰到的主要是以下几种: 0.使用PyCharm 1 ...

  7. Apache指南:CGI动态页面

    概要 相关模块 相关指令 mod_alias mod_cgi AddHandler Options ScriptAlias CGI(公共网关接口[Common Gateway Interface])定 ...

  8. elasticsearch文档-modules

    elasticsearch文档-modules modules 模块 cluster 原文 基本概念 cluster: 集群,一个集群通常由很多节点(node)组成 node: 节点,比如集群中的每台 ...

  9. golang环境搭建

    golang环境搭建 好久没写博客了,最近加班好厉害,加到自己都觉得不太适合这个行业了,每天头都是沉甸甸的,可惜今年注定不是收获的季节. 最近忙里偷闲在学习nodejs,赶巧看到golang的文章,一 ...

  10. Castle Windsor 项目中快速使用

    Castle Windsor 项目中快速使用 新建项目如下: 一个模型类,一个接口,一个实现方法.我的目的很明确就是在UI层通过Castle 调用数据访问层的方法. 添加项目引用 CastleDemo ...