用接口你肯定要写实现类的
首先你要有一个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数据库一个字段内多个值如何统计个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)