MyBatis概念

MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为MyBatis。

MyBatis是一个数据持久层(ORM)框架。

MyBatis是把实体类和sql语句之间建立了映射关系,而Hibernate在实体类和数据库之间建立了映射关系。

总体来说 MyBatis 主要完成两件事情

  1. 根据 JDBC 规范建立与数据库的连接;
  2. 通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。

MyBatis的优点

  1. 基于SQL语法,简单易学。
  2. 能了解底层组装过程。
  3. SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
  4. 程序调试方便。

MyBatis层次结构

MyBatis安装(环境配置)*.* 例子是最好的笔记

  1. 准配需要的jar包:mybatis-3.2.6.jar和mysql-connector-java-5.1.11-bin.jar

  

  2.创建mybatis-config.xml,并配置数据库环境

 1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6 <!-- 环境 -->
7 <environments default="developments">
8 <environment id="mysql">
9 <transactionManager type="JDBC"></transactionManager>
10 <dataSource type="POOLED">
11 <property name="driver" value="com.mysql.jdbc.Driver"/>
12 <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydbone"/>
13 <property name="username" value="root" />
14 <property name="password" value="199751hwl" />
15 </dataSource>
16 </environment>
17 </environments>
18
19 </configuration>

  3.创建一个实体Person.java

package com.model.system;

public class Person {

    private Integer persId;
private String persName;
private String persSex;
private String persHobby; public Person() {} public Person(Integer persId, String persName, String persSex, String persHobby) {
super();
this.persId = persId;
this.persName = persName;
this.persSex = persSex;
this.persHobby = persHobby;
} public Integer getPersId() {
return persId;
} public void setPersId(Integer persId) {
this.persId = persId;
} public String getPersName() {
return persName;
} public void setPersName(String persName) {
this.persName = persName;
} public String getPersSex() {
return persSex;
} public void setPersSex(String persSex) {
this.persSex = persSex;
} public String getpersHobby() {
return persHobby;
} public void setpersHobby(String persHobby) {
this.persHobby = persHobby;
} @Override
public String toString() {
return "Person [persId=" + persId + ", persName=" + persName + ", persSex=" + persSex + ", persHobby="
+ persHobby + "]";
} }

  4.为实体配置对应的映射文件Person.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="com.model.system.Person">
<resultMap type="com.model.system.Person" id="person">
<result column="persId" property="persId" />
<result column="persName" property="persName" />
<result column="persSex" property="persSex" />
<result column="persHobby" property="persHobby" />
</resultMap> <!-- 查询用户通过用户ID -->
<select id="queryPersonByPersonId" parameterType="java.lang.Integer"
resultMap="person">
select * from person where persId = #{persId}
</select> <!-- 添加用户通过用户ID -->
<select id="insertPerson" parameterType="java.lang.String"
resultMap="person">
INSERT INTO person(persName,persSex,persHobby) VALUE (#{persName},#{persSex},#{persHobby})
</select>
</mapper>

  5.在mybatis-config.xml,添加User.xml映射文件

1 <!-- 添加映射文件 -->
2 <mappers>
3 <mapper resource="com/mapper/system/Person.xml" />
4 </mappers>

  6. 调用类(测试类)

 1 package com;
2
3 import java.io.IOException;
4 import java.io.Reader;
5
6 import org.apache.ibatis.io.Resources;
7 import org.apache.ibatis.session.SqlSession;
8 import org.apache.ibatis.session.SqlSessionFactory;
9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10
11 import com.model.system.Person;
12
13 public class TestQueryPersonById {
14
15 public static void main(String[] args) throws IOException {
16
17 // 从XML中创建SqlSessionFactory
18 String resource = "mybatis-config.xml";
19
20 Reader reader = Resources.getResourceAsReader(resource);
21 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader, "mysql");
22 // 获取session
23 SqlSession session = ssf.openSession();
24
25 Person person = session.selectOne("com.model.system.Person.queryPersonByPersonId", 1);
26 // 通过命名空间查找sql
27 System.out.println(person);
28 }
29 }

