zoukankan      html  css  js  c++  java
  • mybatis学习笔记之基础框架(2)

    mybatis学习笔记之基础框架(2)
    mybatis是一个持久层的框架,是apache下的顶级项目。
    mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句
    mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)
    SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定)
    配置了数据源/事务等mybatis运行环境
    配置映射文件(配置sql语句)
    mapper.xml(映射文件)/mapper.xml/mapper.xml
    SqlSessionFactory(会话工厂)
    作用:创建SqlSesion
    SqlSession(会话,是一个接口,面向用户程序员的接口)
    作用:操作数据库(发出sql增删改查)
    Executor(执行器,是一个接口(基本执行器/缓存执行器))
    作用:SqlSes内部通过执行器操作数据库

    mapped statement (底层封装对象)
    作用:对操作数据库存储封装,包括sql语句。输入参数/输出结果类型
    输入参数类型 java简单类型 hashmap pojo自定义
    输出参数类型 java简单类型 hashmap pojo自定义 
    

    3.入门程序:

    需求:根据用户id(key)查询用户信息
    根据用户名称模糊查询用户信息
    添加用户
    删除用户
    更新用户

    mybatis运行环境(jar包)
    lib下的依赖包:核心包
    mybatis-3.3.0.jar:操作指南
    加入mysql的驱动包
    3.0创建po类

    3.1映射文件
    映射文件命名:
    User.xml(原始ibatis命名),mapper代理开发映射文件名称叫xxxMapper.xml,比如:UserMapper.xml/ItemsMapper.xml
    在映射文件中配置sql语句。

    3.2在sqlMapConfig.xml映射文件
    在sqlMapConfig.xml中加载user.xml

    3.3添加用户

    4.0程序的编写小结
    3.3.1parameterType 在映射文件中通过parameterType指定输入参数类型。
    3.3.2resultType 在映射文件中通过resultType指定输出结果的类型。
    3.3.3 #{}和${} #{}表示一个占位符。${}表示一个拼接符号,但会引起sql注入,不建议使用。
    3.3.4SelectOne和selectList
    selectOne表示查询一条记录进行映射。如果使用selectOne可以实现那么也可以使用selectList实现。
    selectList 表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录不可用selectOne代替。

    1. 动态sql
      mybatis核心对sql语句进行灵活操作,同伙表达式进行判断,对sql进行灵活拼接、组装。

      5.1用户信息中和查询列表和用户信息查询列表总数这两个stat的定义使用动态sql。
      对查询条件进行判断,如果输入条件不为空,才进行拼接。

    <!-- where-->
        <where>
        <if test ="username"
    5.2sql片段
    
    5.3foreach
        向sql传递数组或List,mybatis使用foreach解析。
    5.3.1需求
        SELECT * FROM USER WHERE id=1 OR id=2 OR id=3
        或者
        SELECT * FROM USER WHERE id IN(1,2,3)
    
    5.3.2实现
    在输入参数类型中添加`List<Integer>ids` 传入多个参数。
    
  • 相关阅读:
    Python基础:文件的基本操作
    Python基础:函数的介绍及应用
    Python基础:列表,元组和字典的基本操作
    Python基础:字符串的常见操作
    Python基础:Python数据类型及逻辑判断语句
    Apache Hive (七)Hive的DDL操作
    Apache Hive (六)Hive SQL之数据类型和存储格式
    Apache Hive (五)DbVisualizer配置连接hive
    网络通信
    HashMap与Hashtable的区别
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468034.html
Copyright © 2011-2022 走看看