[刘阳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方式进行安装.具体的操作 ...
随机推荐
- jquery 面板拖拽
在网上找了好多的例子 都不满足我所需要 在网上找了一篇关于easyui是一个拓展的demo 然后根据demo 把我所需要的东西进行再次拓展 满足我的需求 也不多说了 上代码 首先 你肯定是要导eas ...
- dedecms讲解-arc.listview.class.php分析,列表页展示
./plus/list.php - 动态展示栏目列表页(也可能是频道封面)arc.listview.class.php 是dedecms的列表页的相关处理类__construct() ...
- 9. js实现java方法:HtmlUtils.htmlEscape()
function htmlEscape(str) { return String(str) .replace(/&/g, '&') .replace(/"/g, '" ...
- Linux终端下安装jdk
linux 终端下安装jdk(rpm方法) 1.下载jdk对应版本rpm文件(以下称为jdk.rpm) 放在对应文件夹下 2.使用命令给定权限 #chmod +x jdk.rpm 3.解压rpm文件 ...
- iOS7——UIControlEventTouchDown延迟响应问题
问题描述 在iOS7下开发,真机调试时,UIButton的其他事件响应都正常,但是UIControlEventTouchDown事件响应会延迟,而且不同响应区域发生的延时情况不同,有时延迟1s以后响应 ...
- log4net日志在app.config中assembly不起作用
log4net 1.2.15.0日志在app.config中assembly不起作用,必须 1.手动调用方法log4net.Config.XmlConfigurator.Configure()来初始化 ...
- python基础知识9——模块2——常见内置模块
内置模块 内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 1.sys 用于提供对Python解释器相关的操作: sys.argv 命令行参数List,第一个元素 ...
- Winform button按钮设置快捷键
1)Text属性命名时后面&加键名,如:文件(&F) 2)添加一个ContextMenuStrip控件,同时在Items里添加一个项,并为项设置快捷键,把Visible设置为false ...
- 关于VS快捷键的使用总结
首先快捷键是为了快,不能为了用快捷键而用快捷键. 既然说到快,我个人认为要涉及到一个使用频率问题,如果一个功能的快捷键使用频率极高,那么就应该把它调到触手可及的位置, 如:经常看别人源代码,经常会使用 ...
- {Reship}{Code}{CV}
UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: https://netfiles.uiuc.edu/jbhuang1/www/resources/vision/in ...