[刘阳Java]_快速搭建MyBatis环境_第2讲
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讲的更多相关文章
- [刘阳Java]_Spring对Dao的支持_第10讲
		
Spring框架优秀就是在于MVC开发的时候一旦需要对底层的数据库操作,它可以很好的支持JDBC技术,还有现在主流的ORM框架(Hibernate, MyBatis)技术. 重点先介绍Spring对J ...
 - [刘阳Java]_MyBatis_动态SQL标签用法_第7讲
		
1.MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 2.MyBatis中用于实现动态SQL的元素主要有 if choose(when,otherwi ...
 - [刘阳Java]_MyBatis_常规标签的用法_第6讲
		
一般MyBatis最基本标签,或者说初学者上手最快的标签就是增删改查 1.<insert>标签,在MyBatis中完成数据添加操作 <insert id="addMyUse ...
 - [刘阳Java]_SpringMVC与Struts2的对比_第12讲
		
今日来具体给讲讲SpringMVC与Struts2的对比,这样方便朋友们在工作中或者是面试学习中对这两者的区别有个更好的了解 把这张图放在这里,我是想说SpringMVC和Struts2真的是不一样的 ...
 - [刘阳Java]_Spring AOP注解详细介绍_第8讲
		
这节内容非常关键,我们会比较详细地介绍Spring AOP注解的使用 1. 要使用Spring AOP注解,必须满足如下的事项 导入Aspectj的jar.Spring3.0-AOP.jar.aopa ...
 - 快速搭建Web环境 Angularjs + Express3 + Bootstrap3
		
快速搭建Web环境 Angularjs + Express3 + Bootstrap3 AngularJS体验式编程系列文章, 将介绍如何用angularjs构建一个强大的web前端系统.angula ...
 - spring boot / cloud (十八) 使用docker快速搭建本地环境
		
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
 - 阿里云体验实验室 教你如何《快速搭建LNMP环境》
		
## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...
 - 烂泥:学习ubuntu之快速搭建LNMP环境
		
本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...
 
随机推荐
- AX7: Overlayering and extensions
			
Customization: Overlayering and extensions https://ax.help.dynamics.com/en/wiki/customization-overla ...
 - JS数组键值,数组合并,
			
eg: var arr = [] arr.test = '测试'; arr.push(1); arr.push(2); arr.obj = '对象'; console.log(arr);// [ 1, ...
 - .NET (二)委托第二讲:内置委托Func
			
在上一章节中,我们自己声明了一个委托: public delegate bool Cal(int num); 接受int参数,返回bool类型,目的是过滤集合中的 奇数 或者 偶数. .NET 为我们 ...
 - jqurey的跨域使用getjson(http://www.jb51.net/Special/894.htm)
			
JS的跨域问题,我想很多程序员的脑海里面还认为JS是不能跨域的,其实这是一个错误的观点:有很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUER ...
 - 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
			
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
 - Android常用客户端测试工具
			
Emmagee GT iTest PowerTutor 网速限制 Root Explorer ApkEditor 陆续添加...
 - 最近学习linux命令的一个总结
			
最近学习了unix power tools,一方面是想增加对unix系统的了解:另一方面也是想增进使用效率,因为unix一大特色就是内置工具的丰富性.有了这些工具,可以方便的查看系统信息,查找需要的文 ...
 - OpenGL 矩阵变换
			
Overview 几何数据--顶点位置,和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本组 ...
 - strcpy 和 strcat
			
strcpy 原型:char *strcpy( char *dest, char *src ) 头文件:#include <string.h> 功能:将src地址开始且含有NULL结束符 ...
 - servlet service() for servlet jsp throws null pointer exception
			
这么一件小事折腾了一个多小时,google也上不去,对百度我就不吐槽什么了,最后用bing查出了满意的结果.一般程序中不要显式把jsp.jar和servlet.jar放在Lib目录下,因为tomcat ...