Database Schema Reader

DatabaseSchemaReader是一个简单的库,用于读取多种数据库的元数据,并将其转换为统一的模型。支持多种ADO.NET提供程序,如SqlServer、MySQL、SQLite等。它提供了UI工具来查看模式、生成SQL和代码、比较模式以及将数据复制到SQLite。此外,该库还能够生成POCO类、NHibernate和EF Code First映射文件,以及数据库迁移脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载地址: http://dbschemareader.codeplex.com/releases/view/612307

Contents

  • DatabaseSchemaReader.dll - Class library (.net3.5)
  • DatabaseSchemaViewer.exe - UI to read and view database schemas; options to generate SQL and code; option to compare another schema
  • CopyToSQLite/CopyToSQLite.exe - UI to copy any database schema and data to SQLite or, if installed, SQL Server CE 4.0
  • net4/DatabaseSchemaReader.dll - .Net 4.0 class library

Project Description 
A simple, cross-database facade over .Net 2.0 DbProviderFactories to read database metadata.

Any ADO provider can be read  (SqlServer, SqlServer CE 4, MySQL, SQLite, System.Data.OracleClient, ODP, Devart, PostgreSql, DB2...) into a single standard model.

In Nuget Install-Package DatabaseSchemaReader

There are utilities and two simple UI projects demonstrating how to use the model:

  • View all data from any provider
  • Generate POCO classes for tables, and NHibernate or EF Code First mapping files
  • Generate simple ADO classes to use stored procedures
  • Generate table DDL (and translate to another SQL syntax, eg SqlServer to Oracle or SQLite)
  • Generate CRUD stored procedures (for SqlServer, Oracle, MySQL, DB2)
  • Copy a database schema and data from any provider (SqlServer, Oracle etc) to a new SQLite database (and, with limitations, to SqlServer CE 4)
  • Compare two schemas to generate a migration script

This is intended to be a tool for developers who use simple persistence databases on different platforms. It does not know advanced and provider-specific data types and concepts (geometry, tablespaces, enums).  For database specific support, use your database admin UI, schema comparison or conversion tools.

以下是基于Spring Batch读取DB2数据的POC示例代码以及对应的数据库配置文件代码: 首先是数据库配置文件(application.properties)代码: ``` spring.datasource.url=jdbc:db2://hostname:port/databaseName spring.datasource.username=yourUsername spring.datasource.password=yourPassword spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver ``` 然后是基于Spring Batch读取DB2数据的示例代码: ``` @Configuration @EnableBatchProcessing public class BatchConfiguration { @Autowired public JobBuilderFactory jobBuilderFactory; @Autowired public StepBuilderFactory stepBuilderFactory; @Autowired public DataSource dataSource; @Bean public JdbcCursorItemReader<Coverage> reader() { JdbcCursorItemReader<Coverage> reader = new JdbcCursorItemReader<>(); reader.setDataSource(dataSource); reader.setSql("SELECT * FROM poc.covr"); reader.setRowMapper(new CoverageRowMapper()); return reader; } public class CoverageRowMapper implements RowMapper<Coverage> { @Override public Coverage mapRow(ResultSet rs, int rowNum) throws SQLException { Coverage coverage = new Coverage(); coverage.setId(rs.getInt("id")); coverage.setName(rs.getString("name")); coverage.setDescription(rs.getString("description")); return coverage; } } @Bean public CoverageItemProcessor processor() { return new CoverageItemProcessor(); } @Bean public JdbcBatchItemWriter<Coverage> writer() { JdbcBatchItemWriter<Coverage> writer = new JdbcBatchItemWriter<>(); writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>()); writer.setSql("INSERT INTO poc.covr (id, name, description) VALUES (:id, :name, :description)"); writer.setDataSource(dataSource); return writer; } @Bean public Step step1() { return stepBuilderFactory.get("step1") .<Coverage, Coverage> chunk(10) .reader(reader()) .processor(processor()) .writer(writer()) .build(); } @Bean public Job importUserJob(JobCompletionNotificationListener listener) { return jobBuilderFactory.get("importUserJob") .incrementer(new RunIdIncrementer()) .listener(listener) .flow(step1()) .end() .build(); } } ``` 这段代码中,我们首先配置了数据源,并使用JdbcCursorItemReader从DB2数据库中读取covr表中的数据,然后使用自定义的CoverageRowMapper将ResultSet中的数据映射到Coverage对象中。接着使用CoverageItemProcessor对Coverage对象进行处理,最后使用JdbcBatchItemWriter将处理后的数据写入数据库中。 需要注意的是,这里使用了BeanPropertyItemSqlParameterSourceProvider来将Coverage对象的属性值和SQL语句中的参数名对应起来,因此需要在Coverage类中定义id、name和description属性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值