• mybatis 执行流程以及初用错误总结


    mappper 配置文件  头文件:

         1.   <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">  之前三者写的不一致,有什么config的导致,错误     

      2.  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">, 之前文件中有这个部分,配置文件中

      namespace 一直在报错,然后查询资料显示:在没有网络的时候需要将上面红色字体删掉就解决,但不知道到底是为什么?

    mybatis 执行流程: 

      public static void main(String[] args){
      //读取配置文件
      System.out.println("hello");
      String resource = "mybatis_config.xml";
      InputStream inputstream;
      try {
      inputstream = Resources.getResourceAsStream(resource);
      //根据配置文件构建sqlsessionfactory
      SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(inputstream);
      //sqlsessionfactory 构建 sqlsession
      SqlSession sqlsession = sqlsessionfactory.openSession();
      //查询数据,返回结果
      car result = sqlsession.selectOne("config.mapperRequest.findCarById", 1);
      result.show();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      }

    在执行上面红色语句的时候报错,原因是绿色字体写错,selectOneO 方法 的第 一个参数表示映射 SQL 的标识字符串,它由 CustomerMapper .x ml <mapper> 元素的namespace 属性值+<select> 元素的 id 属性值组成;第 个参数表示查询所需要的参数,

    mybatis 基本执行过程:

      public class mybatis_test {
      @Test
      public static void main(String[] args){
      //读取配置文件
      String resource = "mybatis_config.xml";
      InputStream inputstream;
      try {
      inputstream = Resources.getResourceAsStream(resource);
      //根据配置文件构建sqlsessionfactory
      SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(inputstream);
      //sqlsessionfactory 构建 sqlsession
      SqlSession sqlsession = sqlsessionfactory.openSession();
      //查询数据,返回结果
      int row = sqlsession.delete("config.mapperRequest.deleteCar", 7);
      if(row > 0) {
      System.out.println("删除用户成功");
      }

      //上面执行的操作必须在提交sqlsession提交之后才有效
      sqlsession.commit();
      sqlsession.close();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      }
      }

    执行完sqlsession 之后必须之前 commit close ,否则数据库的执行动作其实都是没有执行的,就像是回滚了

                

  • 相关阅读:
    设计模式概述
    Android之.9.png图片的制作与使用
    2015-4-3~2015-5-28 第四届全国大学生软件设计大赛《解密陌生人》项目总结
    排序算法之快速排序
    AsyncTask那些事(更新中...)
    经典Android面试题
    import第三方库的头文件找不到的错误
    点击某个按钮在tableView某个位置动态插入一行cell
    NSUserDefaults:熟悉与陌生(转)
    更改UIsearchbar 的背景和cancel按钮(转)
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/10743847.html
Copyright © 2020-2023  润新知