• Java高级框架——Mybatis(二)


    十.三种查询方式

    1. selectList()返回值为List<resultType属性控制>

      1.1 适用于查询结果都需要遍历的需求

    List<Flower> list = session.selectList("a.b.selAll");
    for(Flower flower : list)
    {
    System.out.println(flower.toString());
     
    }

     

    2. selectOne()返回值Object

      2.1 适用于返回结果只是一个变量或一行数据值

        int count = session.selectOne("a.b.selById");

        System.out.println(count);

    3. selectMap() 返回值Map

      3.1 适用于需要在查询结果中快速通过某列的值取到这行数据的需求

        Map<Object , Object> map = session.selectMap("a.b.c" , "name123");

        System.out.println(map);

      3.2 Map<key,resultType控制>

    十一. 路径

    1. 编写路径为了告诉编译器如何找到其他资源.

    2. 路径分类

      2.1 相对路径: 从当前资源出发找到其他资源的过程

      2.2 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程

        2.2.1 标志: 只要以/开头的都是绝对路径

    3. 绝对路径:

      3.1 如果是请求转发 / 表示项目根目录(WebContent)

      3.2 其他重定向,<img/> <script/>,<style/>,location.href /都表示服务器根目录(tomcat/webapps 文件夹)

    4. 如果客户端请求的控制器,控制器转发到JSP,jsp中如果使用相对

    路径,需要按照控制器的路径去找其他资源. 4.1 保险办法:使用绝对路径,可以防止上面的问题

    十二.MyBatis 实现新增

    1. 概念

      1.1 功能:从应用程序角度出发,软件具有哪些功能.

      1.2 业务:完成功能时的逻辑.对应 Service 中一个方法

      1.3 事务:从数据库角度出发,完成业务时需要执行的 SQL 集合,称一个事务.

        1.3.1 事务回滚.如果在一个事务中某个 SQL 执行事务,希望回归到事务的原点,保证数据库数据的完整性.

    2. mybatis 中默认是关闭了 JDBC 的自动提交功能

      2.1 每一个 SqlSession 默认都是不自动提交事务.

      2.2 session.commit()提交事务.

      2.3 openSession(true);自动提交.setAutoCommit(true);

    3. mybatis 底层是对 JDBC 的封装.

      3.1 JDBC executeUpdate()执行新增,删除,修改的 SQL.返回值 int, 表示受影响的行数.

       3.2 mybatis <insert> <delete> <update>标签没有 resultType 属性, 认为返回值都是 int

    4. openSession()Mybatis 会创建 SqlSession 时同时创建一个

    Transaction(事务对象),同时 autoCommit 都为 false

      4.1 如果出现异常,应该 session.rollback()回滚事务.

    5. 实现新增的步骤

      5.1 mapper.xml 中提供<insert>标签,标签没有返回值类型

        

    <insert id="ins" parameterType="People">
        insert into people values(default,#{name},#{age})
    </insert>

     

      5.2 通过 session.insert()调用新增方法

    int index1 = session.insert("a.b.ins", p);
    if(index1>0){
    System.out.println("成功");
    }else{
    System.out.println("失败");
    }

     

  • 相关阅读:
    05月27日总结
    05月18日总结
    05月24日总结
    05月21日总结
    05月25日总结
    05月20日总结
    GCC的使用
    wsl2使用
    常见Hash算法位数
    记一次网络漏洞扫描任务——Red Hat部署Nikto
  • 原文地址:https://www.cnblogs.com/lwcwj/p/10523442.html
Copyright © 2020-2023  润新知