为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Linux
【CPU】:4C
【问题描述】*:Mybtis 查询分组数据,查询语句字段是动态字段,直接返回的java.lang.HashMap 不指定返回的字段匹配信息因为是动态字段,直接再Mapper接口中用List<Map<String,Object>>接收返回结果
spring报错:
数据返回前端 出现数据库连接信息包含用户名和密码和服务器信息
遇到同样问题,驱动版本为:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver8</artifactId>
<version>8.1.3.162</version>
</dependency>
只要jdbc用map接收结果集的时候就会出现,真的很服。
1.如果只是用HashMap来获取返回结果集,这个HashMap对象里面是不会包含connection的相关信息以及连接的properties的内容;
2.不知道你这边HashMap是怎么处理的,包含了非结果集的内容。还是希望提供相关代码片段来排查定位问题。
我的代码片段如下:
表定义:
CREATE TABLE PRODUCT_CATEGORY
(
PRODUCT_CATEGORYID INT NOT NULL,
NAME VARCHAR(50),
PRIMARY KEY(PRODUCT_CATEGORYID));
mapper.xml
<select id="selectProductCategoryMapById" parameterType="java.lang.Integer"
resultType="map">
select * from PRODUCT_CATEGORY WHERE PRODUCT_CATEGORYID = #{PRODUCT_CATEGORYID};
</select>
mapper.java
public Map selectProductCategoryMapById(Integer id);
test.java
SqlSession sqlSession = null;
ProductCategoryMapper productCategoryMapper = null;
public void init() {
try {
//1. 生成 sqlsession factory biulder 对象
SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
//2. 加载配置文件作为一个输入流
//这里Resources 使用的包是 ibatis 包
InputStream resourceAsStream;
resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
//3. 通过会话工厂构造器 对象和 配置文件流 构建一个会话构造工厂
SqlSessionFactory factory = sfb.build(resourceAsStream);
//4. 通过 sql 会话工厂 //true 设置 mybatis 事务自动提交
sqlSession = factory.openSession(true);
productCategoryMapper = sqlSession.getMapper(ProductCategoryMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public ProductCategory testSelectMap(){
Map<String, String> result = productCategoryMapper.selectProductCategoryMapById(10);
ProductCategory productCategory = new ProductCategory();
productCategory.setNAME(result.get("NAME"));
String pid = String.valueOf(result.get("PRODUCT_CATEGORYID"));
productCategory.setPRODUCT_CATEGORYID(Integer.parseInt(pid));
return productCategory;
}
public static void main(String[] args) {
TestProduct test = new TestProduct();
test.init();
System.out.println(test.testSelectMap().toString());
}
你好!
能否提供一下数据库和JDBC驱动的相关版本信息,另外前端这一块“查询语句字段是动态字段”,这一块具体的代码片段请提供一下吧!