1.MyBatis的环境配置

  • 导入MyBatis包, mybatis-3.2.8.jar
  • 导入MySQL驱动包, mysql-connector-java-5.1.24-bin.jar
  • 创建表的实体类, 例如: MyUser(id, name, password)
  • 编写MyBatis的核心配置文件, SqlMapConfig.xml
  • 编写映射文件, 例如: MyUserMapper.xml
  • 编写测试来完成数据库CRUD操作

2.MyBatis代码编写原理图,因为环境搭建成功不成功需要我们写一段代码来测试。但是如何编写一段MyBatis的测试代码,我们有必要先了解一下MyBatis整个代码运行的原理图。在这里要谢谢CSDN上这位小伙伴提供的图片

3.如何导入MyBatis的jar包都非常容易,所以这里我们从MyBatis核心配置文件编写开始讲解编写MyBatis程序的流程

  • 主要配置mybatis的运行环境, 数据源, 事务, 用户名, 用户密码, 缓存等。一般此配置文件存放到src目录下
 <?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>
<!-- 将数据库连接信息简化到Java的属性文件中 -->
<properties resource="jdbc.properties"></properties> <!-- 配置实体类的别名,配置实体类别名的目的是为了在引用实体类时可以使用实体类的别名来代替实体类,达到简写的目的 -->
<typeAliases>
<!-- com.mybatis2.entity包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名 -->
<!-- 如com.mybatis2.entity.MyUser这个实体类的别名就会被设置成MyUser -->
<package name="com.mybatis2.entity"/>
</typeAliases> <!-- 配置开发模式, 添加数据库信息, 开启事务模式 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/mybatis2/mapper/MyUserMapper.xml"/>
</mappers>
</configuration>

4.编写实体类

  • 什么实体类:简单说就是一个普通的JavaBean, 满足一点要求, 就是JavaBean的属性需要对应数据库表中的字段
 create table MyUser (
id int primary key AUTO_INCREMENT,
name varchar(20),
password varchar(20)
)
 package com.mybatis2.entity;

 public class MyUser {
/*
* 1.MyUser.java对应表名
* 2.id对应MyUser表中的主键
* 3.username对应MyUser表中的用户名
* 4.userpass对象MyUser表中的用户密码
*/ private int id;
private String username;
private String userpass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
} @Override
public String toString() {
return "MyUser [id="+this.id+" username="+this.username+" userpass="+this.userpass+"]";
}
}

5.配置实体类和数据库表的映射文件

  • MyBatis的映射文件主要关联实体类与数据库表,主要目的是将表返回的数据映射到实体类(封装)
 <?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,namespace的值习惯上设置成包名+sql映射文件名 -->
<mapper namespace="com.mybatis2.mapper.MyUserMapper"> <!-- 根据用户的ID来查询 -->
<!-- 使用占位符:#{}表示一个占位符 -->
<select id="getMyUserById" resultType="MyUser" parameterType="java.lang.Integer">
select * from MyUser where id=#{id}
</select>
</mapper>

6.测试MyBatis

 package com.gxa.test;

 import java.io.IOException;
