日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

H2内嵌数据库的使用

發(fā)布時(shí)間:2024/10/12 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H2内嵌数据库的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

H2內(nèi)嵌數(shù)據(jù)庫的使用

?

H2是一個(gè)開源的嵌入式數(shù)據(jù)庫引擎,采用java語言編寫,不受平臺(tái)的限制。

同時(shí)H2提供了一個(gè)十分方便的web控制臺(tái)用于操作和管理數(shù)據(jù)庫內(nèi)容。

H2還提供兼容模式,可以兼容一些主流的數(shù)據(jù)庫,因此采用H2作為開發(fā)期的數(shù)據(jù)庫非常方便。

H2作為一個(gè)嵌入型的數(shù)據(jù)庫,它最大的好處就是可以嵌入到我們的Web應(yīng)用中,和我們的Web應(yīng)用綁定在一起,成為我們Web應(yīng)用的一部分。

?

運(yùn)行方式

H2數(shù)據(jù)庫有三種運(yùn)行方式實(shí)現(xiàn):

  • 嵌入式(embedded):可以同應(yīng)用程序打包在一起發(fā)布,這樣可以非常方便地存儲(chǔ)少量結(jié)構(gòu)化數(shù)據(jù)

  • 服務(wù)模式:

  • TCP/IP server:支持客戶端/服務(wù)器端的連接方式

  • web server:此種運(yùn)行方式支持使用瀏覽器訪問H2 Console

  • PG server:支持PostgreSQL客戶端

  • 內(nèi)存方式:可以作為緩存,作為NoSQL的一個(gè)補(bǔ)充。當(dāng)某些場(chǎng)景下數(shù)據(jù)模型必須為關(guān)系型,可以拿它當(dāng)Memcached使,作為后端MySQL/Oracle的一個(gè)緩沖層,緩存一些不經(jīng)常變化但需要頻繁訪問的數(shù)據(jù),比如字典表、權(quán)限表。

  • ?

    JDBC URL

    ?

    1、內(nèi)嵌模式不用啟動(dòng)服務(wù),已內(nèi)嵌,不用顯示啟動(dòng)服務(wù)

    String jdbcURL = "jdbc:h2:~/h2/db";

    ?

    2、TCP/IP server 服務(wù)器模式,必須要顯示啟動(dòng)服務(wù)

    String jdbcURL = "jdbc:h2:tcp://localhost/~/h2/db";

    ?

    3、內(nèi)存模式

    String jdbcURL = "jdbc:h2:mem:h2db"; ? // 或者 ? String jdbcURL = "jdbc:h2:tcp://localhost/mem:h2db";

    ?

    ?


    ?

    Java應(yīng)用中的使用

    ?

    操作實(shí)例

    H2數(shù)據(jù)庫基本操作:

    // ~ 用戶目錄C:\Users\用戶名\ String jdbcURL = "不同模式下,不同的jdbcURL,其他操作一樣"; ? //連接數(shù)據(jù)庫時(shí)使用的用戶名 final String user = "tianya"; ? //連接數(shù)據(jù)庫時(shí)使用的密碼 String password = "123456"; ? //連接H2數(shù)據(jù)庫時(shí)使用的驅(qū)動(dòng)類 //org.h2.Driver String driverClass="org.h2.Driver"; ? try {// 1、加載驅(qū)動(dòng) Class.forName(driverClass);// 2、獲取連接Connection connection = DriverManager.getConnection(jdbcURL, user, password);Statement statement = connection.createStatement();// 3、執(zhí)行操作// 3.1、先刪除表,若存在statement.execute("drop table user_info if exists ");// 3.2、創(chuàng)建表statement.execute("create table user_info(id int primary key, name varchar(10), age int , sex varchar(2) )");// 4、新增statement.executeUpdate("insert into user_info(id,name,age,sex) values(1,'張三',23,'男' )");statement.executeUpdate("insert into user_info(id,name,age,sex) values(2,'李四',25,'男' )");statement.executeUpdate("insert into user_info(id,name,age,sex) values(3,'王五',33,'男' )");statement.executeUpdate("insert into user_info(id,name,age,sex) values(4,'珠簾',23,'女' )");statement.executeUpdate("insert into user_info(id,name,age,sex) values(5,'鯉魚',20,'女' )");// 5、查詢ResultSet rs = statement.executeQuery("select * from user_info");while (rs.next()) {System.out.println(rs.getInt(1) + " - " + rs.getString(2) + " - " + rs.getInt(3)+ " - " + rs.getString(4) );}// 釋放資源 statement.close();connection.close();} catch (Exception e) {e.printStackTrace(); }

    ?

    ?


    ?

    ?

    Java web 應(yīng)用中的使用

    ?

    H2服務(wù)的啟動(dòng)

    ?

    1.命令行啟動(dòng)服務(wù)

    java -cp h2*.jar org.h2.tools.Server -? ? 常見的選項(xiàng)如下: ? -web:啟動(dòng)支持H2 Console的服務(wù) -webPort <port>:服務(wù)啟動(dòng)端口,默認(rèn)為8082 -browser:啟動(dòng)H2 Console web管理頁面 -tcp:使用TCP server模式啟動(dòng) -pg:使用PG server模式啟動(dòng) ?

    ?

    如:

    ## 瀏覽器web服務(wù)方式
    java -jar h2*.jar org.h2.tools.Server -web -webPort 8082 -browser

    ?


    ?
    ## TCP服務(wù)方式
    java -jar h2*.jar org.h2.tools.Server -tcp -tcpPort 9092 -tcpSSL

    ?

    ?

    ?

    ?

    ?

    ?

    2.Servlet的方式

    ?

    注解的方式

    package com.tianya.mw.web; ? import java.sql.SQLException; import java.util.HashMap; import java.util.Map; ? import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.ServletRegistration.Dynamic; import javax.servlet.annotation.WebListener; ? import org.apache.log4j.Logger; import org.h2.server.web.WebServlet; import org.h2.tools.Server; ? /*** Copyright: Copyright (c) 2019 tianwyam* * @ClassName: H2DBServerListener.java* @Description: 在WEB應(yīng)用中啟動(dòng)H2數(shù)據(jù)庫服務(wù)的監(jiān)聽器* @version: v1.0.0* @author: tianwyam* @date: 2019年3月18日 上午9:56:21*/ @WebListener public class H2DBServerListener implements ServletContextListener { ?private transient static final Logger log = Logger.getLogger(H2DBServerListener.class);// H2 DB 服務(wù)private Server server;// H2 tcp訪問的端口public static final int H2_DB_SERVER_PORT = 8082 ; ?@Overridepublic void contextInitialized(ServletContextEvent event) {try {// 啟動(dòng)H2數(shù)據(jù)庫服務(wù)log.info("啟動(dòng)H2數(shù)據(jù)庫...");log.info(String.format("TCP客戶端訪問端口:%s", H2_DB_SERVER_PORT));// 默認(rèn)端口為8082server = Server.createTcpServer("-tcpPort", String.valueOf(H2_DB_SERVER_PORT), "-tcpAllowOthers").start();log.info("H2數(shù)據(jù)庫啟動(dòng)成功...");?// 注解方式 添加 H2 DB console 訪問 WebServlet// 注冊(cè) H2數(shù)據(jù)庫 web 控制臺(tái) // 添加 org.h2.server.web.WebServletServletContext servletContext = event.getServletContext();Dynamic webServlet = servletContext.addServlet("H2Console", WebServlet.class);// 控制臺(tái) 訪問路徑webServlet.addMapping("/console/*");webServlet.setLoadOnStartup(1);// 設(shè)置配置Map<String, String> initParameters = new HashMap<>();initParameters.put("allowOthers", "true");initParameters.put("trace", "true");webServlet.setInitParameters(initParameters);log.info("H2 CONSOLE 默認(rèn)訪問URL:http://localhost:8080/[project_name]/console/");} catch (SQLException e) {log.error("H2數(shù)據(jù)庫啟動(dòng)失敗!", e);} ?} ?@Overridepublic void contextDestroyed(ServletContextEvent event) { ?// 停止服務(wù)if (server != null) {log.info("關(guān)閉H2數(shù)據(jù)庫...");server.shutdown();log.info("關(guān)閉H2數(shù)據(jù)庫成功...");}} ? }

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/tianwyam/p/h2db.html

    總結(jié)

    以上是生活随笔為你收集整理的H2内嵌数据库的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 综合激情四射 | 日本黄大片在线观看 | 久久久国产精品 | 国产一区=区 | 亚洲福利 | 日日骚av | 欧美精品一区二区三区久久久 | 亚洲乱妇老熟女爽到高潮的片 | 天天插天天爽 | av片在线观看 | 五月婷婷综合激情网 | 91口爆一区二区三区在线 | 黄色一级免费网站 | 天天插天天操天天干 | 免费观看在线观看 | www.一起操 | 中出中文字幕 | 色网在线免费观看 | 国产熟女高潮一区二区三区 | 欧美精品99久久 | 成人av在线网址 | 激情文学8888 | 天天色一色 | 求欧美精品网址 | 日韩精品一二三四 | asian日本肉体pics | 激情开心成人网 | 成人精品亚洲 | 西西人体大胆4444ww张筱雨 | 亚洲图片偷拍区 | 久久久999国产精品 天堂av中文在线 | 亚洲一区色 | 另类小说一区二区 | 日韩簧片在线观看 | 五月综合激情网 | 欧美一级视频免费 | 凹凸精品一区二区三区 | 97超碰中文字幕 | 免费毛片视频 | 久久噜 | 爱爱综合 | 日韩不卡视频一区二区 | 国产亚洲三级 | 天堂网www| 日韩欧美在线中文字幕 | 亚洲素人 | 色哟哟国产| 91片黄在线观 | 杨幂一区二区国产精品 | 免费的黄色av | 亚洲毛片一区二区 | 高h视频在线观看 | 亚洲 日本 欧美 中文幕 | 怡春院在线视频 | 探花精品 | 色婷婷久久久亚洲一区二区三区 | 日韩一区二区三区视频 | 久久亚洲无码视频 | 欧美日韩国产第一页 | 免费看a网站 | 777久久久精品一区二区三区 | 清纯唯美亚洲综合 | 日韩精品专区 | 久久婷婷激情 | 日韩国产激情 | 牛牛电影国产一区二区 | 我色综合 | 日日射天天干 | 小泽玛利亚一区二区三区在线观看 | 欧美午夜精品一区二区 | 人妻少妇久久中文字幕 | 黄瓜视频在线播放 | 在线亚洲欧美 | 人妻一区二区在线 | 欧美激情15p | 午夜电影网站 | 久久久不卡国产精品一区二区 | 99久久99久久精品国产片桃花 | 一级成人免费 | 欧美日本在线播放 | 久久大伊人 | 九九热在线视频 | 日本在线精品视频 | 黄色小视频链接 | 国产亚洲欧美在线精品 | 国产成人一区二区三区小说 | 婷婷91| 色窝窝无码一区二区三区 | 国产中文字幕在线观看 | 午夜久久精品 | 天天干夜夜爱 | 黑人巨大精品欧美一区免费视频 | 亚洲永久精品一区 | 高清视频免费在线观看 | av基地网| 毛片在线免费观看网站 | 国产毛片a级 | 天堂在线www | 欧美性猛交xx乱大交 |