zoukankan      html  css  js  c++  java
  • 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 ,否则数据库的执行动作其实都是没有执行的,就像是回滚了

                

  • 相关阅读:
    Power of Cryptography
    Radar Installation
    Emag eht htiw Em Pleh
    Help Me with the Game
    89. Gray Code
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/10743847.html
Copyright © 2011-2022 走看看