-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWaveSQLManager.pde
More file actions
112 lines (103 loc) · 3.27 KB
/
WaveSQLManager.pde
File metadata and controls
112 lines (103 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;
import java.util.Date;
import java.text.SimpleDateFormat;
class WaveSQLManager
{
Connection conn;
private String dbPath;
private String analyzedTableName;
private String waveTableName;
WaveSQLManager(String path)
{
dbPath = path;
openConnection();
createTables();
}
public void openConnection()
{
try
{
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:" + dbPath);
}
catch (ClassNotFoundException e)
{
System.out.println("Could not load JDBC driver");
e.printStackTrace();
}
catch (SQLException e)
{
System.out.println("Could not make database connection");
e.printStackTrace();
}
}
public void closeConnection()
{
try
{
conn.close();
}
catch (SQLException e)
{
System.out.println("Could not make database connection");
e.printStackTrace();
}
}
void createTables()
{
Date date = new Date();
String strDate = new SimpleDateFormat("yyyyMMddhhmmss").format(date);
analyzedTableName = "analysis" + strDate;
waveTableName = "wave" + strDate;
try
{
Statement cs = conn.createStatement();
cs.executeUpdate("CREATE TABLE " + waveTableName + "(`number` INTEGER, `freq_min` REAL, `freq_max` REAL, `freq_ave` REAL, `level` REAL)" );
cs.executeUpdate("CREATE TABLE " + analyzedTableName + "(`number` INTEGER, `amp` REAL, `zero_crossings` REAL, `freq_by_zero_crossings` REAL, `spelling_by_zero_crossings` TEXT, `freq_by_fft` REAL, `spelling_by_fft` TEXT)");
}
catch (SQLException e)
{
System.out.println("Could not make database connection");
e.printStackTrace();
}
}
public void setRecord(List<Wave> waveDataList, Analysis analysisData)
{
try
{
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + waveTableName + "(number, freq_min, freq_max, freq_ave, level) values(?, ?, ?, ?, ?);");
for(Iterator<Wave> it = waveDataList.iterator(); it.hasNext();) {
Wave waveData = it.next();
pstmt.setInt(1, waveData.number);
pstmt.setFloat(2, waveData.freq_min);
pstmt.setFloat(3, waveData.freq_max);
pstmt.setFloat(4, waveData.freq_ave);
pstmt.setFloat(5, waveData.level);
pstmt.addBatch();
}
pstmt.executeBatch();
String analysisParams =
analysisData.number + ", " +
analysisData.amp + ", " +
analysisData.zeroCrossings + ", " +
analysisData.freqByZeroCrossings + ", '" +
analysisData.spellingByZeroCrossings + "', " +
analysisData.freqByFft + ", '" +
analysisData.spellingByFft + "'";
Statement cs = conn.createStatement();
cs.executeUpdate("INSERT INTO " + analyzedTableName + "(number, amp, zero_crossings, freq_by_zero_crossings, spelling_by_zero_crossings, freq_by_fft, spelling_by_fft) values(" + analysisParams + ")");
}
catch (SQLException e)
{
System.out.println("Could not make database connection");
e.printStackTrace();
}
}
}