上周为应对去外地投标演示网站demo时可能没网的问题,经理让我把远程服务器的postgresql数据库上的数据导出至access或sqlite数据库中,几经波折,终于完成,现将过程记录如下。

demo所用S2SH框架,经查询了解hibernate支持access和sqlite后,由于以前用过一点access,我选择了将数据导出至access。

可参考此博客的前五条,建立postgresql的odbc数据源,然后打开一个新建的access数据库,依次点击“外部数据”--->"新数据源"--->"其他源"--->"ODBC数据库"--->"将源数据导入当前数据库的新表中,确定"--->"机器数据源",然后可以选择之前建好的数据源postgresql,确定之后,选择想要导入的表导入即可。现在,postgresql里的数据表及数据都导入到新的access数据库里了。

接下来hibernate连接access数据库,在建立数据库连接时发生如下图错误,几试未果,故弃之,改用sqlite。

datagrip怎么查看服务器lsession信息 datagrip access_sqlite

接下来进入正题,导入至sqlite数据库。

1.参考此博客将postgresql数据库中的数据表结构及数据分别导出,其导出是将数据库中所有表的数据都导出的,如果想一个表一个表导出,可以用如下命令,pg_dump -h 你的数据库服务器的ip -U 数据库的用户名  --inserts -t 要导出的表名 要导出的数据库的名字 > E:/table.sql   这样可以将数据库里的某个表单独导出,记得参考上述所参考博文,删掉不必要的语句。

2.安装sqlite数据库及其可视化的工具软件SQLite Expert,新建一数据库,然后在下图中的最右一项SQL项下的空白处右键,选择open sql script选项,将之前导出的sql选中,打开,然后Execute SQL即可

datagrip怎么查看服务器lsession信息 datagrip access_access_02

这样,依次将生成的sql文件导入执行完毕后,数据库就算导入成功了。

3.hibernate建立连接,如下:

datagrip怎么查看服务器lsession信息 datagrip access_odbc_03

方言配置:

<property name="dialect">com.ren.utils.SQLiteDialect</property>

连接池配置:

<!-- 配置连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="org.sqlite.JDBC"/>
		<property name="jdbcUrl" value="jdbc:sqlite:E:/db/sqllite/database/db_automonitor.db"/>
		<property name="user" value=""/>
		<property name="password" value=""/>
	</bean>

以上便完成了将postgresql数据库导入至sqlite数据库,并配置hibernate。