import java.io.Reader;
import java.util.List; 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 org.junit.Test; import com.gxa.pojo.MyUser;
import com.gxa.pojo.Team; public class Test01 {
/**
* 启动MyBatis去加载配置文件
* 1.java.io.Reader
* 2.Resources
* 3.SqlSessionFactory
*/
private static Reader reader;
private static SqlSessionFactory sqlSessionFactory; static {
try {
reader = Resources.getResourceAsReader("config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 1.初始化SqlSession, 执行SQL语句
* 2.告知程序读哪个映射文件
* 3.告知程序执行映射文件中哪个CRUD操作
*/
@Test
public void m01() {
SqlSession sqlSession = sqlSessionFactory.openSession();
String sql = "com.gxa.mapper.MyUserMapper.getMyUser";
List<MyUser> list = sqlSession.selectList(sql);
System.out.println(list);
sqlSession.close();
} }

[刘阳Java]_快速搭建MyBatis环境_第2讲的更多相关文章

  1. [刘阳Java]_Spring对Dao的支持_第10讲

    Spring框架优秀就是在于MVC开发的时候一旦需要对底层的数据库操作,它可以很好的支持JDBC技术,还有现在主流的ORM框架(Hibernate, MyBatis)技术. 重点先介绍Spring对J ...

  2. [刘阳Java]_MyBatis_动态SQL标签用法_第7讲

    1.MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 2.MyBatis中用于实现动态SQL的元素主要有 if choose(when,otherwi ...

  3. [刘阳Java]_MyBatis_常规标签的用法_第6讲

    一般MyBatis最基本标签,或者说初学者上手最快的标签就是增删改查 1.<insert>标签,在MyBatis中完成数据添加操作 <insert id="addMyUse ...

  4. [刘阳Java]_SpringMVC与Struts2的对比_第12讲

    今日来具体给讲讲SpringMVC与Struts2的对比,这样方便朋友们在工作中或者是面试学习中对这两者的区别有个更好的了解 把这张图放在这里,我是想说SpringMVC和Struts2真的是不一样的 ...

  5. [刘阳Java]_Spring AOP注解详细介绍_第8讲

    这节内容非常关键,我们会比较详细地介绍Spring AOP注解的使用 1. 要使用Spring AOP注解,必须满足如下的事项 导入Aspectj的jar.Spring3.0-AOP.jar.aopa ...

  6. 快速搭建Web环境 Angularjs + Express3 + Bootstrap3

    快速搭建Web环境 Angularjs + Express3 + Bootstrap3 AngularJS体验式编程系列文章, 将介绍如何用angularjs构建一个强大的web前端系统.angula ...

  7. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  8. 阿里云体验实验室 教你如何《快速搭建LNMP环境》

    ## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...

  9. 烂泥:学习ubuntu之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...

随机推荐

  1. Win10光驱不见了

    1. 网上教程试了很多,如下: http://jingyan.baidu.com/article/02027811656a8b1bcd9ce570.html http://jingyan.todgo. ...

  2. 二模15day1解题报告

    T1.合并序列(minval) 给出长为 n的AB两个序列求两两相加中最小的n个. 据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[ ...

  3. Openstack Day1简介及虚拟环境搭建

    本文章仅作为作者本人存档记忆!恕不详细展开内容!   openstack kilo版本重要组件(module)简介 ======================================= Ke ...

  4. CSS 单行溢出文本显示省略号...的方法(兼容IE FF)(转)

    http://www.52css.com/article.asp?id=602 ===================================================     html ...

  5. 判断是手机还是PC端访问

    /*判断手机*/ //判断是手机浏览还是pc //平台.设备和操作系统 var system = { win: false, mac: false, xll: false, ipad: false } ...

  6. 快速卸载VS2015的办法

    1.以管理员身份运行CMD: 2.在CMD里输入F:\>vs_enterprise.exe /uninstall /force

  7. HttpResponseMessage和HttpResponseException (转)

    Web API 中提供了 HttpResponseMessage 与 HttpResponseException 用于处理返回讯息,HttpResponseMessage 用于返回一个来自于客户端的请 ...

  8. 通过DIV+span方式模拟进度条的实现方法

    上上周用FusionCharts做报表时,有个图是进度条的形式,其实在FusionCharts 3.0之后已经支持了(Linear Gauge),可惜现有系统用的还是1.2.3版本的,重新引入新版本有 ...

  9. lua学习笔记(一)

    lua是一种嵌入式的语言,首先安装. lua安装依赖于readline库,下载readline tar -zxvf readline-6.2.tar.gz cd readline-6.2 ./conf ...

  10. linux病毒

    linux病毒查杀规范 一.病毒发现 1.ps -A.ps -ef.ps -aux查看是否有异常进程 2.last,lastlog命令可查看最近登录的帐户及时间 3.查看/var/log/messag ...