Monday, October 25, 2021

Source Code for Simple Database Program

This database program is simple, it uses the sqlite jar for connecting to the SQLite database.

It can store a file's text in a database, update that text, and extract that text back out to it's original file name.

It's pretty quick and dirty. There might be better ways to handle some of it, but I just wanted to make sure it would do what I wanted it to do.

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.io.File;import java.io.IOException;import java.nio.charset.StandardCharsets;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;public class Sample {  private Connection conn = null;  public Sample() {  }  public void init() {    try {      String url = "jdbc:sqlite:sample.db";      conn = DriverManager.getConnection(url);    } catch (SQLException e) {      e.printStackTrace();    }  }  public void saveData(String filename) {    try {      String fileContent = new String(Files.readAllBytes(Paths.get(filename)));      String sql = "insert into files(name, content) values(?,?)";      PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setString(1, filename);            pstmt.setString(2, fileContent);            pstmt.executeUpdate();    } catch (IOException e) {      e.printStackTrace();    } catch (SQLException e) {      e.printStackTrace();    }  }  public void updateData(String filename) {    try {      String fileContent = new String(Files.readAllBytes(Paths.get(filename)));      String sql = "update files set content = ? where name = ?";      PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setString(1, fileContent);            pstmt.setString(2, filename);            pstmt.executeUpdate();    } catch (IOException e) {      e.printStackTrace();    } catch (SQLException e) {      e.printStackTrace();    }  }  public void exportData(String id) {    StringBuilder sb = new StringBuilder();	    String sql = "select * from files where id = ?";	    ResultSet rs = null;	    try {	    	PreparedStatement pst = conn.prepareStatement(sql);        pst.setString(1, id);	    	rs = pst.executeQuery();        while (rs.next()) {          Path path = Paths.get(rs.getString("name"));		      Files.writeString(path, rs.getString("content"), StandardCharsets.UTF_8);        }	    } catch (SQLException e) {	    	e.printStackTrace();	    } catch (IOException e) {        e.printStackTrace();      }  }  public static void main(String[] args) {    if (args.length != 2) {      System.err.println("ERROR: You must provide two arguments.");      System.err.println("insert or update");      System.err.println("filename to insert or update");      return;    }    Sample sample = new Sample();    sample.init();    if (args[0].equals("insert")) {      sample.saveData(args[1]);    } else if (args[0].equals("update")) {      sample.updateData(args[1]);    } else if (args[0].equals("export")) {      sample.exportData(args[1]);    }  }}

No comments:

Post a Comment

No Sleep

 This is the second day I've woken up early. Like way earlier than normal. Like four am early. I don't know what to do about it. I n...