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

                

  • 相关阅读:
    超市管理系统第四篇
    团队作业2《需求说明》
    个人项目-Wc-Java
    【翻译】MVC Music Store 教程-概述(三)
    【翻译】MVC Music Store 教程-概述(二)
    【翻译】MVC Music Store 教程-概述(一)
    UWP ListView嵌套ListView
    UWP 双向绑定,在ListView中有个TextBox,怎么获取Text的值
    UWP 发送短信公用倒计时按钮
    UWP 使用Windows.Web.Http命名空间下的HttpClient使用post方法,上传图片服务器
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/10743847.html
Copyright © 2011-2022 走看看