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

  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. Ubuntu下的截图工具

    转载自:http://os.yesky.com/88/8733088.shtml 相信大家对于屏幕截图(或称抓图)应该不会陌生,在Windows平台上,我们可以使用许多第三方的专业抓图软件如SnagI ...

  2. Markdown 代码测试!

    # Mou ![Mou icon](http://mouapp.com/Mou_128.png) ## Overview **Mou**, the missing Markdown editor fo ...

  3. SQL计算年代差

    1.用datediff函数 select datediff(yyyy,StuBirthday,getdate())>17 2.用year函数 select (year(getdate()-yea ...

  4. iis与 asp.net管道(asp.net应用程序什么周期)

      iis5和iis6.0下面,把iis的管道和asp.net管道进行了隔离,带来了一些局限和不足. 比如: 1.iis和asp.net之间有一些相同的操作.比如:身份认证. 2.动态文件和静态文件的 ...

  5. start running 开始跑步减肥

    begin 两个月前,逛超市的时候站在体重秤上称了称,一直以为自己体重很正常(BMI<25,虽然也不轻~~~),结果直接迈过超重,奔着肥胖跑去了(BMI>30,BMI计算器 http:// ...

  6. CentOS 6下安装nodejs 0.9.0(转)

    确保安装了python,大部分安装失败都是由于python版本过低导致.安装之前,升级python版本,升级步骤 http://www.tomtalk.net/wiki/Python. [root@S ...

  7. Please Send Me a Card

    Please Send Me a Card 发现身边很多程序员都能看懂英文技术文章的60%-80%内容,但大家都有一个毛病,就是不会说,不会写作,在逛英文技术社区的时候,想发表点什么评论,总担心自己写 ...

  8. HttpActionDescriptor,ASP.NET Web API又一个重要的描述对象

    HttpActionDescriptor,ASP.NET Web API又一个重要的描述对象 通过前面对“HttpController的激活”的介绍我们已经知道了ASP.NET Web API通过Ht ...

  9. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

  10. mysql 建表 AUTO_INCREMENT , 数据类型 VARCHAR

    建表: 原帖地址: http://blog.sina.com.cn/s/blog_5da3d5c50100bjh0.html MySQL AUTO_INCREMENT 简介 (2009-01-02 1 ...