في الدرس دا سيتم شرح كيفية استخدام قاعدة بيانات hypersql
و الشرح تم باستخدام برنامج netbeans
و في هذه المرة قمت بانشاء class خاصة بالقيام بجميع الوظائف المتعلقة بقاعدة البيانات من حيث انشائها و الاتصال بها و القيام بعمليات عليها و اغلاقها .
نبتدئ بالفيديو
و الشرح تم باستخدام برنامج netbeans
و في هذه المرة قمت بانشاء class خاصة بالقيام بجميع الوظائف المتعلقة بقاعدة البيانات من حيث انشائها و الاتصال بها و القيام بعمليات عليها و اغلاقها .
نبتدئ بالفيديو
رابط تحميل ملف hsql.jar
http://www.mediafire.com/file/8h5el48hnzct542/hsqldb.jar
كود الكلاس :
import java.io.File;
import java.sql.*;
import java.util.logging.*;
/**
*
* @author shalkam
*/
public class hsql_conn {
private String absPath;
private static final hsql_conn INSTANCE = new hsql_conn();
public static final hsql_conn getInstance() {
return INSTANCE;
}
public hsql_conn() {
String path = new File(getClass().getResource("").getPath()).getParentFile().getParent();
String det = path.substring(0, 5);
if (det.equals("file:")) {
absPath = path.substring(5) + System.getProperty("file.separator") + "data" + System.getProperty("file.separator");
} else {
absPath = path + System.getProperty("file.separator") + "data" + System.getProperty("file.separator");
}
}
/**
* create the database if it doesn't exist
* @param path String the directory at which the database will be created it should have file separator in the end
* @return created boolean true if the database is created
*/
public boolean createDB(String query) {
boolean created = false;
File f = new File(absPath);
if (!f.exists()) {
f.mkdir();
try {
Class.forName("org.hsqldb.jdbc.JDBCDriver");
} catch (Exception e) {
System.err.println("ERROR: failed to load HSQLDB JDBC driver.");
}
try {
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:" + absPath + "data;");
Statement stat = c.createStatement();
stat.execute(query);
stat.close();
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
created = true;
}
return created;
}
/**
* Handles queries that will have results like queries using the "Select" statement
* @param query String the sql query to execute against the database
* @return listOfMaps List the result from the query in the form of list of linked hash maps
* @throws SQLException
* @throws ClassNotFoundException
*/
public ResultSet doQuery(String query) throws SQLException, ClassNotFoundException {
Connection c = this.getConnection();
Statement stat = c.createStatement();
ResultSet rs = stat.executeQuery(query);
return rs;
}
/**
* Handles queries that won't have results like queries using statements like "create", "drop" or "delete"
* @param query String the sql query to execute against the database
* @return rs boolean true if successful
* @throws SQLException
* @throws ClassNotFoundException
*/
public boolean execQuery(String query) throws SQLException, ClassNotFoundException {
Connection c = this.getConnection();
Statement stat = c.createStatement();
boolean rs = stat.execute(query);
stat.close();
return rs;
}
/**
* connects to the database
* @return c the connection to the database
* @throws ClassNotFoundException
* @throws SQLException
*/
private Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:" + absPath + "data;ifexists=true");
return c;
}
/**
* shuts down the database
* @throws ClassNotFoundException
* @throws SQLException
*/
public void shutdownDB() throws ClassNotFoundException, SQLException {
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:" + absPath + "data;shutdown=true");
}
}
كود دالة تظهر كيفية استخدام الفئة class
public void functions() throws SQLException, ClassNotFoundException {
hsql_conn connection = hsql_conn.getInstance();
if(connection.createDB("create table mytable (age int, name varchar(255))")) System.out.println("تم انشاء قاعدة البيانات بنجاح");
else System.out.println("لم يتم انشاء قاعدة البيانات او انها تم انشاؤها بالفعل");
connection.execQuery("insert into mytable values(5 , 'shalkam')");
ResultSet rs = connection.doQuery("select * from mytable");
while(rs.next()) {
System.out.println(rs.getString("age") + " - " + rs.getString("name"));
}
}
0 التعليقات:
إرسال تعليق