首页 > 编程知识 正文

h2数据库导入mysql(h2数据库教程)

时间:2023-12-07 13:39:21 阅读:312839 作者:PDDG

本文目录一览:

  • 1、用java 实现 h2数据库和mysql数据库实时数据同步
  • 2、如何将H2数据库数据转存到MYSQL数据库中?
  • 3、h2 内存数据库-如果将这个mysql的语句转换成h2的
  • 4、h2console怎么加载数据库
  • 5、什么是H2数据库
  • 6、hibernate连接h2数据库配置怎么写

用java 实现 h2数据库和mysql数据库实时数据同步

1、h2数据库你写一个dao类(例如:insert方法),mysql也写一个mydao类(例如:insertmysql()),

当往h2数据库执行插入的时候 new dao().inser(sql);

new mydao().insertmysql(sql);

2、也可以直接到数据库操作写存储过程和游标自动同步。

3、使用第三方插件。有很多这样子的平台做企业数据一体化的

如何将H2数据库数据转存到MYSQL数据库中?

这里面有一些具体的问题,比如说是否只同步新增的数据,要同步的表是否只有少数几个,要同步的表中是否有类似于自增字段这种东西等等。

最简单的情况下,只同步新增数据,只同步少数几个表,并且表中都有自增ID,那你只需要php定时执行,参照网页链接

然后每次定时执行时,读mysql表中的最后一个id(这个id要跟你的h2的自增id一样),然后根据这个到h2表中去读出大于这个id的一个固定记录数的记录,比如一次读5000或1万条,然后批量插入mysql就行了

h2 内存数据库-如果将这个mysql的语句转换成h2的

