এইচ 2 ইন-মেমরি ডাটাবেস জেভিএমের ভিতরে মেমরিতে ডেটা সঞ্চয় করে। যখন JVM প্রস্থান করে, এই ডেটাটি হারিয়ে যায়।
আমি সন্দেহ করি যে আপনি যা করছেন তা নীচের দুটি জাভা ক্লাসের মতো। এই শ্রেণীর মধ্যে একটি একটি সারণী তৈরি করে এবং অন্যটি এতে sertোকানোর চেষ্টা করে:
import java.sql.*;
public class CreateTable {
public static void main(String[] args) throws Exception {
DriverManager.registerDriver(new org.h2.Driver());
Connection c = DriverManager.getConnection("jdbc:h2:mem:test");
PreparedStatement stmt = c.prepareStatement("CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64))");
stmt.execute();
stmt.close();
c.close();
}
}
এবং
import java.sql.*;
public class InsertIntoTable {
public static void main(String[] args) throws Exception {
DriverManager.registerDriver(new org.h2.Driver());
Connection c = DriverManager.getConnection("jdbc:h2:mem:test");
PreparedStatement stmt = c.prepareStatement("INSERT INTO PERSON (ID, FIRSTNAME, LASTNAME) VALUES (1, 'John', 'Doe')");
stmt.execute();
stmt.close();
c.close();
}
}
আমি যখন এই ক্লাসগুলি একের পর এক চালাচ্ছিলাম, আমি নিম্নলিখিত আউটপুটটি পেয়েছি:
সি: \ ব্যবহারকারীরা \ লুক \ স্টাফ> জাভা ক্রিয়েটটেবল
সি: \ ব্যবহারকারীরা \ লুক \ স্টাফ> জাভা ইনসার্টইন্টো টেবিল
থ্রেড "মূল" org.h2.jdbc.JdbcSQLException: ব্যতিক্রম টেবিল "ব্যক্তি" পাওয়া যায় নি; এসকিউএল বিবৃতি:
ব্যক্তির মধ্যে অন্তর্ভুক্ত করুন (আইডি, প্রথম নাম, লাস্টনেম) ভ্যালু (1, 'জন', 'ডো') [42102-154]
org.h2.message.DbException.getJdbcSQLException (DbException.java:327) এ
org.h2.message.DbException.get (DbException.javaedia67) এ
org.h2.message.DbException.get (DbException.javaedia44) এ
...
প্রথম java
প্রক্রিয়াটি প্রস্থান করার সাথে সাথেই তৈরি টেবিলটি CreateTable
আর বিদ্যমান নেই। সুতরাং, যখন InsertIntoTable শ্রেণি বরাবর আসে, এটি toোকানোর জন্য কোনও টেবিল নেই।
আমি যখন সংযোগের স্ট্রিংগুলিতে পরিবর্তন করেছি তখন আমি jdbc:h2:test
দেখতে পেলাম যে এরকম কোনও ত্রুটি নেই। আমি এটিও দেখতে পেলাম যে একটি ফাইল test.h2.db
উপস্থিত হয়েছিল। এইচ 2 টেবিলটি এখানে রেখেছিল এবং এটি ডিস্কে সঞ্চিত থাকায় সারণিটি InsertIntoTable শ্রেণীর সন্ধানের জন্য এখনও সেখানে ছিল।
Person
আবার টেবিলটি তৈরি করতে পারেন । এইচ 2 আপনার আগে ডিস্কে তৈরি করা ডাটাবেস সম্পর্কে কিছুই জানে না।