java 内嵌mysql_JAVA内嵌数据库H2的使用入门

本文介绍了H2数据库作为Java内嵌数据库的使用,包括其优势、安装、数据库连接池配置、表的创建和数据操作。通过示例代码展示了如何进行数据库操作,如建表、插入数据和查询。
摘要由CSDN通过智能技术生成

H2数据库是开源的,非常适合做嵌入式数据库使用,尤其用java编码的时候。

H2的优势:

1、h2采用纯Java编写,因此不受平台的限制。

2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。

3、h2提供了一个十分方便的web控制台用于操作和管理数据库内容。

一、所需工具:

JDK

h2-1.4.x.jar

二、写代码如下:

package com.my.enter;

import java.sql.Connection;

import java.sql.SQLException;

import org.h2.jdbcx.JdbcConnectionPool;

public class ConnectionPool {

private static ConnectionPool cp = null;

private JdbcConnectionPool jdbcCP = null;

private ConnectionPool() {

String dbPath ="./config/test";

jdbcCP = JdbcConnectionPool.create("jdbc:h2:" + dbPath, "sa", "");

jdbcCP.setMaxConnections(50);

}

public static ConnectionPool getInstance() {

if (cp == null) {

cp = new ConnectionPool();

}

return cp;

}

public Connection getConnection() throws SQLException {

return jdbcCP.getConnection();

}

}

实例化时若数据库test.mv.db不存在,则会创建,路径是src的同级目录config/test.mv.db;

三、使用数据库:

package com.my.enter;

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class CommonDao {

public static void crateTable() throws SQLException {

Connection conn = null;

Statement stmt = null;

try {

conn = ConnectionPool.getInstance().getConnection();

DatabaseMetaData meta = conn.getMetaData();

ResultSet rsTables = meta.getTables(null, null, "WEATHERINFO",

new String[] { "TABLE" });

if (!rsTables.next()) {

stmt = conn.createStatement();

stmt.execute("CREATE TABLE WEATHERINFO(WEATHERSTR VARCHAR(1024),LASTMODIFYTIME VARCHAR(1024),STATUS VARCHAR(1024),PRIMARY KEY(WEATHERSTR,LASTMODIFYTIME))");

}

rsTables.close();

} finally {

releaseConnection(conn, stmt, null);

}

}

public static void addInfo(String str, long lastModifyTime,

String status) throws SQLException {

Connection conn = null;

PreparedStatement stmt = null;

try {

conn = ConnectionPool.getInstance().getConnection();

stmt = conn

.prepareStatement("INSERT INTO WEATHERINFO VALUES(?,?,?)");

stmt.setString(1, str);

stmt.setString(2, String.valueOf(lastModifyTime));

stmt.setString(3, status);

stmt.execute();

} finally {

releaseConnection(conn, stmt, null);

}

}

public static boolean isInfoExits(String filePath, long lastModifyTime)

throws SQLException {

Connection conn = null;

PreparedStatement stmt = null;

ResultSet rs = null;

try {

conn = ConnectionPool.getInstance().getConnection();

stmt = conn

.prepareStatement("SELECT WEATHERSTR FROM WEATHERINFO WHERE STATUS=? AND LASTMODIFYTIME=?");

stmt.setString(1, filePath);

stmt.setString(2, String.valueOf(lastModifyTime));

rs = stmt.executeQuery();

return rs.next();

} finally {

releaseConnection(conn, stmt, rs);

}

}

private static void releaseConnection(Connection conn, Statement stmt,

ResultSet rs) throws SQLException {

if (rs != null) {

rs.close();

}

if (stmt != null) {

stmt.close();

}

if (conn != null) {

conn.close();

}

}

}

实现对数据库的操作 包括建表,新增数据,查询等操作;

以上,应该是入门了!

H2内嵌数据库的使用

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

SpringBoot内嵌数据库的使用(H2)

