zoukankan      html  css  js  c++  java
  • mybatis学习:mybatis的环境搭建与入门

    一、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的约束:

      

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

      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的约束

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

      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 }
  • 相关阅读:
    基础网络技术--学习网络的的道路漫长啊
    华为nova8se和vivoS7e的区别哪个好
    Java.awt实现一个简单的围棋
    HashMap put原理详解(基于jdk1.8)
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    【u116】最短路计数
    【u108】取数游戏
    【u106】3D模型
    【topcoder SRM 652 DIV2 250】ValueOfString
    【u103】绘制二叉树
  • 原文地址:https://www.cnblogs.com/flypig666/p/11483165.html
Copyright © 2011-2022 走看看