zoukankan      html  css  js  c++  java
  • 一、Mybatis基本入门

    1. 原始JDBC存在如下问题:

      ① 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能
      ② sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。
      ③ 查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置
    上述问题给出的解决方案:

      ① 使用数据库连接池初始化连接资源
      ② 将sql语句抽取到xml配置文件中
      ③ 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

    2. Mybatis开发步骤:

      ①添加mybatis坐标依赖

      ②创建实体类及对应表

      ③编写映射文件xxxMapper.xml

      ④配置核心文件SqlMapConfig.xml

     1 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN“ "http://mybatis.org/dtd/mybatis-3-config.dtd">
     2 <configuration>
     3     <environments default="development">
     4         <environment id="development">
     5             <transactionManagertype="JDBC"/>
     6             <dataSourcetype="POOLED">
     7                 <property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///test"/>
     8                 <property name="username" value="root"/><property name="password" value="root"/>
     9             </dataSource>
    10         </environment>
    11     </environments>
    12     <mappers> <mapper resource="com/itheima/mapper/UserMapper.xml"/> </mappers>
    13 </configuration>

    测试代码:

     1 // 加载核心配置文件
     2 InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
     3 // 获得 sqlSession 工厂对象
     4 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
     5 // 获得 sqlSession 对象
     6 SqlSession sqlSession = sqlSessionFactory.openSession();
     7 // 执行 sql 语句
     8 List<User> userList = sqlSession.selectList("userMapper.findAll");
     9 // 打印结果
    10 System.out.println(userList);
    11 // 释放资源
    12 sqlSession.close();

    3. mybatis映射文件概述:

    4. Mybatis的增删改查操作:

    • 使用insert,delete,update,select标签
    • parameterType属性指定要插入的数据类型
    • SQL语句中使用#{实体属性名}方式引用实体的属性值
    • 插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象)
    • 操作涉及数据库数据变化,要使用sqlSession对象显示的提交事务,即sqlSession.commit()

    #{实体属性名}方式引用实体的属性值同样也用在update,delete

    例如:update user set username=#{username},password=#{password} where id=#{id}

  • 相关阅读:
    ISO/IEC 9899:2011 条款5——5.2.2 字符显示语义
    ISO/IEC 9899:2011 条款5——5.2.1 字符集
    ISO/IEC 9899:2011 条款5——5.2 环境上的考虑
    nVidia GPGPU vs AMD Radeon HD Graphics执行模式对比
    ISO/IEC 9899:2011 条款5——5.1.2 执行环境
    ISO/IEC 9899:2011 条款5——5.1.1 翻译环境
    ISO/IEC 9899:2011 条款5——5.1 概念模型
    ISO/IEC 9899:2011 条款5——环境
    ISO/IEC 9899:2011 条款4——标准顺从
    php利用phpexcel导出数据
  • 原文地址:https://www.cnblogs.com/elian91/p/15355946.html
Copyright © 2011-2022 走看看