zoukankan      html  css  js  c++  java
  • MyBatis 学习总结(1)

      MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的处理,通过XML(sqlMapConfig)或注解配置数据源和原始映射,MyBatis通过SqlSession连接和操作数据源

    SqlSession的获得

      1、获取数据源

        String resource = "sqlMapConfig.xml" //sqlMapConfig.xml是Mybatis的核心文件,可以配置数据源 和 映射的Mapper.xml文件的地址

        InputStream inputStream = Resources.getResourceAsStream(ressource); //通过数据源获取输入流

      2、获取SqlSession

        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuild().Bulid(inputStream);

        SqlSession sqlSession = sqlSessionFactory.openSession();

    操作数据

      sqlSession.select("namespace.id",[参数])

      sqlSession.selectList("namespace.id",[]);

      sqlSession.insert("namespace.id", [参数]); sqlSession.commit();//默认是不自动提交,必须手工提交;不提交,不会得到更新

      sqlSession.update("namespace.id", [参数]); sqlSession.commit();//同上

      sqlSession.delete("namespace.id", [参数]); sqlSession.commit();//同上

    映射文件 Mapper.xml 的总结:

    ① 设置 namespace 命名空间,目的是为了区分映射文件中的方法;

    ② 结果集 resultMap 是 MyBatis 最大的特色,对象的 ORM 就由其来转换:

    • 在结果集中,包括主键 id 和 普通属性 result;
    • 在结果集中,常用的两个属性分别为:property,表示实体的属性;column,表示 SQL 查询的结果集的列。

    ③ 在映射文件中,常用的标签有四个,分别为: select、insert、update 和 delete:

    • 每个标签中都有 id 属性,在同一个 mapper 文件中 id 不允许重复;
    • 参数 parameterMap 已经被废弃,现在其存在的目的就是为了兼容前期的项目;现在用Map或者包装值对象来设置复杂参数
    • 参数 parameterType 支持很多的类型,例如 int、Integer、String、Double、List、Map 或者实体对象等;
    • 返回值 resultType 用于简单的类型;
    • 返回值 resultMap 用于复杂的类型;
    • 当参数和返回值是集合的时候,其声明的是集合中的元素类型;
    • SQL 语句不区分大小写,它默认使用 PrepareStatement,预编译,可以防止 SQL 注入。

    赋别名

    在 Mapper.xml 文件中可以简写调用别名,例如:

    <insert id="insert" parameterType="Person"><!-- 赋别名 -->
    当然,提前需要我们在 sqlMapConfig.xml 中先定义别名,在这里,特别需要注意标签的顺序,如果标签的顺序出错,程序就会报错: 
    <typeAliases>
            <typeAlias type="yeepay.payplus.Person" alias="Person"/>
    </typeAliases>
  • 相关阅读:
    二叉树的遍历
    数据结构
    POJ 2054 Color a Tree (贪心)
    $2019$ 暑期刷题记录 $2$(基本算法专题)
    POJ 3889 Fractal Streets(逼近模拟)
    POJ 2018 Best Cow Fences (二分答案构造新权值 or 斜率优化)
    CH5E26 扑克牌 (计数类DP)
    BZOJ 1911 特别行动队 (斜率优化)
    BZOJ 1233 干草堆 (单调队列优化DP)
    POJ 1038 Bugs Integrated Inc (复杂的状压DP)
  • 原文地址:https://www.cnblogs.com/lhblogs/p/7473971.html
Copyright © 2011-2022 走看看