h2数据库应用
来源:互联网 发布:网络有监控吗 编辑:程序博客网 时间:2024/05/17 04:05
h2数据库是一个由纯java编写轻量级内嵌数据库,仅一个jar文件,约1M左右,能执行标准crud操作,支持事务,可文件模式,也可内存模式,在编写小应用程序需要用到一些数据库操作有不希望安装数据库的话最合适不过了
h2有不同的运行模式
内存模式(In-Memory)
url: jdbc:h2:mem:test
内存中创建一个名为test的数据库,不会持久化,最后一个连接断开后关闭数据库,多个线程可同时访问,但数据仅同进程可见
嵌入式(Embedded)
url: jdbc:h2:~/test jdbc:h2:/data/db/test jdbc:h2:db/test
允许单一进程任意时间访问数据库
服务模式(client/server)
url: jdbc:h2:tcp://localhost/~/test
访问远程地址用户目录下的test数据库,所有客户端访问同一数据库
混合模式(Mixed)
jdbc:h2:~/test;AUTO_SERVER=TRUE
内嵌模式与服务模式混合使用,本地使用内嵌模式访问,远程使用服务模式访问(速度略慢)
url后面可指定相应参数如:
MODE=MySQL:兼容模式[DB2、Derby、Oracle、MSSQLServer]...
AUTO_SERVER=TRUE:自动混合模式,不支持内存模式
DB_CLOSE_DELAY=-1:最后一个连接关闭后不关闭数据库
server模式下启动数据库示例:
final static String DRIVER_CLASS_NAME = "org.h2.Driver"; static String URL = "jdbc:h2:tcp://localhost:9092/~/test5"; static String DB_PORT = "9092"; static String WEB_PORT = "8088"; final static String USERNAME = ""; final static String PASSWORD = ""; public static void main(String[] args) throws Exception { checkParam(args); Server.createTcpServer("-tcp", "-tcpPort", DB_PORT).start(); Server.createWebServer("-webAllowOthers", "-webPort", WEB_PORT).start();//webAllowOthers web管理端允许外部访问 Class.forName(DRIVER_CLASS_NAME); Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD); Statement stat = conn.createStatement(); HikariDataSource basicDataSource = new HikariDataSource(); stat.execute("DROP TABLE IF EXISTS TEST9;CREATE MEMORY Table TEST9(NAME VARCHAR)"); stat.execute("INSERT INTO TEST9 VALUES('Hello World')"); stat.execute("INSERT INTO TEST9 VALUES('Hello World')"); stat.execute("INSERT INTO TEST9 VALUES('Hello World')"); stat.execute("INSERT INTO TEST9 VALUES('Hello World')"); stat.execute("INSERT INTO TEST9 VALUES('Hello World')"); ResultSet resultSet = stat.executeQuery("SELECT * FROM TEST9"); while (resultSet.next()){ System.out.println(resultSet.getObject(1)); } System.out.println("jdbcUrl:"+URL); System.out.println("webUrl:http://127.0.0.1:"+WEB_PORT+"/login.jsp"); conn.close(); } private static void checkParam(String[] args) { if(args!=null){//如果传入参数第一个为数据库端口,第二个为web管理端口 if(args.length==1){ DB_PORT = args[0]; URL = "jdbc:h2:tcp://localhost:"+args[0]+"/~/test5"; } if(args.length>1){ URL = "jdbc:h2:tcp://localhost:"+args[0]+"/~/test5"; DB_PORT = args[0]; WEB_PORT = args[1]; } } }相关依赖
<dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.176</version> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.4.6</version> </dependency> </dependencies>
1 0
- h2数据库应用
- H2数据库攻略之二-应用H2
- H2数据库
- H2 数据库
- h2 数据库
- H2数据库
- h2 数据库
- H2 数据库
- h2 数据库
- H2数据库
- H2数据库
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
- H2 数据库使用 demo
- H2数据库使用
- h2数据库基本操作
- H2数据库启动方式
- UWP- 体验应用内购新接口——StoreContext类
- 第三届蓝桥杯【省赛试题10】取球游戏
- java安全架构____keytool数字证书配置tomcat的https实战
- 数据结构和算法面试题
- String 、char* 的相互转换
- h2数据库应用
- Python3网络爬虫(四):使用User Agent和代理IP隐藏身份
- 一个小菜鸟的Android Studio2.3升级之旅,附赠升级之后Gradle的配置方法
- 在Android Studio中读取properties文件
- maven创建web项目
- py-faster-rcnn+VGG_CNN_M_1024训练自己数据需要修改的参数小记
- thinkphp mysql查询中文某关键字方法,单引号和双引号共用
- jquery3
- webpack性能优化——DLL