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

                

  • 相关阅读:
    重写NSLog,Debug模式下打印日志和当前行数
    iOS 对UIButton的imageView和titleLabel进行重新布局
    iOS 归档
    SWIFT 通过字符串创建相关的类
    iOS 隐藏系统的导航,使用自定义的导航
    SWIFT UITableView的基本用法
    Bugly符号化iOS 崩溃,操作手册及快速定位crash(上传符号表)
    iOS navigationBar与tabBar的translucent
    swift
    xcode更换启动图显示空白launchImg
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/10743847.html
Copyright © 2020-2023  润新知