用接口怎样查询数据库中的数据个数,并把其个数显示在jsp页面中

用接口怎样查询数据库中的数据个数,并把其个数显示在jsp页面中,第1张

接口你肯定要写实现类的

首先你要有一个dto类用来建立一个数据模型,这个DTO类是一个POJO类里面只有私有属性和公开的set,get方法,属性和数据库表的字段对应上举例:如学生表对应StudentDTO,里面属性String name,String department,Date dob等

第二你要有一个DAO类来处理各种数据库的 *** 作比如,这个类里封装了JDBC *** 作或者其他的数据库 *** 作方式(如hibernate的session,transaction等),举例:学生的DAO,StudentDAO,里面封装方法add,delete,findByName,findByDep,findAll等

第三就是建立一个Service层来处理前台来的具体请求,Service层里就主要是接口了,接口里定义一些方法如listAll,get,getAndDelete,这样的有具体业务的方法,因为实际项目中可能同时要做多个DAO *** 作所以需要一个接口来封装这些 *** 作

第四就是给这个接口建立实现类,比如刚才稍微复杂点的getAndDelete方法很明显需要先调用DAO里的findByXxx方法,然后用这个方法返回的StudentDTO的实例作为参数调用delete方法

这个时候你在view视图层执行一个 *** 作的话只需要调用Service层接口里面定义的一个方法就可以实现多步骤 *** 作,当然如果调用接口时候直接用new的方法是不科学的,需要用IoC框架比如spring来把具体实例注入到接口里

1、创建测试表,

create table test_limit(id int ,value varchar(100));

2、插入测试数据,共6条记录;

insert into test_limit values (1,'v1');

insert into test_limit values (2,'v2');

insert into test_limit values (3,'v3');

insert into test_limit values (4,'v4');

insert into test_limit values (5,'v5');

insert into test_limit values (6,'v6');

3、查询表中全量数据,可以发现共6条数据,select from test_limit t;

4、编写语句,指定查询3条数据;

 select from test_limit limit 3;

CREATE TABLE person (

    name  varchar(20)

);

INSERT INTO person VALUES ('a,b,c');

INSERT INTO person VALUES ('a,b');

INSERT INTO person VALUES ('a,c');

DELIMITER //

DROP FUNCTION GetTextCount //

/

-- 获取字符串中有几个部分

/

CREATE FUNCTION GetTextCount(pSourceText  VARCHAR(255),  pDivChar  CHAR(1))

RETURNS TINYINT

BEGIN

-- 预期结果 

DECLARE vResult TINYINT;

-- 当前逗号的位置

DECLARE vIndex INT;

-- 前一个逗号的位置

DECLARE vPrevIndex INT;

-- 结果的初始值

SET vResult = 1;

-- 查询第一个 逗号的位置

SET vIndex = INSTR(pSourceText, pDivChar);

IF vIndex = 0 THEN

-- 参数中没有逗号,直接返回

RETURN vResult;

END IF;

-- 初始化情况,前一个逗号不存在

SET vPrevIndex = 0;

-- 循环处理。

WHILE vIndex > 0 DO

-- 结果递增

SET vResult = vResult + 1;

-- 前一个逗号的位置 = 当前逗号的位置

SET vPrevIndex = vIndex;

-- 查询下一个逗号的位置

SET vIndex = LOCATE(pDivChar,  pSourceText,  vPrevIndex + 1);

END WHILE;

-- 返回结果

RETURN vResult;

END;

//

DROP FUNCTION GetTextValue //

/

-- 获取字符串中具体某一个部分的数据

/

CREATE FUNCTION GetTextValue(pSourceText  VARCHAR(255),  pDivChar  CHAR(1), pIndex  TINYINT)

RETURNS VARCHAR(255) 

BEGIN

-- 预期结果 

DECLARE vResult VARCHAR(255);

IF pIndex = 1 THEN

SELECT SUBSTRING_INDEX(pSourceText,  pDivChar,  1)  INTO  vResult;

ELSE

SELECT 

REPLACE(

SUBSTRING_INDEX(pSourceText,  pDivChar,  pIndex),

CONCAT(SUBSTRING_INDEX(pSourceText,  pDivChar,  pIndex - 1) , pDivChar),

'') INTO  vResult;

END IF;

-- 返回

RETURN vResult;

END;

//

DELIMITER ;

SELECT

GetTextValue(tname, ',', MaxNumNo) AS `名称`,

    COUNT() AS `个数`

FROM

person t,

(SELECT 1 No UNION ALL

 SELECT 2 No UNION ALL

 SELECT 3 No UNION ALL

 SELECT 4 No UNION ALL

 SELECT 5 No ) MaxNum

WHERE

GetTextCount(tname, ',') >= MaxNumNo

GROUP BY

    GetTextValue(tname, ',', MaxNumNo);

+------+------+

| 名称 | 个数 |

+------+------+

| a    |    3 |

| b    |    2 |

| c    |    2 |

+------+------+

3 rows in set (001 sec)

方法是:

将要查询字段的长度减去该字段将要查询字符替换为空后的长度

sel ect len(字段名)-len(replace(字段名,要查询的字符,''))from table

以上就是关于用接口怎样查询数据库中的数据个数,并把其个数显示在jsp页面中全部的内容,包括:用接口怎样查询数据库中的数据个数,并把其个数显示在jsp页面中、mysql 怎么指定查询多少条数据、Mysql数据库一个字段内多个值如何统计个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9495123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存