配置数据源(DataSource) Java的javax.sql.DataSource接口提供了一个标准的使用数据库连接的方法. 传统做法是, 一个DataSource使用一个URL以及相应的证书去构 ...

补习系列(17)-springboot mongodb 内嵌数据库

目录 简介 一.使用 flapdoodle.embed.mongo A. 引入依赖 B. 准备测试类 C. 完善配置 D. 启动测试 细节 二.使用Fongo A. 引入框架 B. 准备测试类 C.业 ...

补习系列(17)-springboot mongodb 内嵌数据库【华为云技术分享】

目录 简介 一.使用 flapdoodle.embed.mongo A. 引入依赖 B. 准备测试类 C. 完善配置 D. 启动测试 细节 二.使用Fongo A. 引入框架 B. 准备测试类 C.业 ...

swt java 内嵌ActiveX控件

这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX. 具体用法如下: //创建一个OleFra ...

H2内嵌数据库使用步骤

1.找到h2数据库的jar包 D:\repositories\com\h2database\h2\1.4.187\h2-1.4.187.jar 2.双击jar包,配置连接信息 Driver Class ...

SpringBoot使用H2内嵌数据库

1.驱动 我们知道,JDBC是JDK自带的接口规范,不同的数据库有不同的实现,只需要引入相应的驱动包即可. 在使用MySQL数据库时,引入的是MySQL驱动,相应的,使用H2数据库时,也需要引入H2驱 ...

h2内嵌数据库使用

参考文档 1 https://www.cnblogs.com/xdp-gacl/p/4171024.html 参考文档 2 https://blog.csdn.net/mafan121/article ...

Android中如何使用命令行查看内嵌数据库SQLite3

转载博客:http://www.linuxidc.com/Linux/2011-06/37135.htm 在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令. [1]在Andro ...

随机推荐

使用google 语言 api 来实现整个网站的翻译

---恢复内容开始--- 使用google 语言 api 来实现整个网站的翻译,这时我们可以利用免费的google api来做处理来实现多语言的功能. 放在 HTML 文件中

【转】关于phpcms的学习

在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

Quartz.NET开源作业调度框架系列

Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

HDU 4612 Warm up(Tarjan)

果断对Tarjan不熟啊,Tarjan后缩点,求树上的最长路,注意重边的处理,借鉴宝哥的做法,开标记数组,标记自己的反向边. #pragma comment(linker, "/STACK: ...

计算机IT求职学习List

1. 算法相关 1.1 1.2 这两本是最经典的了,这里面注重的是解决问题的思路,看的时候里面的问题要认真思考再参考解答.下面两本是对具体的面试题做 ...

[iOS基础控件 - 6.7.1] 微博展示 代码

Controller: // // ViewController.m // Weibo // // Created by hellovoidworld on 14/12/4. // Copyrig ...

BootStrap-validator 使用记录(JAVA SpringMVC实现)

BootStrap 是一个强大的前面框架,它用优雅的方式解决了网页问题.最近正在使用其开发网站的表单验证,一点体会记录如下: 注:本文中借鉴了博客Franson 的文章

GridControl的单元格中以buttonEdit实现文字和图片按钮并存的效果

话不多说,先上效果图 对于第一列的效果是如何实现的就不多说了,网上有很多例子 重点是第三列的效果实现方法,代码如下 private void GridSet() { DevExpress.XtraEd ...

2016NOMS全国运营峰会——史上更强嘉宾阵容提前揭晓!

参加2016NOMS全国运营峰会的演讲嘉宾来自运营领域的各个方面,包括用户运营.内容运营.活动运营.数据运营等.自大会消息一出立刻受到业界的广泛关注,并吸引了众多业内人士踊跃报名.日前,这一运营界峰会 ...

[P5162] WD与积木

每种堆法(理解成名次序列,举例3,3,8,2和7,7,100,2都对应2,2,1,3这个名次序列)等概率出现:题目中"两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中"可见这 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值