hibernate获取sql返回值

 对dao层进行的接口封装

	public List<Map<String,Object>>  queryBySqlMap(String sql) {
		Query query = sessionFactory.openSession().createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);;
		List<Map<String,Object>> mapList = new ArrayList<Map<String, Object>>();
		
		mapList = query.list();
		System.out.println(mapList.get(0).get("userName"));
		


		return mapList;
	}

需要注意的是userName 必须要和数据库字段 大小写一致。

这里的返回类型 不可以用简单的list

原来我是

public List<?> queryBySql(String sql);

Map并不能把其转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hibernate提供了一些工具类来获取数据库表信息,可以使用这些工具类来读取SQL Server表结构。以下是一个示例代码: ```java Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 获取Session的元数据 SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory(); JdbcServices jdbcServices = sessionFactoryImplementation.getJdbcServices(); JdbcConnectionAccess jdbcConnectionAccess = jdbcServices.getBootstrapJdbcConnectionAccess(); Connection connection = jdbcConnectionAccess.obtainConnection(); DatabaseMetaData metaData = connection.getMetaData(); // 读取表信息 String catalog = null; // 数据库名,为null表示当前数据库 String schema = null; // 模式名,为null表示不限制模式 String tableNamePattern = "my_table_name"; // 表名,支持通配符 String[] types = {"TABLE"}; // 表类型,为null表示所有类型都返回 ResultSet tables = metaData.getTables(catalog, schema, tableNamePattern, types); while (tables.next()) { String tableName = tables.getString("TABLE_NAME"); // 表名 String tableType = tables.getString("TABLE_TYPE"); // 表类型 // 读取主键信息 String pkColumnName = null; ResultSet primaryKeys = metaData.getPrimaryKeys(catalog, schema, tableName); while (primaryKeys.next()) { pkColumnName = primaryKeys.getString("COLUMN_NAME"); // 主键列名 } primaryKeys.close(); System.out.println("Table: " + tableName + " (" + tableType + ") Primary Key: " + pkColumnName); } tables.close(); } finally { session.close(); } ``` 在上面的代码中,我们首先获取了Session的元数据,然后使用元数据的`getTables()`方法读取满足条件的表信息,最后使用`getPrimaryKeys()`方法读取每个表的主键信息。需要注意的是,SQL Server的主键信息可能包含多个列,但是这里只读取了其中一个列的信息。如果需要读取所有主键列的信息,可以对`getPrimaryKeys()`方法的返回值进行遍历处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sansan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值