• 写在最前

  MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

  (了解更多,前往 http://www.mybatis.org/mybatis-3/zh/index.html

  • 提取准备需要用到的jar

  mybatis-3.2.4.jar

  mysql-connector-java-5.1.33.jar  (下面示范用mysql)

  • 步骤预览

  (1)创建项目,添加mybatis配置文件 conf.xml

  (2)在数据库,新增一张简单用户表,然后创建用户实体类

  (3)定义操作用户表的sql映射文件UserMapper.xml

  (4)在conf.xml文件中注册UserMapper.xml

  (5)编写测试类进行测试

  • 项目结构一览

  

  • 开始体验

  1、创建java web项目,导入上面两个jar包

  

 

  添加配置文件conf.xml,路径:src/conf.xml

<?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/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
</configuration>

conf.xml

  2、创建数据表 tb_user,添加测试数据

  

  新增实体类,路径:src/main/User.java

package main;

public class User {

    private int id;
private String name;
private int age; 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 int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}

User.java

  3、定义操作用户表的sql映射文件UserMapper.xml,路径: src/mapper/UserMapper.xml

<?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">
<mapper namespace="mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="main.User">
select * from tb_user where id = #{id}
</select> <select id="getUserList" parameterType="int" resultType="main.User">
select * from tb_user
</select>
</mapper>

UserMapper.xml

  注意配置路径!!!

  4、在conf.xml文件中注册UserMapper.xml,新增下面代码

     <mappers>
<!-- 注册UserMapper.xml文件,-->
<mapper resource="mapper/UserMapper.xml"/>
</mappers>

  完整代码:

<?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/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments> <mappers>
<!-- 注册UserMapper.xml文件,-->
<mapper resource="mapper/UserMapper.xml"/>
</mappers> </configuration>

conf.xml

  5、测试,编写测试类Test1.java,路径:src/test/Test1.java

package test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import main.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test1 { public static void main(String[] args) throws IOException{ // mybatis的配置文件
String resource = "conf.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
// 构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
// 创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession(); String statement = "mapper.UserMapper.getUserById";// 映射sql的标识字符串
// 执行查询返回一个user对象
User user = session.selectOne(statement, 1);
System.out.println("Result 1:");
System.out.println(user+"\n"); String statement2 = "mapper.UserMapper.getUserList";// 映射sql的标识字符串
List<User> users = session.selectList(statement2);
System.out.println("Result 2:");
for (int i = 0; i < users.size(); i++) {
//System.out.println(users.get(i).getName());
System.out.println(users.get(i));
}
}
}

  执行结果:

  

  (@_@)~到此结束~

mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程)的更多相关文章

  1. mybatis学习笔记一(入门)

    昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点. mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ib ...

  2. SpringMVC学习笔记之---简单入门

    SpringMVC简单入门 (一)什么是MVC设计模式 (1)model:模型数据,业务逻辑 (3)view:呈现模型,与用户进行交互 (3)controller:负责接收并处理请求,响应客户端 (二 ...

  3. MyBatis学习笔记(一)入门

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

  4. AngularJS学习笔记一:简单入门

    阿里云网站的前端是AngularJS实现的. 先下载AngularJS的开发工具包,我下载的angular-1.4.0. 在合适位置引入js文件: <script src="angul ...

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

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

  6. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

    文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...

  7. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  8. MyBatis:学习笔记(3)——关联查询

    MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...

  9. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

随机推荐

  1. javaWeb学习总结(10)- Filter(过滤器)常见应用(3)

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 package me.gacl.web.filter; import java.io. ...

  2. jquery deferred done then区别

    jquery deferred done then区别 deferred是jquery 对promise的实现. 以下内容基于jquery 1.8及以上版本 deferred具有then done等属 ...

  3. spring和hibernate的整合

    阅读目录 一.概述 二.整合步骤 1.大致步骤 2.具体分析 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让H ...

  4. Java 9 揭秘(1.Java入门介绍)

    文 by / 林本托 在第一部分中,主要讲解如下内容: JDK 9 包含了哪些内容 运行代码的系统要求 如何安装 NetBeans 1 JDK 介绍 JDK 9是Java开发工具包的第九个主要版本,计 ...

  5. Java之反射代码演示说明

    还不存在的类–即我们需要使用反射来使用的类 Person类: package com.qf.demo4; public class Person { private String name; publ ...

  6. Java中设计模式之单例设计模式-1

    单例作用 1 节省内存 2 可以避免多种状态导致状态冲突 单例的创建步骤 1 私有化构造方法 2 私有化声明的属性 3 getInstance 4 方法需要静态 单例分类 1.懒汉式 2.饿汉式 两种 ...

  7. Spring Task每次都会调用两次的问题

    最近一个Spring Mvc的项目中需要定时执行一个任务,所以使用了spring 自带的Task功能.本地调试的时候一切都正常,可是部署到服务器上后,每次任务都会被调用两次.在网上搜索了相关的问题,排 ...

  8. Chapter 1:Introduction

    作者:桂. 时间:2017-05-24  08:06:45 主要是<Speech enhancement: theory and practice>的读书笔记,全部内容可以点击这里. 1. ...

  9. go 基础语法

    时间有限,简单记一些常用的,麻烦的不写了 定义变量:可以连续定义,也可以单个定义 var a int    int类型 var a="ds"   默认string类型 a:=&qu ...

  10. druid参数配置说明

    配置 缺省值 说明 name   配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来.如果没有配置,将会生成一个名字,格式是:"DataSource-" ...