MyBatis概念和”安装“的更多相关文章

  1. mybatis generator 插件安装及使用

    现在Mybatis特别火,但是在开发中却要经常写实体类和配置文件,会不会特别烦人,所以可以利用Mybatis的代码生成插件来生成这部分代码: 1,打开eclipse,点击Help>Softwar ...

  2. Docker教程:dokcer machine的概念和安装

    http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...

  3. Eclipse MyBatis Generator插件安装

    目录 Eclipse MyBatis Generator插件安装 Eclipse MyBatis Generator插件安装 1.进入Eclipse Marketplace [Help] -> ...

  4. Maven(一)Maven 的概念和安装

    Maven 的概念和安装 Maven 是什么 首先 Maven 肯定是一个造福人类的好东西,它可以省去我们构建项目中引入 jar 包时的麻烦,还有利于项目的模块化开发等等等好处.在如今项目中大体都是使 ...

  5. MyBatis 概念

    简介 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyB ...

  6. 零基础学习java------40---------Maven(maven的概念,安装,maven在eclipse中使用),springboot(spring整合springmvc(注解),spring整合mybatis(常见的配置文件)),前端页面(bootstrap软件)

    一 maven 1. Maven的相关概念 1.1 项目开发中遇到的问题 (1)都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行? (2)为什么在我的机器上可以正常打包,而配置管理 ...

  7. YII框架概念与安装

    Yii概念: YII安装:      下载最版本http://www.framework.com      解压至访问目录下 直接打开advanced/init.bat文件输入0之后输入yes 打不开 ...

  8. MySQL数据库1 - 基本概念及安装

    一.数据管理技术的产生和发展: 1.人工管理阶段 - 效率低,成本高(文字) 2.文件系统阶段 - 易于存储,处理速度快,数据形式丰富(文字,声音,图片...磁带,磁盘) 3.数据库系统阶段 - 易于 ...

  9. Hive从概念到安装使用总结

    一.Hive的基本概念 1.1 hive是什么? (1)Hive是建立在hadoop数据仓库基础之上的一个基础架构: (2)相当于hadoop之上的一个客户端,可以用来存储.查询和分析存储在hadoo ...

随机推荐

  1. Golang slice作为函数参数

    slice底层其实是一个结构体,len.cap.array分别表示长度.容量.底层数组的地址,当slice作为函数的参数传递的时候,跟普通结构体的传递是没有区别的:如果直接传slice,实参slice ...

  2. 已知三角形ABC为锐角三角形,求 sinA + sinB·sin(C/2) 的最大值。

    已知三角形ABC为锐角三角形,求 sinA + sinBsin(C/2) 的最大值. 解:Δ := sinA + sinB·sin(C/2) = sin(B+C) + sinB·sin(C/2) = ...

  3. Hopper Disassembler系列之Sublime Text 3 爆破

    https://www.52pojie.cn/thread-793069-1-1.html 当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9. 当参数 ...

  4. 简单三分钟,本地搭建 k8s

    使用 minikube 在本地搭建 k8s 已经比以前要简单很多了.本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤. Newbe.Claptrap 是一个用于轻松应对并发问题的 ...

  5. WHY IS A BYTE 8 BITS? OR IS IT?

    WHY IS A BYTE 8 BITS? OR IS IT? 原文链接:http://www.bobbemer.com/BYTE.HTM I recently received an e-mail ...

  6. 不写注释的程序员-Models

    Models 不写注释的程序员-Models # This is an auto-generated Django model module. # You'll have to do the foll ...

  7. Identity用户管理入门二(显示用户列表)

    在Controllers中新建AccountController,并在构造方法(函数)中注入SignInManager,UserManager UserManager   用户管理(注册,查找,修改, ...

  8. 使用Eclipse对weblogic进行远程调试

    一.环境说明 weblogic12c,linux centOS 6.5,eclipse mars. 二.步骤 1.找到weblogic根目录下user_projects/domains/域名/bin/ ...

  9. python生成时间序列(date_range)

    介绍 自己写了一个用python内置模块实现的生成时间序列的函数 支持自动推断字符串到datetime的转换, 但对格式有一定要求, 其它格式可手动指定格式化方式, 格式化方式与python内置格式化 ...

  10. 安装Centos7,出现无法联网的问题-----解决办法

    安装Centos7,出现无法联网的问题-----解决办法 我安装的是centos7的版本 在我照着centos7安装教程-CentOS-PHP中文网这个教程安装完后 我发现我的centOS无法联网,在 ...