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]
相关推荐
注解是Java编程语言的一种特性,允许在源代码中嵌入元数据。在Spring框架中,注解被用来替代XML配置,使配置文件更简洁,代码更易读。例如,`@Service`注解标识业务层服务,`@Autowired`自动装配依赖,`@...
声明式事务管理通过配置元数据(如XML或@Transaction注解)定义事务边界,更符合Spring的“声明式”哲学。 - **Spring Boot事务**:在Spring Boot中,通过`@Transactional`注解即可开启事务管理,配合...
而声明式事务管理则更便捷,通过配置元数据(如XML或注解)来定义事务边界,让Spring容器自动管理事务。 1. **声明式事务管理**:这是Spring中最常用的事务管理方式。可以通过`@Transactional`注解在方法上声明事务...
在Java编程中,注解(Annotation)是一种元数据,可以提供有关代码的信息,但不会直接影响代码的执行。在Spring MVC和JdbcTemplate中,注解广泛用于配置和简化开发。例如,@Controller标识一个类作为Spring MVC的...
如果这个项目涉及视频服务,那么可能有一个数据源用于存储视频元数据,另一个用于用户操作日志或其他辅助数据。然而,没有更多的上下文,我们无法进一步展开这个主题。 总的来说,"mybatis spring 多数据源"的主题...
3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 ...
- **JdbcTemplate**: 这是Spring JDBC最基础的模板类,提供了一组用于执行SQL语句的方法,如update()用于更新操作,query()用于查询操作。JdbcTemplate能够自动处理数据源的获取、关闭以及异常的捕获,使开发者无需...
3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.2.1. PropertyPlaceholderConfigurer示例 3.7.2.2. PropertyOverrideConfigurer示例 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. ...
4. **Spring JDBC**:该模块简化了JDBC操作,提供了模板类`JdbcTemplate`,通过封装SQL执行和结果集处理,降低了数据库访问的复杂性。此外,`DataSourceTransactionManager`实现了事务管理,与JDBC结合使用,提供...
理解`BeanDefinition`如何存储bean的元数据,以及`InstantiationAwareBeanPostProcessor`如何在bean实例化前后进行处理,是深入理解DI的关键。 2. **面向切面编程(Aspect-Oriented Programming,AOP)**:Spring...
声明式事务管理通过配置元数据(如XML或注解)来定义事务边界,而编程式事务管理则是在代码中显式调用TransactionTemplate或PlatformTransactionManager接口的方法来控制事务。 1. **Spring与Mybatis集成**:在...
声明式事务管理通过配置元数据(如XML或注解)来指定事务边界,而编程式事务管理则允许在代码中显式控制事务的开始、提交、回滚。 三、数据源配置 Spring JDBC需要一个数据源来获取数据库连接。Spring提供了多种...
3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ...
在1.2版本中,ApplicationContext提供了加载配置元数据、获取Bean实例以及发布事件等功能。 3. **Bean**:在Spring中,一个Bean代表一个Java对象,这些对象由Spring容器管理,包括它们的创建、初始化、装配以及销毁...
JdbcTemplate是Spring JDBC的核心组件,它提供了一种模板方法设计模式,将常见的JDBC操作进行了封装,如打开和关闭连接、处理异常、管理事务等,让开发者只需关注SQL语句和结果集的处理。JdbcTemplate支持JDBC 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. ...
此外,Spring的JdbcTemplate和NamedParameterJdbcTemplate也可以与Hibernate并用,提供SQL操作的便利性。 Spring的AOP模块支持创建自定义的切面,可以用于日志记录、性能监控、事务管理等场景。在4.3.7版本中,基于...
1. **依赖注入的实现**:观察 BeanFactory 和 ApplicationContext 如何通过反射和元数据解析来创建和初始化对象,以及如何通过@Autowired 注解实现自动装配。 2. **AOP 实现**:研究 Advisor、Pointcut 和 Proxy 的...
3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 ...
在这个版本中,Spring对配置元数据的处理进行了优化,支持XML和注解的混合配置,使得开发者可以选择更灵活的方式来定义bean及其关系。 AOP模块在3.2.0.RELEASE中得到了增强,提供了更多的通知类型和目标类拦截。AOP...