zoukankan      html  css  js  c++  java
  • 10mybatis简介

    MyBatis简介

    原始jdbc操作复杂(注册驱动、获得连接、获得执行对象、增删改查、释放资源),存在问题:

    • 数据库创建连接、释放连接频繁;
    • sql语句变化多样;
    • 查询操作时,需要手动将结果集中的数据封装到实体中。

    解决方案:

    • 使用数据库连接池;
    • 将sql语句抽取到xml配置文件中;
    • 使用发射、内省等底层技术,自动将实体与表进行属性与字段的自动映射。

    mybatis:

    1. 是一个基于java的持久层框架(DAO层框架),内部封装了jdbc,使开发者只需要关注与sql语句本身;
    2. 通过xml或注解方式配置各种statement;
    3. 采用ORM思想解决了实体和数据库映射的问题。

    快速入门

    步骤:

    1. 添加MyBatis坐标
    2. 创建数据表
    3. 创建实体类
    4. 编写映射文件UserMapper.xml(sql代码)
    5. 编写核心文件SqlMapConfig.xml
    6. 测试

    模块结构:

    module
    	src
    		main
    			java
    				com.domain
    					User.java
    			resources
    				SqlMapConfig.xml (配置文件)
    				UserMapper.xml (配置文件)
    		test
    			java
    				UserMapperTest.java (测试文件)
    

    代码:

    1. 添加MyBatis坐标

      <!--    连接数据库驱动-->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.6</version>
        </dependency>
      <!--    mybatis-->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.5</version>
        </dependency>
      
    2. 创建数据表

      CREATE TABLE USER(
      id INT PRIMARY KEY AUTO_INCREMENT,
      username VARCHAR(20),
      PASSWORD VARCHAR(20)
      );
      
    3. 创建实体类

      和数据表一致,并且有Getter/Setter/toString方法
      
    4. 编写映射文件userMapper.xml(复制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="userMapper">
          <select id="findAll" resultType="com.domain.User">
              select * from user
          </select>
      </mapper>
      
    5. 编写核心文件sqlMapConfig.xml(复制xml约束头)

      <?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>
      <!--    数据源环境-->
          <environments default="developement">
              <environment id="developement">
                  <transactionManager type="JDBC"></transactionManager>
                  <dataSource type="POOLED">
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql://localhost:3306/db1"/>
                      <property name="username" value="root"/>
                      <property name="password" value="root"/>
                  </dataSource>
              </environment>
          </environments>
      <!--    加载映射文件-->
          <mappers>
              <mapper resource="UserMapper.xml"/>
          </mappers>
      </configuration>
      
    6. 测试

      public class MyBatisTest {
      
          @Test
          public void test1() throws IOException {
              //  获取核心配置文件
              InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
              // 获取session工厂对象
              SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
              // 获得session会话对象
              SqlSession sqlSession = sqlSessionFactory.openSession();
              // 执行操作(参数就是配置文件中的id)
              List<User> userList = sqlSession.selectList("userMapper.findAll");
              System.out.println(userList);
              // 释放资源
              sqlSession.close();
          }
      }
      
  • 相关阅读:
    2017暑期集训Day 1
    17-06-28模拟赛
    17-06-26模拟赛
    平衡树学习笔记
    指针学习笔记
    17-06-14模拟赛
    17-06-11模拟赛
    17-06-02模拟赛
    17-05-31模拟赛
    培训补坑(day1:最短路&two-sat)
  • 原文地址:https://www.cnblogs.com/mingriyingying/p/13639553.html
Copyright © 2011-2022 走看看