首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringMVC + Mybatis bug调试 SQL正确,查数据库却返回NULL

SpringMVC + Mybatis的一个项目,mapper文件里写了一条sql 大概相当于 select a from tableA where b = "123" 这样的级别 然后不管传进去的是什么 数据库里有没有...都会返回null ---- 第一反应是sql语句写错了,比如把1和小写L弄混了之类的,传给sql的参数里有奇怪的空格等等 于是打开debug log 拿到传给sql的preparedStatement...和对应的参数 复制到console里自己查了一下,可以执行,返回结果也正确,说明不是sql的问题 ---- 既然不是sql的问题,那只好调试一下代码了 既然preparedStatement sql能够被打印出来...)throw new IllegalArgumentException("null input: cls"); URL result = null; final String...= null ?

1.4K70

ExecuteNonQuery()的用法

ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加、删除、修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar...ExecuteScalar();先增加一条记录,返回未实列化的对象 MyConnection.Close(); } 2、 删除现有数据 private void Page_Load...ExecuteScalar();先删除n条记录,返回未实列化的对象 MyConnection.Close(); } 3、 修改现有数据 private void Page_Load...(),ExecuteReader方法的区别: 1、ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是 SQL=”...如果(如果SQL不是查询Select)那么 返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF) 四、总结: ASP.Net中对于数据库的操作方法很多

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ADO数据库C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter

    int 类型的变量,返回数据库操作之后影响的行数。...适合用来验证对数据库进行增删改的情况。 2、ExecuteScalar()也可以执行sql语句。如果SQL语句是Select查询,则仅仅返回查询结果集中第一行第一列,而忽略其他行和列。...(建议查询数据库时使用)  由于不知道sql语句到底是什么样的结构(有可能是int,有可能是Char等其它,)所以ExecuteScalar()方法返回一个最基本的类型Object,这个类型是所有类型的基类...()也返回一个int型变量。...(建议查询数据库时使用)  由于不知道sql语句到底是什么样的结构(有可能是int,有可能是Char等其它,)所以ExecuteScalar()方法返回一个最基本的类型Object,这个类型是所有类型的基类

    86730

    ExecuteScalar

    大家好,又见面了,我是全栈君 ExecuteScalar运行查询,并返回查询所返回的结果集中第一行的第一列或空引用(假设结果集为空).忽略其它列或行....使用 ExecuteScalar 方法从数据库中检索单个值。...COUNT() [说明]:我们平时Select 时候可能会碰上这样的情况,即所求的数据集为空或不存在两种情况 数据集为空即值为NULL, 可是它的行数为1 代码不加以推断的话会出现“指定的转换无效”的...MessageBox.Show(“Result Is Null 数据集的行数为一”); 数据集不存在即行数为零 直接使用 Int32 count = (Int32) cmd.ExecuteScalar...() 会出现“未将对象引用设置到 对象的实例”的ERROR 解决方式–> object obj = comm.ExecuteScalar(); if (obj == null ) MessageBox.Show

    35910

    ado.net的简单数据库操作(二)之封装SqlHelperl类

    从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串、创建数据库连接对象、打开数据库连接、定义sql语句、实例化操作数据库操作对象...上面两个参数是肯定得有的,另外还有一个东西,它不是需要我们传进去的参数,而是一个需要我们进行配置的值,那就是数据库连接字符串conStr,在我的第一篇博客里也提到了这个东西的配置,这是方便我们更改连接的数据库而设定的一个参数...记得我们前面说过,这个方法返回的对象 reader它不是一个装东西的仓库,它只是一个纽带,那么我们返回这个东西后,我们还要用这个东西来从数据库取值,但是如果用using的话,那默认就是using结束后就把数据库关掉了...,这个时候,数据库已经关掉了,我们即使得到了返回的这个reader,也没法用它来取值了,就相当于返回的reader对我们并无卵用了。...关于SqlHelper的封装,我就说到这里啦,文中有些地方我写的时候也不是很懂,但是写完了就懂了。

    78320

    asp.net 建多个项目实现三层的实例——读取一张表中的记录条数

    第二步:所要完成的功能的说明: 在这里我要完成的功能其实非常非常的简单,就是查询一张表,看里面有多少条数据,然后返回数据的条数,大致是这样的,我们有一个窗体窗体上有个按键,点击这个按键(查看XXX表中的数据条数...),弹出窗口,显示:XXX表中有XX条数据。...第三步:三层实现流程介绍 1.确定sql语句 为了保证数据库操作语句不出错误,我先在数据库中新建查询,看能不能查到我要的结果,我用的数据库是sqlserver,数据库管理软件是微软的 MSMS,查询结果如图所示...如图所示可以看到,用该语句查询出的结果是表中有54条数据,下面我看一下是否有误: ?...,也没写要连那个数据库,更没写是那个用户登录的,登录密码是啥?

    1.2K20

    ado.net的简单数据库操作(一)

    第一部分:连接数据库  1.先说一下连接数据库的基本步骤哈: (1)创建连接字符串: 创建连接字符串有两种方法,分别适用于登录数据库的不同方式,我这里说的是我用的sqlserver数据库哈,其他的数据库应该也差不多吧...(2)ExecuteScalar();这个书上是这么写的 ==》返回的是一个 对象(object)类型,返回结果集中的 第一行第一列 的值,什么意思?...而用ExecuteScalar()返回到的就是这个areaId.这么讲应该就懂了吧。...下面具体说一下这个程序里几个点: (1)reader.HasRows:这个方法的功能就是先看看数据库中有没有查询到你需要的数据,有就返回true,没有就返回false; (2)reader.Read()...NULL" : reader.GetString(2)); 先判断是否为null,如果为null,则输出NULL,如果不为null,则输出存在的那个值,我修改了刚才的表,是其中有几个值为空,然后分别看看查询的结果

    79851

    Windows中使用MySql.Data库将C# 接到 MySQL

    创建数据库 现在让我们创建数据库以及稍后将从应用程序中查询的表。...创建类 创建一个新类来连接数据库并将实际代码与访问数据库的代码分开始终是一个更好的主意。这将有助于保持我们的代码整洁、更易于阅读且更高效。...ExecuteReader:用于执行将返回0个或更多记录的命令,例如Select。 ExecuteScalar:用于执行仅返回 1 个值的命令,例如 Select Count(*)。...,例如如果我们想要计算记录数,我们一直在使用 Select Count(*) from tableinfo;,在这种情况下,我们将不得不使用 ExecuteScalar 方法将返回一个值。...成功运行并ExecuteScalar的流程如下: 打开与数据库的连接。 创建 MySQL 命令。 为命令分配连接和查询。

    35200

    c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)

    1.使用ExecuteReader()操作数据库 2.使用ExecuteNonQuery()操作数据库 3.使用ExecuteScalar()操作数据库 4.使用DataSet数据集插入记录,更新数据...二、使用ExecuteNonQuery(),ExecuteScalar()操作数据库,执行增删改操作的利器 ExecuteNonQuery()通常情况下为数据库事务处理的首选,当需要执行插入,删除,修改等操作时...,返回值是-1,ExecuteNonQuery()操作数据时,可以不使用DataSet直接更改数据库中的数据。...ExecuteScalar()方法也可以用来执行SQL语句,但是executescalar()执行SQL语句后返回值与ExecuteNonQuery()并不相同,executescalar()方法的返回值的数据类型是...三、使用DataSet数据集插入记录,更新数据 使用insert语句能够完成数据,使用dataset对象也可以完成数据插入。

    89730

    深入浅出三层架构

    2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。...public int Age { get; set; } public string Name { get; set; } } } SQLHelper类,封装了数据库操作的方法...() 返回第一行第一列数据 /// /// 要执行的sql语句 ///...return model1; } else//以防意外情况 { throw new Exception("数据库中有两条及以上重复数据...如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。   2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。

    1.2K50
    领券