一、mybatis的概述:

    mybatis是一个持久层框架,用java编写

    它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接登繁杂过程

    它使用了ORM思想实现了结果集的封装

    ORM:

        Object  Relational  Mappging 对象关系映射

        简单来说:

            就是把数据库表和实体类及实体类的属性对应起来

            让我们可以操作实体类就实现操作数据库表

二、mybatis的环境搭建

第一步:创建maven工程并导入坐标

  1. <packaging>jar</packaging>
  2.  
  3. <dependencies>
  4. <dependency>
  5. <groupId>org.mybatis</groupId>
  6. <artifactId>mybatis</artifactId>
  7. <version>3.4.5</version>
  8. </dependency>
  9. <dependency>
  10. <groupId>mysql</groupId>
  11. <artifactId>mysql-connector-java</artifactId>
  12. <version>5.1.6</version>
  13. </dependency>
  14. <dependency>
  15. <groupId>log4j</groupId>
  16. <artifactId>log4j</artifactId>
  17. <version>1.2.12</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>junit</groupId>
  21. <artifactId>junit</artifactId>
  22. <version>4.10</version>
  23. </dependency>
  24. </dependencies>

第二步:创建实体类和dao的接口

第三步:创建Mybatis的主配置文件:SqlMapConifg.xml

  1. 在resources目录下创建SqlMapConifg.xml

  2. 导入Config的约束:

  

  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">

  3. 写入配置文件

  

  1. <!--mybatis的主配置文件-->
  2. <configuration>
  3. <!--配置环境-->
  4. <environments default="mysql">
  5. <!--配置mysql的环境-->
  6. <environment id="mysql">
  7. <!--配置事务的类型-->
  8. <transactionManager type="JDBC"></transactionManager>
  9. <!--配置数据源,也叫连接池-->
  10. <dataSource type="POOLED">
  11. <!--配置连接数据库的4个基本信息-->
  12. <property name="driver" value="com.mysql.jdbc.Driver"/>
  13. <property name="url" value="jdbc:mysql://localhost:3307/test"/>
  14. <property name="username" value="root"/>
  15. <property name="password" value="flypig"/>
  16. </dataSource>
  17. </environment>
  18. </environments>
  19.  
  20. <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
  21. <mappers>
  22. <mapper resource="cn/flypig666/dao/IUserDao.xml"></mapper>
  23. </mappers>
  24. </configuration>

第四步:创建映射配置文件:IUserDao.xml

  例如:resoures目录下cn/flypig666/dao/IUserDao.xml

  1. 导入Mapper的约束

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

  2. 写入配置: resultType为返回的封装数据类型,将数据封装为User对象,存在list中

  1. <mapper namespace="cn.flypig666.dao.IUserDao">
  2. <!--配置查询所有-->
  3. <select id="findAll" resultType="cn.flypig666.domian.User">
  4. select * from user
  5. </select>
  6.  
  7. </mapper>

三、环境搭建的注意事项

  1. 创建IUserDao.xml和IUserDao.java时名称是为了和之间的知识保持一致

    在Mybatis中它把持久层的操作接口名称和映射文件也叫:Mapper

    所以:IUserDao和IUserMapper是一样的

  2. 在idea中创建目录的时候,它和包是不一样的

    包在创建时:cn.flypig666.dao是三层结构

    目录在创建时:cn.flypig666.dao是一级目录

  3. mybatis的映射配置文件位置必须和dao接口的包结构相同

  4. 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名

  5. 映射配置文件的操作配置(select、update),id属性的取值必须是dao接口的方法名

  当我们遵从了3、4、5点之后,我们在开发中就无需再写dao的实现类

四、入门案例

  第一步:读取配置文件

  第二步:创建SqlSessionFactory工厂

  第三步:创建SqlSession

  第四步:创建Dao接口的代理对象

  第五步:执行dao中的方法

  第六步:释放资源

  注意事项:  

      不要忘记在映射配置中告知mybatis要封装到哪个实体类

      配置的方式:指定实体类的全限定类名

  1. public class MybtisTest {
  2.  
  3. //入门案例
  4.  
  5. public static void main(String[] args) throws IOException {
  6. //1. 读取配置文件
  7. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  8. //2. 创建SqlSessionFactory工厂
  9. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
  10. SqlSessionFactory factory = builder.build(in);
  11. //3. 使用工厂生产SqlSession对象
  12. SqlSession session = factory.openSession();
  13. //4. 使用SqlSession创建Dao接口的代理对象
  14. IUserDao userDao = session.getMapper(IUserDao.class);
  15. //5. 使用代理对象执行方法
  16. List<User> users = userDao.findAll();
  17. for (User user : users) {
  18. System.out.println(user);
  19. }
  20. //6. 释放资源
  21. session.close();
  22. in.close();
  23. }
  24. }

mybatis学习:mybatis的环境搭建与入门的更多相关文章

  1. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

  2. MyBatis学习总结(一)简单入门案例

    MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...

  3. MyBatis实例教程--开发环境搭建

    MyBatis实例教程--开发环境搭建 准备工作: 1.mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包 ...

  4. Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通

    原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...

  5. 一、Android学习第一天——环境搭建(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...

  6. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

  7. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  8. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  9. (十八)整合Nacos组件,环境搭建和入门案例详解

    整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...

  10. 【golang学习记录】环境搭建

    [golang学习记录]环境搭建 一. 概述 本文是[golang学习记录]系列文章的第一篇,安装Go语言及搭建Go语言开发环境,接下来将详细记录自己学习 go 语言的过程,一方面是为了巩固自己学到的 ...

随机推荐

  1. Visual Studio 2019安装教程

    一.下载 网址:https://visualstudio.microsoft.com/zh-hans/vs/ 下载后是一个.exe文件 二.安装 双击打开下载的.exe文件,进入文件的提取 提取完成后 ...

  2. python全栈开发:字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 %[(name ...

  3. C++构造与析构函数中调用虚函数的问题

    前些天想把以前写的内存池算法重写一遍,跨平台是第一目标,当时突发奇想,因为不愿意做成一大堆#if..#end,所以想利用C++的多态性,但是怎么让内存池完好退出却没想到自认为完美的方案.但是一个很偶然 ...

  4. Ionic3 demo TallyBook 实例2

    1.添加插件 2.相关页面 消费页面: <ion-header> <ion-navbar> <ion-title> 消费记录 </ion-title> ...

  5. VC操作Excel之基本操作(颜色等)【转载】

    文章出处https://blog.csdn.net/form88/article/details/78566390 EXCEL里如何知道某种颜色的ColorIndex的值 ===fag::====== ...

  6. zabbix自动发现主机(转)

    zabbix自动发现主机 2018年06月15日 18:02:52 loyal-Wang 阅读数:817更多 个人分类: zabbix   版权声明:本文为博主原创文章,转载请注明出处. https: ...

  7. Windows Server 2008 R2 部署服务

    Windows Server 2008 R2 部署服务 部分参考: Windows Server 2008 R2 部署服务 - 马睿的技术博客 - 51CTO技术博客http://marui.blog ...

  8. nginx源码分析——数组

    ngx_array.h /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_ARRAY_H_INCLU ...

  9. JS基础语法之DOM02(事件)

    1.常用事件 1.onclick 单击 应用场景:为按钮绑定 2.ondbclick 双击 3.onfocus   获得焦点 4.onblur 失去焦点 应用场景:用于表单验证,用户离开某个输入框时, ...

  10. python3-常用模块之re

    正则表达式 定义: 正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 是一种独立的规 ...