Skip to content

Commit

Permalink
Redesigned database
Browse files Browse the repository at this point in the history
- removed trackinfo table
- deleting directory is now faster
- deleting a track deletes it from file system
- if a song is deleted from file system it automatically gets deleted from database when it is played
- added sqlite
- now beatboxer can play .m4a and .wmv files too
  • Loading branch information
tayal007 committed Dec 4, 2016
1 parent 5ab5431 commit 7971b15
Show file tree
Hide file tree
Showing 29 changed files with 1,220 additions and 784 deletions.
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
dist/
build/
dist/
build/
/Sqlite/nbproject/private/
/test/nbproject/private/
Binary file removed lib/mysql-connector-java-5.1.40-bin.jar
Binary file not shown.
Binary file added lib/sqlite-jdbc-3.15.1.jar
Binary file not shown.
20 changes: 18 additions & 2 deletions nbproject/private/private.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,26 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Search.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/CreateConnection.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/ItemDeleterController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBSong.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/DataBase.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/TimerController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/PlayList.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/CreatePlaylistController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Track.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BeatBoxer.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/SongEditorController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Artist.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Timer.fxml</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Directory.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Show.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/PlaylistEditorController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBScanner.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Test.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Album.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBGenerator.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/FolderChooserController.java</file>
<file>file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BeatBoxerController.java</file>
</group>
</open-files>
</project-private>
5 changes: 2 additions & 3 deletions nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,14 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.jaudiotagger-2.2.3.jar=lib/jaudiotagger-2.2.3.jar
file.reference.mysql-connector-java-5.1.40-bin.jar-1=lib/mysql-connector-java-5.1.40-bin.jar
includes=**
# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects
jar.archive.disabled=true
jar.compress=false
javac.classpath=\
${file.reference.mysql-connector-java-5.1.40-bin.jar-1}:\
${file.reference.jaudiotagger-2.2.3.jar}:\
${javafx.classpath.extension}
${javafx.classpath.extension}:\
${libs.SqlLite.classpath}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
Expand Down
20 changes: 0 additions & 20 deletions src/beatboxer/AddTrack.java

This file was deleted.

77 changes: 77 additions & 0 deletions src/beatboxer/Album.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package beatboxer;

import java.sql.*;
import javafx.collections.ObservableList;

/**
*
* @author SANJAY TAYAL
*/
public class Album extends CreateConnection {

public ObservableList<BBItem> ShowAllAlbums() {
Statement count = null;
try {
count = con.createStatement();
return BBGenerator.item(count.executeQuery("Select * from album order by albumname"));
} catch (SQLException e) {

} finally {
if (count != null) {
try {
count.close();
} catch (SQLException e) {

}
}
}
return null;
}

public ObservableList<BBSong> ShowAllTracksinAlbum(int albumId) {
PreparedStatement statement = null;
try {
String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE albumid = ? order by trackname";
statement = con.prepareStatement(sql);
statement.setInt(1, albumId);
return BBGenerator.song(statement.executeQuery());
} catch (SQLException e) {

} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {

}
}
}
return null;

}

public ObservableList<BBItem> SearchAlbum(String string) {
PreparedStatement statement = null;
try {
String sql = "select * from album WHERE albumname LIKE ? order by albumname";
statement = con.prepareStatement(sql);
statement.setString(1, '%' + string + '%');
return BBGenerator.item(statement.executeQuery());
} catch (Exception e) {
return null;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {

}
}
}
}
}
77 changes: 77 additions & 0 deletions src/beatboxer/Artist.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package beatboxer;

import java.sql.*;
import javafx.collections.ObservableList;

/**
*
* @author SANJAY TAYAL
*/
public class Artist extends CreateConnection {

public ObservableList<BBItem> ShowAllArtists() {
Statement count = null;
try {
count = con.createStatement();
return BBGenerator.item(count.executeQuery("Select * from artist order by artistname"));
} catch (SQLException e) {

} finally {
if (count != null) {
try {
count.close();
} catch (SQLException e) {

}
}
}
return null;
}

public ObservableList<BBSong> ShowAllTracksByArtists(int artistId) {
PreparedStatement statement = null;
try {
String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE artistid = ? order by trackname";
statement = con.prepareStatement(sql);
statement.setInt(1, artistId);
return BBGenerator.song(statement.executeQuery());
} catch (SQLException e) {

} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {

}
}
}
return null;

}

public ObservableList<BBItem> SearchArtist(String string) {
PreparedStatement statement = null;
try {
String sql = "select * from artist WHERE artistname LIKE ? order by artistname";
statement = con.prepareStatement(sql);
statement.setString(1, '%' + string + '%');
return BBGenerator.item(statement.executeQuery());
} catch (Exception e) {
return null;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {

}
}
}
}
}
64 changes: 33 additions & 31 deletions src/beatboxer/BBGenerator.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
package beatboxer;

import javafx.collections.*;

import java.sql.*;

public class BBGenerator {
public static ObservableList<BBItem> item(ResultSet res){
ObservableList<BBItem> list = FXCollections.observableArrayList();
try {
while(res.next()){
list.add(new BBItem(res.getInt(1),res.getString(2)));
}
} catch (SQLException e) { }
return list;
}
public static ObservableList<BBSong> song(ResultSet res){
ObservableList<BBSong> list = FXCollections.observableArrayList();
try {
while(res.next()){
list.add(new BBSong(res.getInt("trackid"),res.getString("trackname"),res.getString("albumname"),res.getString("artistname"),res.getString("genre"),res.getString("location"), res.getBoolean("favourite")));
}
// ObservableList<BBSong> l = FXCollections.observableArrayList();
// for(BBSong song : list){
// if(! l.contains(song)){
// l.add(song);
// }
// }
// list = l;
} catch (SQLException e) { }
return list;
}
public static int find(ObservableList<BBSong> haystack, BBSong needle){
for (int i = 0; i < haystack.size(); i++) {
if(haystack.get(i).getId()==needle.getId())
return i;

public static ObservableList<BBItem> item(ResultSet res) {
ObservableList<BBItem> list = FXCollections.observableArrayList();
try {
while (res.next()) {
list.add(new BBItem(res.getInt(1), res.getString(2)));
}
res.close();
} catch (SQLException e) {
}
return list;
}

public static ObservableList<BBSong> song(ResultSet res) {
ObservableList<BBSong> list = FXCollections.observableArrayList();
try {
while (res.next()) {
list.add(new BBSong(res.getInt("trackid"), res.getString("trackname"), res.getString("albumname"), res.getString("artistname"), res.getString("genre"), res.getString("location"), res.getBoolean("favourite")));
}
res.close();
} catch (SQLException e) {
}
return list;
}

public static int find(ObservableList<BBSong> haystack, BBSong needle) {
for (int i = 0; i < haystack.size(); i++) {
if (haystack.get(i).getId() == needle.getId()) {
return i;
}
return -1;
}
}
return -1;
}
}
Loading

0 comments on commit 7971b15

Please sign in to comment.