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. jq的slideToggle效果

    slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态. 如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素. 例子:一个简单的下拉菜单效果----& ...

  2. noip模拟测试50

    考试过程:开题顺序1,2,3,做T1的时候我想到了要求的东西,就是分成尽量少的段使得每段之和>=k,但是我不会求,就打了个暴力走了,然后看T2,这题我觉得和之前做过的一道题比较像,因为我觉得\( ...

  3. MyBatis的多表查询笔记

    MyBatis的多表查询 随着学习的进步,需求的提高,我们在实际开发中用的最多的还是多表查询,就让我们一起学习MyBatis中的多表查询. 数据库准备 Class表 Student表 项目结构 这次使 ...

  4. Lambda表达式——注重过程的编程思想

    一.使用匿名内部类的匿名对象创建线程和Lambda表达式写法 Lambda表达式写法不用去定义一个Runable接口的实现类: 二.方法入参是一个接口或者接口的实现类 三.对某个类的一些对象实例进行排 ...

  5. 下载excel(接收文件流)

    /**  * 文件流转换 主要代码块,可自定义下载文件名称  * @param {} data  */ export function download(data, titName) {   if ( ...

  6. Elasticsearch(ES)分词器的那些事儿

    1. 概述 分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引. 今天我们就来聊聊分词器的相关知识. 2. 内置 ...

  7. TP5 数据保存、更新问题(save、saveAll)

    一.今天写项目的时候,突然发现一个坑爹的问题,使用saveAll新增多条数据,但是一直提示缺少更新条件,然而我发现代码里面并没有更新,而且saveAll我仅仅是去新增多条数据而已 原来源码 模型类中有 ...

  8. [手机编程]Aid Learning--换源+数据库安装

    换源+MYSQL安装 Aid Learning下载安装 http://www.aidlearning.net/ 切换源 打开Terminal复制回车即可 cd /etc/apt/&& ...

  9. find_elements与find_element的区别

    find_element不能使用len,find_elements可以使用len获取元素数量,判断页面有无某个元素,这个方法可以用来断言. 如添加用户后,判断是否添加成功. 删除用户后,判断是否删除成 ...

  10. python学习笔记(十四)python实现发邮件

    import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart u ...