我将构建一组应用程序.其中一个应用程序是无人值守的应用程序(用VB6编写),它将从各种源接收的数据写入本地数据库.所有其他应用程序(将在VS 2008/c#3.0中编写)将主要用于报告原因来读取此数据.
我不想要SQL Server/MySql/Sybase甚至是它的快速版本,因为分发它是一个问题(例如需要单独安装等等).我正在寻找一个本地数据库,其中包含VB6的驱动程序(所以可能是OLEDB,或ODBC,如果我必须解决它)和ADO.NET.如果数据库支持ORM,如NHibernate或至少1对1的映射器,如Subsonic,这也不错,但这不是一个交易破坏者.但我的主要要求是数据库应该非常可靠,这样我就不必浪费时间摆弄它,恢复丢失的数据等等......
我从当天回来就有MS Access的经验,没有太多好的回忆(也不是很糟糕).我听说过SQLite,SQL Server Compact Edition,VistaDB等......但对它们没有经验,我不知道有谁实际使用过它.
什么是最适合我的情况?
当使用EmbeddableDocumentStore对RavenDB,在什么地方得到的数据存储在磁盘上?
var documentStore = new EmbeddableDocumentStore { DataDirectory = "TestApp" };
Run Code Online (Sandbox Code Playgroud)
DataDirectory和磁盘位置之间是否存在关联?
更新:使用截至2011-08-09的最新版本.它是一个控制台应用程序,所以没有ASP.NET目录.
如何在c#中创建嵌入式Neo4j数据库?我想在这个嵌入式数据库上执行查询以进行测试,然后将其丢弃.目前我正在使用neo4jclient对我的系统上运行的数据库(localhost)执行查询,但希望在嵌入式数据库上执行此操作.我该怎么做?
Java中以下列方式存在此功能:
GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory();
GraphDatabaseService graphDb = graphDbFactory
.newEmbeddedDatabase("data/dbName");
Run Code Online (Sandbox Code Playgroud)
在c#中查找这些行中的内容.
我正在尝试从我在 Netbeans 中设置的嵌入式数据库填充我的 JTable。
我的数据库包含 3 行和 3 列,我想插入到 JTable 中,并使该表在我的 GUI 应用程序中可见。
但是,正如上面的标题所说,我收到了 java.sql.SQLException 错误,并且我的表在我的 GUI 应用程序中将不可见。
这是我的代码:
public void FillTable(JTable table, String Query)
{
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:STOCK_CONTROL");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(Query);
//Remove previously added rows
while (table.getRowCount() > 0)
{
((DefaultTableModel) table.getModel()).removeRow(0);
}
int columns = rs.getMetaData().getColumnCount();
while (rs.next())
{
Object[] row = new Object[columns];
for (int i = 1; i <= columns; i++)
{
row[i - 1] = rs.getObject(i); …Run Code Online (Sandbox Code Playgroud) 有一个带有 h2 数据库的 spring boot 应用程序,用作主数据库。还有一个resource/schema.sql在启动时通过 spring boot 加载的。
但是在使用@SpringBootTestspring boot 的集成测试期间不会加载这个schema.sql。相反,它需要在h2已经有db 的情况下设置嵌入式数据库。
有没有办法在schema.sql没有嵌入数据源配置的情况下执行?并且只对所有测试执行一次(例如@Sql,用于所有测试的模式创建不是解决方案)?
我需要开源数据库,我可以随商业应用程序一起提供.它不应该有任何安装(即没有窗口服务和没有设置).
它可以是单用户数据库.它应该在Windows环境中工作并从Java代码中使用.
谢谢
我开发了C#应用程序,用于存储和检索SQL数据库中的数据.但是,当我的客户必须部署应用程序,他需要安装SQL Server Express 2008,这是它的requirement.Now他希望该软件没有额外的安装add-on.so我除了点网框架,不应该有任何安装额外安装.
我已经见过像某些数据库中SQL compact,SQL lite ,SQL CE and blackfishSQL,但我真的DONOT知道,做他们需要额外的安装和做什么努力,我必须做出根据我看着选定的数据库来改变我的整个代码这个
请大家帮帮我
我有以下方法删除数据库,但我得到一个语法错误,我不知道发生了什么.
public void deleteDB(){
try{
Statement s = conn.createStatement();
System.out.println("Deleteting database...");
s.execute("DROP DATABASE Courses");
System.out.println("Database deleted.");
}
catch(SQLException error){
System.err.println("Unable to delete database.");
error.printStackTrace(System.err);
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
我用以下方法调用该方法:
UpdateDB update = new UpdateDB();
update.connectDatabase(dbName);
update.deleteDB();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "DATABASE" at line 1, column 6.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在使用h2嵌入式数据库,其定义如下:
<jdbc:embedded-database id="embeddedDatasource" type="h2"/>
Run Code Online (Sandbox Code Playgroud)
我有两个测试:
@RunWith(SpringJunit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("classpath:h2-context.xml")
class Test1 {...}
@RunWith(SpringJunit4ClassRunner.class)
@ContextConfiguration("classpath:h2-context.xml")
class Test2 {...}
Run Code Online (Sandbox Code Playgroud)
执行完所有测试后,我确实在日志中看到:
* Closing org.springframework.context.support.GenericApplicationContext
* Closing org.springframework.web.context.support.GenericWebApplicationContext
* Closing JPA EntitiManagerFactory for Persistance unit ...
* Closing JPA EntitiManagerFactory for Persistance unit ...
Run Code Online (Sandbox Code Playgroud)
因此,在执行完所有测试之后,将为每个上下文关闭实体管理器。我知道spring会缓存上下文文件,所以我猜H2 bean在两个测试之间共享。
问题是:有时我会收到奇怪的异常,例如:
H2EmbeddedDatabaseConfigurer: Could not shutdown embedded database
jrg.h2.jdbc.JDBCSQLException: The database has been closed [90098-179]
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
到目前为止,这是我发现的内容: Spring的嵌入式H2数据源和DB_CLOSE_ON_EXIT
我正在开发一个使用不同MySQL模式进行客户管理的项目,eG每个客户都有自己的数据库模式,该模式是使用骨架模板创建的.
对于兼容性问题,我必须从Java创建新的MySQL模式,这是在PHP之前完成的.我创建了一个小型服务类,它通过重复使用在MySQL数据库上完美地CREATE TABLE 'a' LIKE 'b';工作,但是这不适用于H2db,因为H2 LIKE在创建表时不支持-part.然后我创建了一个MySQL并修改了该文件,以便用Java(Files.readAllLines可以输入Statement.executeBatch)轻松处理.但是,由于语句如此,此转储在H2db上也会失败COLLATION=UTF8.遗憾的是,这些都很重要,因为我们经常需要特殊的字符,需要正确编码,所以不建议简单地从sql文件中删除所述语句.
我像这样初始化DataSource:
public DataSource dataSource(ResourceLoader resourceLoader) {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.addScript("data.sql").build();
}
Run Code Online (Sandbox Code Playgroud)
所以,我的配置可能性很少.我们gradle用来构建我们的应用程序,所以建议的maven-plugin也无济于事 - 至少我还没有找到使用它gradle,如果可能的话.
所以我的问题在于,我需要检查服务是否真正保持数据正确,但我无法在内存中执行,因为H2不支持语法,我不允许使用"真正的"MySQL数据库,因为我们所有的测试都必须与"真实"连接分离,并且必要时只能使用数据库的内存存储.
java ×4
c# ×3
database ×3
spring ×3
sql ×3
derby ×1
h2 ×1
h2db ×1
jdbc ×1
mysql ×1
neo4j ×1
neo4jclient ×1
open-source ×1
ravendb ×1
spring-boot ×1
spring-test ×1
sqlite ×1
vb6 ×1