我有一个工作的RowMapper代码,它将数据库表行映射到java对象.我想用lambda表达式来改变实现.但是,我总是得到错误; 代码段如下;
String queryString = "select * from person where person_id = ? ";
RowMapper rowMapper = (rs, rowNum) -> {
Person p = new Person();
p.setName(rs.getString("personName"));
p.setAddress(rs.getString("address"));
p.setAge(rs.getInt("age"));
}
Person person = getJdbcTemplate().query(queryString, personId, rowMapper);
return person;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我正确实现代码吗?有想法得到人名单吗?
我有一个SQL服务器表列,其定义varchar为此列中存储的数据1,2,3.我运行了以下查询,但失败了(我很清楚原因):
select * from <table> where <column1> in (1,2,3)
Run Code Online (Sandbox Code Playgroud)
但是,我在同一个表中有另一列定义为numeric.如果我使用numeric列添加另一个条件到上面的查询,它的工作原理:
select * from <table> where <column1> in (1,2,3) and <column2> = 20
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下SQL Server的行为是什么原因吗?
此外,我有更大的查询,其中包含定义为第一个查询的条件在同一数据库服务器上的某些数据库上工作,而同一服务器上的其他数据库失败(抱歉,我不能在此处粘贴查询).
我跑上面查询SQL Server 2008 R2服务器.
以下是我收到的错误消息;
将varchar值'36O5A'转换为数据类型int时转换失败.
其中'36O5A'是varchar列中一系列"数字字符"值之后的第一个字母数字值.
我在 SQL Server 2008 R2 中有一个存储过程,如下所示;
DECLARE @uniqueId BIGINT
DECLARE TestCursor CURSOR FOR
SELECT em.uniqueId
FROM EMPLYEE_MASTER em WITH (NOLOCK)
INNER JOIN EMP_DETAILS edt WITH (NOLOCK) ON em.uniqueId = edt.uniqueId
INNER JOIN EMP_ATTENDANCE ea WITH (NOLOCK) ON em.uniqueId = ea.uniqueId
OPEN TestCursor
FETCH NEXT FROM TestCursor INTO @uniqueId
WHILE @@fetch_status = 0
BEGIN
BEGIN TRANSACTION purge
DELETE FROM EMPLYEE_MASTER where uniqueId = @uniqueId
DELETE FROM EMP_DETAILS where uniqueId = @uniqueId
DELETE FROM EMP_ATTENDANCE where uniqueId = @uniqueId
DELETE FROM EMP_ADDRESS …Run Code Online (Sandbox Code Playgroud)