【Mybatis】Sql返回count()数量的处理

【Mybatis】Sql返回count(*)数量的处理

如果把SQL写在类中或是注解中,当要取select count(*) .... 类型SQL的返回值,直接指定函数的返回类型为int/long即可;

但对于把sql语句写在XML文件的情况,如果要取select count(*) .... 的返回值,必须要指明结果类型resultType="java.lang.Integer,否则程序报错。

Mapper类中函数:

int getMyNameCount(@Param("uid") long createrId,@Param("name") String name);

XML文件:

<select id="getMyNameCount" resultType="java.lang.Integer">
	select count(*) 
	from user
	where name=#{name} and create_uid=#{uid}
</select>

END

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现据的增删改查 mybatis实战教程mybatis in action之四实现关联据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程. 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录. 3. 创建mysql 测试据库和用户表,注意,这里采用的是 utf-8 编码 创建用户表,并插入一条测试据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'
### 回答1: 当MyBatiscount语句返回null时,可能是由于以下几个原因引起的: 1. 据库查询没有匹配到任何记录。如果count语句中的条件不满足据库中的任何记录,那么count语句返回null是正常的。 2. SQL语句错误。请检查SQL语句中是否存在语法错误或逻辑错误。可以使用据库客户端工具执行相同的SQL语句,看是否能够正常返回结果。 3. MyBatis配置有误。请检查MyBatis的配置文件,确保据库连接信息正确,并且mapper文件中的count语句与据库表结构相匹配。 4. 据库连接问题。请确认据库连接是否正常,可以通过测试连接据库的方式来验证。 如果以上原因都排除,仍然返回null,可以尝试使用其他方式进行统计,例如使用MyBatis的select语句进行count统计,或者使用Java代码对查询结果进行判断处理。另外,可以尝试使用debug模式进行调试,查看具体的执行过程,以便找出问题所在。 ### 回答2: 当MyBatiscount方法返回null时,通常是由于以下几个原因: 1. 查询条件不满足:count方法通常用于统计满足特定条件的记录。如果查询条件不正确或者没有满足条件的记录,则count方法会返回null。此时,可以检查查询条件是否正确,并且确认据库中是否存在满足条件的据。 2. SQL语句问题:count方法的实现依赖于配置文件中的SQL语句。如果SQL语句有语法错误或者逻辑问题,可能会导致查询失败并返回null。可以查看SQL语句是否正确,并确保其逻辑正确。 3. 据库连接问题:count方法执行时需要与据库建立连接。如果据库连接配置有问题或者据库服务器无法访问,则会导致查询失败并返回null。可以检查据库连接配置是否正确,并确保据库服务器处于可用状态。 4. 据库表结构变更:count方法执行时需要根据据库表结构来统计记录。如果据库表结构有变更,可能会导致count方法无法执行或返回null。可以检查据库表结构是否与MyBatis配置文件中定义的一致,并确保没有发生表结构变更。 综上所述,当MyBatiscount方法返回null时,可以通过检查查询条件、SQL语句、据库连接以及据库表结构来解决该问题。 ### 回答3: 当MyBatiscount返回null时,可能存在以下几种原因: 1. 据库查询结果为空:在执行查询操作时,MyBatiscount语句可能返回null是因为查询条件不满足,没有查询到任何符合条件的记录。这种情况下,可以检查一下查询条件是否正确,是否与据库中的据匹配。 2. MyBatis中的count语句配置有误:可能是在配置MyBatis的映射文件中,count语句的配置有误,导致返回null。可以检查一下映射文件中count语句的配置是否正确,包括SQL语句的编写和参的传递等。 3. 据库连接问题:在执行count操作时,可能存在据库连接问题,导致查询无法正常执行,返回null。可以检查一下据库连接是否正常,是否能够正常访问据库。 4. 据库中的据为空:如果据库中没有任何据,那么执行count操作也会返回null。可以检查一下据库中是否有符合查询条件的据。 针对以上情况,可以通过以下方式来解决: 1. 检查查询条件是否正确,并确认是否有符合条件的据。 2. 检查MyBatis的映射文件中count语句的配置是否正确。 3. 检查据库连接是否正常,是否能够正常访问据库。 4. 确认据库中是否有符合查询条件的据。 根据具体情况,选择相应的解决方法来解决MyBatis count返回null的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值