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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

h2数据库增删改查基本操作

發布時間:2024/3/24 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 h2数据库增删改查基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 基礎增刪查改代碼實踐
  • 2 代碼啟動h2數據庫和初始化

1 基礎增刪查改代碼實踐

通過jdbc的連接方式,對server模式的h2數據庫進行增刪查改操作

public static void main(String[] args) {//String jdbcUrl = "jdbc:h2:C:\\CRroot\\documents\\test";//內嵌模式,直接操作文件String jdbcUrl = "jdbc:h2:tcp://localhost/C:\\CRroot\\documents\\test";//tcp模式,需要手動打開瀏覽器連接一下String userName = "jeason";String passward = "jeason";Connection testDbConnection = null;/*使用前要先導入h2數據庫的驅動,本文使用maven中的數據庫驅動jar包,如果不在maven中引入 h2.1.4.199.jar則在運行時報錯:java.sql.SQLException: No suitable driver found for jdbc:h2:./testdb很顯然是沒有找到h2數據庫的驅動,那他是如何知道這個數據庫的類型的?可以看一下 Connection getConnection(String url, java.util.Properties info, Class<?> caller) 的源碼看上去好像是遍歷所有注冊類,一個接一個的進行連接嘗試*/try {//設置全局的數據庫超時連接DriverManager.setLoginTimeout(1);testDbConnection = DriverManager.getConnection(jdbcUrl, userName, passward);//一開始感覺就像是把某個具體的數據庫抽象成某個類的實例,就想File類一樣//然而,其實這個connection就只是一個“管道”,去進行增刪查改等操作還需要出通過statement和prepareStatement等借口實現//顯式加載驅動類,對于h2數據庫可有可無,如果不顯式加載,有些編譯器會優化掉沒有使用的類Class.forName("org.h2.Driver");System.out.println(testDbConnection.isClosed());//Statement的實例對象用來執行相關的SQL語句Statement statement = testDbConnection.createStatement();//開始對數據庫進行一些操作//如果存在相應的表,則刪除statement.execute("drop table test_table if exists");//創建表statement.execute("create table test_table" +"(id int primary key,name varchar(100),age int,sex varchar(100))");//新增數據for (int i = 0; i < 10; i++) {String sqlStatement = String.format("insert into test_table(id,name,age,sex) values(%s,%s,%s,%s)",String.valueOf(i), '\u039A' + (char) i + '\u039A', 10 * i, '\u039A'+'男'+'\u039A');System.out.println(sqlStatement);statement.execute(sqlStatement);}//查詢結果System.out.println("開始查詢并打印數據庫內容:");ResultSet resultSet = statement.executeQuery("select * from test_table");while (resultSet.next()) {System.out.println(resultSet.getInt(1) + "--" +resultSet.getString(2) + "--" +resultSet.getInt(3) + "--" +resultSet.getString(4));}//顯式釋放資源statement.close();testDbConnection.close();} catch (SQLException | ClassNotFoundException e) {e.printStackTrace();}}

貼一下運行結果:

false insert into test_table(id,name,age,sex) values(0,1844,0,31851) insert into test_table(id,name,age,sex) values(1,1845,10,31851) insert into test_table(id,name,age,sex) values(2,1846,20,31851) insert into test_table(id,name,age,sex) values(3,1847,30,31851) insert into test_table(id,name,age,sex) values(4,1848,40,31851) insert into test_table(id,name,age,sex) values(5,1849,50,31851) insert into test_table(id,name,age,sex) values(6,1850,60,31851) insert into test_table(id,name,age,sex) values(7,1851,70,31851) insert into test_table(id,name,age,sex) values(8,1852,80,31851) insert into test_table(id,name,age,sex) values(9,1853,90,31851) 開始查詢并打印數據庫內容: 0--1844--0--31851 1--1845--10--31851 2--1846--20--31851 3--1847--30--31851 4--1848--40--31851 5--1849--50--31851 6--1850--60--31851 7--1851--70--31851 8--1852--80--31851 9--1853--90--31851Process finished with exit code 0

2 代碼啟動h2數據庫和初始化

代碼實踐的環節中,能訪問數據庫的前提是,已經通過手動的方式啟動了h2數據庫,在web項目,一般都是在項目啟動時將數據庫帶起來的,可以參考參考https://blog.csdn.net/mybook201314/article/details/88662603#_73。

總結

以上是生活随笔為你收集整理的h2数据库增删改查基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。