1.创建表emp

CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE emp(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(255),
gender CHAR(1),
email VARCHAR(255)
);

2.编写javaBean

package cn.bdqn.mybatis.been;

public class Emp {
private Integer id;
private String last_name;
private String email;
private String gender;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Emp [id=" + id + ", last_name=" + last_name + ", email="
+ email + ", gender=" + gender + "]";
} }

  3.编写Emp的DAO接口

package cn.bdqn.mybatis.dao;

import cn.bdqn.mybatis.been.Emp;
/**
* 这个接口不用写实现类,是用来给empMapper.xml进行动态绑定的
* @author Administrator
*
*/
public interface EmpMapper {
public Emp getEmpById(Integer id);
}

  

3添加需要的jar包

第一个是log4j的jar包(记录日志文件所需) 第二个是mybatis的核心jar包(必须),第三个是mysql的驱动jar包(必须)

4.创建需要的配置文件

第一个是SQL映射配置文件,所有的sql语句都写在这个配置文件里面

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:名称空间  值是Emp的DAO接口的全限定名称-->
<mapper namespace="cn.bdqn.mybatis.dao.EmpMapper">
<!--
id,唯一标识
resultType:返回值类型,bean的全限定名称
#{id},从传递过来的参数中取出id值,相当于换位符
public Emp getEmpById(Integer id);

id是我们接口中方法的方法名称
-->
<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp">
select * from emp where id = #{id}
</select>
</mapper>

第二个是log4j记录日志所需

第三个是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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?"/>
<property name="username" value="root"/>
<property name="password" value="admin"/>
</dataSource>
</environment>
</environments>
<!--将我们写好的SQL映射文件一定要注册到全局配置文件中 -->
<mappers>
<mapper resource="empMapper.xml"/>
</mappers>
</configuration>

  5,最后编写测试类

package cn.bdqn.mybatis.test;

import java.io.IOException;
import java.io.InputStream; 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 cn.bdqn.mybatis.been.Emp;
import cn.bdqn.mybatis.dao.EmpMapper; public class MyBatisTest_01 {
public static void main(String[] args) throws IOException {
//1.获取SqlSessionFactory对象
String resource="mybatis-config.xml";
InputStream ras = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(ras);
//2.获取SqlSession对象
SqlSession openSession = build.openSession(); try{
//3.获取接口的实现类对象
//会为接口自动创建一个代理对象,代理对象去执行增删改查方法
EmpMapper mapper = openSession.getMapper(EmpMapper.class);
Emp empById = mapper.getEmpById(1);
System.out.println(empById);
}finally{
openSession.close();
} }
}

  

MyBatis第一个案例的优化,通过映射文件与接口进行绑定的更多相关文章

  1. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  2. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

  3. MyBatis第一个案例-----永远的HelloWorld 含所有代码

    1.创建表emp CREATE DATABASE mybatis; USE mybatis; CREATE TABLE emp( id INT(11) PRIMARY KEY AUTO_INCREME ...

  4. java web(七): mybatis的动态sql和mybatis generator自动生成pojo类和映射文件

    前言: MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据 不同条件拼接 SQL 语句的痛苦.例如拼接时要确保不能忘记添加必要的空格,还 ...

  5. MyBatis官方教程及源代码解析——mapper映射文件

    缓存 1.官方文档 MyBatis 包括一个非常强大的查询缓存特性,它能够非常方便地配置和定制. MyBatis 3 中的缓存实现的非常多改进都已经实现了,使得它更加强大并且易于配置. 默认情况下是没 ...

  6. Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】

    配置文件和映射文件再解读 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理 ...

  7. mybatis源码分析(三)------------映射文件的解析

    本篇文章主要讲解映射文件的解析过程 Mapper映射文件有哪几种配置方式呢?看下面的代码: <!-- 映射文件 --> <mappers> <!-- 通过resource ...

  8. Mybatis学习系列(二)Mapper映射文件

    Mapper映射文件,作用是用来配置SQL映射语句,根据不同的SQL语句性质,使用不同的标签,mapper文件中常用的标签有<iselect>.<insert>.<upd ...

  9. MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存

    2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...

随机推荐

  1. 关于适用base64对图片进行编码在服务器上性能的相关讨论

    周五在写open api的时候 和

  2. JavaScript——闭包机制

    闭包机制是JavaScript的重点和难点,本文希望能帮助大家轻松的学习闭包 一.什么是闭包? 闭包就是可以访问另一个函数作用域中变量的函数.下面列举出常见的闭包实现方式,以例子讲解闭包概念 func ...

  3. filebeat 配置文件参数

      filebeat 配置 所有的 beats 组件在 output 方面的配置都是一致的,之前章节已经介绍过.这里只介绍 filebeat 在 input 段的配置,如下: filebeat: sp ...

  4. bzoj 3295 动态逆序对 (三维偏序,CDQ+树状数组)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3295 思路: 可以将这道题看成倒着插入,这样就可以转化成求逆序对数,用CDQ分治降维,正反用 ...

  5. BZOJ 5308 [ZJOI2018] Day2T2 胖 | 二分 ST表

    题目链接 LOJ 2529 BZOJ 5308 题解 这么简单的题 为什么考场上我完全想不清楚 = = 对于k个关键点中的每一个关键点\(a\),二分它能一度成为哪些点的最短路起点(显然这些点在一段包 ...

  6. emwin 解决在A窗口上新建B窗口后‘只激活’B窗口问题

    @2018-08-08 问题来源: 要实现A窗口上的参数修改,通过A窗口上新建的B窗口小键盘实现数据录入,但结果是只要点击A窗口上的任何地方(包括B窗口上的任意位置),则B窗口就消失了 解决办法: 使 ...

  7. 使用kubeadm部署kubernetes1.9.1+coredns+kube-router(ipvs)高可用集群

    由于之前已经写了两篇部署kubernetes的文章,整个过程基本一致,所以这篇只着重说一下coredns和kube-router的部署. kube version: 1.9.1 docker vers ...

  8. Android 友盟SDK 终极解决报错:SocialSDK_QQZone_2.jar contains native libraries that

    转自:http://bbs.umeng.com/thread-6552-1-2.html 报错信息:The library `SocialSDK_QQZone_2.jar` contains nati ...

  9. libcurl使用easy模式阻塞卡死等问题的完美解决

    引言: 由于要在android手机测进行DM开发, 其中最重要的就是FUMO和SCOMO下载, 下载使用的是linux开源库libcurl. 于是就把libcurl的使用研究了一遍, 有些心得, 并解 ...

  10. hdu 1097 A hard puzzle 快速幂取模

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1097 分析:简单题,快速幂取模, 由于只要求输出最后一位,所以开始就可以直接mod10. /*A ha ...