`
kanpiaoxue
  • 浏览: 1777547 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Spring jdbctemplate 得到SQL的元数据

 
阅读更多
	public static void testFind() {
		DataSource dataSource = getDataSource();
		JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
		String sql = "select * from (select * from qpf_data_source) where 1=0";
		List<KeyValue<String, String>> list = jdbcTemplate.query(sql,
				new ResultSetExtractor<List<KeyValue<String, String>>>() {

					@Override
					public List<KeyValue<String, String>> extractData(
							ResultSet rs) throws SQLException,
							DataAccessException {
						ResultSetMetaData metaData = rs.getMetaData();
						int count = metaData.getColumnCount();
						List<KeyValue<String, String>> l = new ArrayList<KeyValue<String, String>>();
						for (int i = 0; i < count; i++) {
							String fieldName = metaData.getColumnName(i + 1).toLowerCase();
							int type = metaData.getColumnType(i + 1);
							String typeName = metaData.getColumnTypeName(i + 1).toLowerCase();
							System.out.println(fieldName + " : " + type + " : "
									+ typeName);
							l.add(new KeyValue<String, String>(fieldName,
									typeName));
						}
						return l;
					}
				});

		for (KeyValue<String, String> obj : list) {
			System.out.println(obj);
		}
	}

 输出:

 

id : 2 : number

data_source_name : 12 : varchar2

data_source_text : 12 : varchar2

driver_class_name : 12 : varchar2

url : 12 : varchar2

user_name : 12 : varchar2

user_password : 12 : varchar2

validation_query : 12 : varchar2

create_time : 93 : date

KeyValue [key=id, value=number]

KeyValue [key=data_source_name, value=varchar2]

KeyValue [key=data_source_text, value=varchar2]

KeyValue [key=driver_class_name, value=varchar2]

KeyValue [key=url, value=varchar2]

KeyValue [key=user_name, value=varchar2]

KeyValue [key=user_password, value=varchar2]

KeyValue [key=validation_query, value=varchar2]

KeyValue [key=create_time, value=date]

分享到:
评论

相关推荐

    springmvc+jdbctemplate+mysql(采用注解方式)

    注解是Java编程语言的一种特性,允许在源代码中嵌入元数据。在Spring框架中,注解被用来替代XML配置,使配置文件更简洁,代码更易读。例如,`@Service`注解标识业务层服务,`@Autowired`自动装配依赖,`@...

    Spring boot +jdbctemplate

    声明式事务管理通过配置元数据(如XML或@Transaction注解)定义事务边界,更符合Spring的“声明式”哲学。 - **Spring Boot事务**:在Spring Boot中,通过`@Transactional`注解即可开启事务管理,配合...

    Spring4--3.jdbcTemplate事务

    而声明式事务管理则更便捷,通过配置元数据(如XML或注解)来定义事务边界,让Spring容器自动管理事务。 1. **声明式事务管理**:这是Spring中最常用的事务管理方式。可以通过`@Transactional`注解在方法上声明事务...

    SpringMvc+jdbcTemplate+mysql(注解)

    在Java编程中,注解(Annotation)是一种元数据,可以提供有关代码的信息,但不会直接影响代码的执行。在Spring MVC和JdbcTemplate中,注解广泛用于配置和简化开发。例如,@Controller标识一个类作为Spring MVC的...

    mybatis spring 多数据源

    如果这个项目涉及视频服务,那么可能有一个数据源用于存储视频元数据,另一个用于用户操作日志或其他辅助数据。然而,没有更多的上下文,我们无法进一步展开这个主题。 总的来说,"mybatis spring 多数据源"的主题...

    Spring中文帮助文档

    3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 ...

    Springjdbc

    - **JdbcTemplate**: 这是Spring JDBC最基础的模板类,提供了一组用于执行SQL语句的方法,如update()用于更新操作,query()用于查询操作。JdbcTemplate能够自动处理数据源的获取、关闭以及异常的捕获,使开发者无需...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.2.1. PropertyPlaceholderConfigurer示例 3.7.2.2. PropertyOverrideConfigurer示例 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. ...

    spring3 源码 项目

    4. **Spring JDBC**:该模块简化了JDBC操作,提供了模板类`JdbcTemplate`,通过封装SQL执行和结果集处理,降低了数据库访问的复杂性。此外,`DataSourceTransactionManager`实现了事务管理,与JDBC结合使用,提供...

    spring1.2.6源码

    理解`BeanDefinition`如何存储bean的元数据,以及`InstantiationAwareBeanPostProcessor`如何在bean实例化前后进行处理,是深入理解DI的关键。 2. **面向切面编程(Aspect-Oriented Programming,AOP)**:Spring...

    Spring事务小demo

    声明式事务管理通过配置元数据(如XML或注解)来定义事务边界,而编程式事务管理则是在代码中显式调用TransactionTemplate或PlatformTransactionManager接口的方法来控制事务。 1. **Spring与Mybatis集成**:在...

    spring jdbc 整合

    声明式事务管理通过配置元数据(如XML或注解)来指定事务边界,而编程式事务管理则允许在代码中显式控制事务的开始、提交、回滚。 三、数据源配置 Spring JDBC需要一个数据源来获取数据库连接。Spring提供了多种...

    Spring 2.0 开发参考手册

    3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ...

    Spring1.2api参考手册.zip

    在1.2版本中,ApplicationContext提供了加载配置元数据、获取Bean实例以及发布事件等功能。 3. **Bean**:在Spring中,一个Bean代表一个Java对象,这些对象由Spring容器管理,包括它们的创建、初始化、装配以及销毁...

    使用JDBC进行数据访问【springframwork】定义.pdf

    JdbcTemplate是Spring JDBC的核心组件,它提供了一种模板方法设计模式,将常见的JDBC操作进行了封装,如打开和关闭连接、处理异常、管理事务等,让开发者只需关注SQL语句和结果集的处理。JdbcTemplate支持JDBC 2.0...

    spring chm文档

    3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ...

    spring-4.3.7-sourcecode源码

    此外,Spring的JdbcTemplate和NamedParameterJdbcTemplate也可以与Hibernate并用,提供SQL操作的便利性。 Spring的AOP模块支持创建自定义的切面,可以用于日志记录、性能监控、事务管理等场景。在4.3.7版本中,基于...

    spring-framework-3.1.4.RELEASE源码

    1. **依赖注入的实现**:观察 BeanFactory 和 ApplicationContext 如何通过反射和元数据解析来创建和初始化对象,以及如何通过@Autowired 注解实现自动装配。 2. **AOP 实现**:研究 Advisor、Pointcut 和 Proxy 的...

    Spring API

    3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 ...

    spring-framework-3.2.0.RELEASE 源码

    在这个版本中,Spring对配置元数据的处理进行了优化,支持XML和注解的混合配置,使得开发者可以选择更灵活的方式来定义bean及其关系。 AOP模块在3.2.0.RELEASE中得到了增强,提供了更多的通知类型和目标类拦截。AOP...

Global site tag (gtag.js) - Google Analytics