数据库查询 带参的两种方式

本文介绍了在数据库查询中使用SQL与HQL语句时的两种带参方式:直接在语句中写入参数与在执行方法中传递参数。这两种方式各有优缺点,适用于不同的场景。
通过SQL/HQL语句在数据库中查询数据的时候,往往是需要带条件参数的,带参的方式有如下两种:
一。写在语句里面。例:
String sql = select * from calendar where 1=1 and isdelete = 0 order by add_date desc;

List list  = this.getListBySQL(sql, null);

二。写在执行的方法里面。例:

String hql = "FROM TMember t left join fetch t.TMember where (t.email = ? or t.phone = ? or t.account = ?) and t.pwd = ? ";

 List<TMember> existList = this.getListByHQL(hql, userName, userName, userName, pwd);
在 PostgreSQL 数据库中,如果你想要存储的 SQL 语句,一般可以使用存储过程或者函数来实现。下面分别介绍这两种方式: 1. 存储过程 存储过程是 PostgreSQL 数据库中的一种可执行代码,可以接收数,并且可以在内部执行 SQL 语句。存储过程的语法如下: ```sql CREATE OR REPLACE PROCEDURE procedure_name(param1 type1, param2 type2, ...) LANGUAGE plpgsql AS $$ BEGIN -- 在此处编写存储过程的代码 END; $$; ``` 其中,`procedure_name` 为存储过程的名称,`param1`、`param2` 等为数名称,`type1`、`type2` 等为数类型,`plpgsql` 为存储过程使用的语言(在 PostgreSQL 中,常用的语言为 plpgsql、SQL 和 C)。在存储过程的 `BEGIN` 和 `END` 之间,可以编写存储过程的具体实现代码。 2. 函数 函数是另一种可执行代码,它也可以接收数并且返回结果。函数的语法如下: ```sql CREATE OR REPLACE FUNCTION function_name(param1 type1, param2 type2, ...) RETURNS return_type AS $$ -- 在此处编写函数的代码 $$ LANGUAGE plpgsql; ``` 其中,`function_name` 为函数的名称,`param1`、`param2` 等为数名称,`type1`、`type2` 等为数类型,`return_type` 为函数的返回值类型。在函数的代码块中,可以编写函数的具体实现代码。 在存储过程或者函数中,可以使用数来构造的 SQL 语句,例如: ```sql CREATE OR REPLACE FUNCTION get_user_by_id(id integer) RETURNS TABLE (id integer, name varchar(100)) AS $$ BEGIN RETURN QUERY SELECT id, name FROM users WHERE id = $1; END; $$ LANGUAGE plpgsql; ``` 在上述代码中,定义了一个函数 `get_user_by_id`,接收一个数 `id`,返回一个结果集,其中包含 `id` 和 `name` 两个字段。在函数的实现代码中,使用数 `$1` 来代函数接收的第一个数 `id`,从而构造了一个带参数的 SQL 查询语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值