上一句和下一句sql语句。没有分号。 CREATE TABLE `20110131_admin` ( `loginName` varchar(60) default NULL, `password` varchar(60) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `20110131_admin`(`loginName`,`password`) values ('admin','admin'); 这样就可以了。

h2console怎么加载数据库

1.1、搭建JavaWeb测试项目

创建一个【H2DBTest】JavaWeb项目,找到H2数据库的jar文件,如下图所示:

H2数据库就一个jar文件,这个Jar文件里面包含了使用JDBC方式连接H2数据库时使用的驱动类,将"h2-1.4.183.jar"加入到【H2DBTest】项目中,如下图所示:

二、启动H2数据库

既然是要将H2数据库作为我们Web应用的一部分嵌入进来,那么我们就要在Web应用中启动H2数据库的服务,这样我们才能够连接到H2数据库,因此我们可以编写一个专门用于启动H2数据库服务的监听器(Listener)

什么是H2数据库

H2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库。

H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。

H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。

它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。

H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。不过这样系统架构就会比较复杂了。

扩展资料:

H2数据库运行方式:

1、内存模式

数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境,连接字符串:jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1,如果不指定DBName,则以私有方式启动,只允许一个连接。

2、嵌入式

数据库持久化存储为单个文件。连接字符串:jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE。~/.h2/DBName表示数据库文件的存储位置,如果第一次连接则会自动创建数据库。

3、服务模式

H2支持三种服务模式:web server:此种运行方式支持使用浏览器访问H2 Console。

CP server:支持客户端/服务器端的连接方式。

PG server:支持PostgreSQL客户端。

参考资料:百度百科-H2

hibernate连接h2数据库配置怎么写

大家可以参考下这个网站

1.先启动项目上的h2/bin下的h2.bat或h2w.bat文件,把h2数据库启动起来

2.SSH2框架和h2数据库整合方法

2.1先在数据库下创建 schema目录(相当于一个数据库实例)

create schema fdrkftcode

目的是解决这种异常 org.h2.jdbc.JdbcSQLException: Schema "fdrkftcode" not found; ...

2.2在schema目录下创建表,如创建系统用户表admin

create table fdrkftcode.admin(

id int primary key,

adminname varchar(50),

username varchar(50),

userpwd varchar(50),

adminrights varchar(50),

createdate datetime,

usedtimes int,

lastlogin datetime,

curstatus int,

remark varchar(200)

)

3.为了使用hibernate操作h2,需要作如下设置,在sql编辑窗口输入下面这些脚本

对于实体pojo对象的映射,我是用的annotation,关键是id主键的映射,如下:

@Column(name = "ID", nullable = false)

@Id

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ABC_ID_SEQ")

@SequenceGenerator(name = "ABC_ID_SEQ", sequenceName = "ABC_ID_SEQ")

protected Long id;

注意这里的GeneratedValue和SequenceGenerator的使用,这属于JPA规范,全部来自javax.persisten

4.配置applicationContext.xml文件,主要有三个地方要注意:

4.1修改连接数据库的JDBC驱动 driverClass的值为org.h2.Driver

4.2修改连接数据库所用的URL字符串 jdbcUrl的值为jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE

4.3修改Hibernate的数据库方言hibernate.dialect为org.hibernate.dialect.H2Dialect

5.h2数据库一些常用操作

5.1帮助命令help

5.2表中某字段重命名 ALTER TABLE fdrkftcode.admin ALTER COLUMN usepwd rename to userpwd

5.3表中新增字段 ALTER TABLE fdrkftcode.admin ADD IF NOT EXISTS abc varchar(50)

5.4表中删除字段 ALTER TABLE fdrkftcode.admin DROP COLUMN IF EXISTS abc

5.5查找表中记录 SELECT * from fdrkftcode.admin

5.6往表中插入记录 INSERT INTO fdrkftcode.admin VALUES (1,'管理员','admin','admin','10000000000000000000','2013-05-1 00:12:34',3,'2013-05-1 15:32:57',1,'超过级管理员')

5.7修改表中某记录 UPDATE fdrkftcode.admin SET fdrkftcode.admin.adminname='超级管理员' where fdrkftcode.admin.id=1

5.8删除表中某记录 DELETE FROM fdrkftcode.admin WHERE fdrkftcode.admin.id=1

6.下面是我项目的applicationContext.xml配置方法,大家可以参考下

?xml version="1.0" encoding="UTF-8"?

beans

xmlns=""

xmlns:xsi=""

xmlns:p=""

xsi:schemaLocation=" "

!-- 定义使用C3P0连接池的数据源 --

bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

!-- 指定连接数据库的JDBC驱动 --

property name="driverClass"

valueorg.h2.Driver/value

/property

!-- 连接数据库所用的URL --

property name="jdbcUrl"

valuejdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE/value

/property

!-- 连接数据库的用户名 --

property name="user"

valuesa/value

/property

!-- 连接数据库的密码 --

property name="password"

value/value

/property

!-- 设置数据库连接池的最大连接数 --

property name="maxPoolSize"

value50/value

/property

!-- 设置数据库连接池的最小连接数 --

property name="minPoolSize"

value5/value

/property

!-- 设置数据库连接池的初始化连接数 --

property name="initialPoolSize"

value5/value

/property

!-- 设置数据库连接池的连接的最大空闲时间,单位为秒 --

property name="maxIdleTime"

value20/value

/property

/bean

!-- 定义Hibernate的SessionFactory --

bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"

!-- 依赖注入上面定义的数据源dataSource --

property name="dataSource" ref="dataSource"/

!-- 注册Hibernate的ORM映射文件 --

property name="mappingResources"

list

valuecom/sungoal/ORM/Admin.hbm.xml/value

/list

/property

!-- 设置Hibernate的相关属性 --

property name="hibernateProperties"

props

!-- 设置Hibernate的数据库方言 --

prop key="hibernate.dialect"org.hibernate.dialect.H2Dialect/prop

!-- 设置Hibernate是否在控制台输出SQL语句,开发调试阶段通常设为true --

prop key="show_sql"true/prop

!-- 设置Hibernate一个提交批次中的最大SQL语句数 --

prop key="hibernate.jdbc.batch_size"50/prop

/props

/property

/bean

!--定义Hibernate的事务管理器HibernateTransactionManager --

bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"

!-- 依赖注入上面定义的sessionFactory --

property name="sessionFactory" ref="sessionFactory"/

/bean

!-- 装配通用数据库访问类BaseDAOImpl --

bean id="dao" class="com.sungoal.DAO.BaseDAOImpl"

!-- 依赖注入上面定义的sessionFactory --

property name="sessionFactory" ref="sessionFactory"/

/bean

!-- 部署系统用户管理业务控制器AdminAction --

bean id="adminAction" class="com.sungoal.struts.action.AdminAction" scope="prototype"

property name="dao" ref="dao"/

/bean

/beans

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。