Mybatis入门实例
MyBatis 简介

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
构建项目
使用gradle
compile 'org.mybatis:mybatis:3.4.6'
使用Maven
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
准备
使用gradle导入MySQL驱动
compile 'mysql:mysql-connector-java:8.0.13'
准备数据库

入门实例
SqlSessionFactory
每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为中心的。它可以通过SqlSessionFactoryBuilder产生。而SqlSessionFactoryBuilder的实例则可以从XML配置文件或者一个预先设定好的Configuration的实例构建出来。
MyBatis包含了一个名叫Resources的工具类,它包含一些使用方法,可以使得从classpath或者其他位置加载资源文件更加方便。
我们可以采用如下的方式使用XML构建SqlSessionFactory:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
编写XML配置文件
在XML配置文件中,包含了对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>
<!--配置MyBatis的环境设置 -->
<environments default="development">
<!-- 开发环境下的环境设置-->
<environment id="development">
<transactionManager type="JDBC"/>
<!--配置数据库连接-->
<dataSource type="POOLED">
<!--MySQL驱动,使用旧版驱动会报错-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--相应的URL,在某个驱动版本之后,不使用SSL会报错,不设置时区也会报错,后面设置接受的字符编码等-->
<property name="url" value="jdbc:mysql://127.0.0.1:3306/java?useSSL=true&
serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--SQL映射-->
<mappers>
<mapper resource="Mapper/StudentMapper.xml"/>
</mappers>
</configuration>
从 SqlSessionFactory 中获取 SqlSession
SqlSessionFactory 是一个工厂类,用来生产SqlSession类实例。
SqlSession 实例包含了所有面向数据库执行SQL命令所需要的全部方法,可以通过SqlSession实例来直接执行已经映射了的SQL语句,
我们可以使用如下的方法获取SqlSession:
SqlSession sqlSession = sqlSessionFactory.openSession();
为结果创建DataObject
为了将从数据库中获取的结果集保存在对象中,我们需要为其创建一个DataObject,按照需求为每个字段创建属性变量。对于一些不需要的属性比如自增的ID,可以无需创建对应的属性变量。
相应的DataObject:
package TestMybatis;
public class DataObject {
private int id;
private String name;
private int num;
private String birthday;
private String department;
//----------Setter and Getter--------------
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getNum() {
return num;
}
public String getBirthday() {
return birthday;
}
public String getDepartment() {
return department;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setNum(int num) {
this.num = num;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public void setDepartment(String department) {
this.department = department;
}
//----------Setter and Getter--------------
@Override
public String toString(){
return getName() + " 的ID是 " + getId() + " 出生于 " + getBirthday() + " 是 " + getDepartment() + "学院的学生";
}
}
为SQL语句创建映射
在MyBatis中,使用的SQL语句都是通过映射定义的。存在XML映射以及Java注解两种方法。对于简单的SQL语句Java注释可以轻松应对,但是对于一些复杂的语句,还是推荐使用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 namespace="StudentMapper">
<!--
在select标签中定义一个select语句。其唯一的ID属性为getStudent,查询所需要使用到的参数类型为int
查询返回的类型为TestMybatis.DataObject,即将查询结果封装成一个DataObject类的对象进行返回
-->
<select id="getStudent" parameterType="int" resultType="TestMybatis.DataObject">
select * from student where id=#{id}
</select>
</mapper>
在这里我们就可以向上翻一翻上面的MyBatis的配置文件,在在下方的mapper中引用了我们刚刚编写的StudentMapper.xml,这样就完成了映射的注册。
剩下的几步
最后使用获取的sqlSession进行查询,并且打印返回的实体类:
DataObject data = sqlSession.selectOne("getStudent",100);
System.out.println(data);

Mybatis入门实例的更多相关文章
- Mybatis入门实例解析
写在前面:本文全程根据Mybatis官网进行入门讲解.毫无疑问,官方文档是学习这门技术最权威的资料,与此同时我们也知道官方文档对待入门小白基本上不太友好,没有入门demo.开篇就是小白们不懂的内容.有 ...
- 2.mybatis入门实例 连接数据库进行查询
1.新建项目,添加mybatis和mysql的jar包 2.在mysql中新建表user[id,name,age] CREATE TABLE `users` ( `id` ) NOT NULL aut ...
- MyBatis入门实例-包括实体类与数据库字段对应&CLOB字段处理
1.我的开发环境是 jdk1.7+ecplise+oracle 11g 用到的jar包:mybatis-3.1.1.jar ojdbc6.jar 2.项目整体结构 3.首先配置conf.xml ...
- MyBatis入门实例 ——Mapper.xml(zz)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBL ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- mybatis 详解(二)------入门实例(基于XML)
通过上一小节,mybatis 和 jdbc 的区别:http://www.cnblogs.com/ysocean/p/7271600.html,我们对 mybatis有了一个大致的了解,下面我们通过一 ...
- mybatis 详解(三)------入门实例(基于注解)
1.创建MySQL数据库:mybatisDemo和表:user 详情参考:mybatis 详解(二)------入门实例(基于XML) 一致 2.建立一个Java工程,并导入相应的jar包,具体目录如 ...
- 1. mybatis 的入门实例
mybatis 的入门实例 1.创建一个普通的Java项目 1.加入jar包(所有mybatis 和mysql) 2.加入配置文件 src 目录下 (1) db.properties mysql.us ...
- mybatis学习一:基于xml与注解配置入门实例与问题
注:本case参考自:http://www.cnblogs.com/ysocean/p/7277545.html 一:Mybatis的介绍: MyBatis 本是apache的一个开源项目iBatis ...
随机推荐
- Webview 浏览器开源项目总结
在Android开发中,我们不免会遇到使用WebView实现网页展示的需求,以下是本人之前star的开源项目,供大家参考: 一.CrosswalkWebview 项目地址:https://github ...
- Lombok的@Data、@Setter、@Getter注解没反应问题解决
在用@Data注解时,没有生成setter/getter方法.百度了一堆都没解决方法,后来用Google查了一下解决了~~~ 使用IDEA需要安装Lombok插件,我这里已经下载好,如果没下载安装点击 ...
- 数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException
Java中,可以使用Arrays.asList(T... a)方法来把一个数组转换为List,返回一个受指定数组支持的固定大小(注意是固定大小)的列表.此方法同 Collection.toArray( ...
- [Web安全之实战] 跨站脚本攻击XSS
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1. 认识XSS 2. ...
- Windows服务器端口绑定证书
打开IIS:inetmgr 打开服务:ctrl+shift+Esc 查看证书秘钥: 服务器查看https证书绑定: 1) 查看证书 netsh http show sslcert 2) 将证书与端口绑 ...
- Python 实现 KNN(K-近邻)算法
一.概述 KNN(K-最近邻)算法是相对比较简单的机器学习算法之一,它主要用于对事物进行分类.用比较官方的话来说就是:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例, ...
- gradle 自定义插件 下载配置文件
1.新建Gradle项目: 2.建立src/main/groovy目录,并添加如下代码: ConfigPlugin.groovy package com.wemall.config import or ...
- springboot情操陶冶-@Conditional和@AutoConfigureAfter注解解析
承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上阐述@AutoConfigureAfter和@Conditional注解的作用与解析 1.@Condit ...
- 【Git】时光机命令—Git命令
cd c: 进入C盘 mkdir learngit 创建名为learngit的文件夹 cd learngit 进入learngit文件夹 pwd 显示当前目录路径 gi ...
- SpringMVC学习(三)———— springmvc的数据校验的实现
一.什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验. 数据校验分为客户端校验和服务端校验 客户端校验 ...