· 8 years ago · Dec 22, 2017, 05:32 PM
1package com.griogre.android.listview;
2
3import android.content.Context;
4import android.database.Cursor;
5import android.database.sqlite.SQLiteDatabase;
6import android.database.sqlite.SQLiteOpenHelper;
7import android.util.Log;
8
9import java.util.ArrayList;
10import java.util.SimpleTimeZone;
11
12/**
13 * Created by Cristi on 20-Dec-17.
14 */
15
16public class DatabaseHandlerTeam extends SQLiteOpenHelper {
17 private static final int DATABASE_VERSION = 1;
18 private static final String DATABASE_NAME = "TeamsManager";
19
20 private static final String TABLRE_NAME_TEAM = "Teams";
21
22 //Echipa (EchipaID , numeEchipa, anInfiintare, antrenor, nrJucatori, taraDeOrigine)
23 private static final String KEY_ID = "echipaID";
24 private static final String KEY_NAME = "numeEchipa";
25 private static final String KEY_YEAR = "anInfiintare";
26 private static final String KEY_MANAGER = "antrenor";
27 private static final String KEY_PLAYERS = "nrJucatori";
28 private static final String KEY_COUNTRY = "taraDeOrigine";
29
30 private static final String TAG = "DBHelperTeam";
31
32 private static DatabaseHandlerTeam databaseHandlerTeam;
33
34 public DatabaseHandlerTeam(Context context) {
35 super(context, DATABASE_NAME, null, DATABASE_VERSION);
36 }
37
38 public static synchronized DatabaseHandlerTeam getDatabaseHandlerTeam(Context context) {
39 if (databaseHandlerTeam == null) {
40 databaseHandlerTeam = new DatabaseHandlerTeam(context.getApplicationContext());
41 }
42 return databaseHandlerTeam;
43 }
44
45
46 @Override
47 public void onCreate(SQLiteDatabase sqLiteDatabase) {
48 String CREATE_TEAM_TABLE = "CREATE TABLE " + TABLRE_NAME_TEAM + " (" +
49 KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
50 KEY_NAME + " TEXT NOT NULL, " +
51 KEY_YEAR + " INT, " +
52 KEY_MANAGER + " TEXT NOT NULL, " +
53 KEY_PLAYERS + " INT NOT NULL, " +
54 KEY_COUNTRY + " TEXT);";
55
56 sqLiteDatabase.execSQL(CREATE_TEAM_TABLE);
57 }
58
59 @Override
60 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
61 sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLRE_NAME_TEAM);
62 onCreate(sqLiteDatabase);
63 }
64
65 public void addTeam(Team team) {
66 SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
67
68 int teamCount = databaseHandlerTeam.getTeamCount();
69 teamCount++;
70 String teamItem = "INSERT INTO " + TABLRE_NAME_TEAM + " (" +
71 KEY_ID + ", " +
72 KEY_NAME + ", " +
73 KEY_YEAR + ", " +
74 KEY_MANAGER + ", " +
75 KEY_PLAYERS + ", " +
76 KEY_COUNTRY + ") " +
77 "VALUES (" + teamCount + ", '" + team.getTeamName() + "', " +
78 +team.getTeamYear() + ", " +
79 "'" + team.getTeamManager() + "', " +
80 +team.getTeamPlayers() + ", " +
81 "'" + team.getTeamCountry() + "');";
82 sqLiteDatabase.execSQL(teamItem);
83 Log.i(TAG + "----------", teamCount + "-----" + teamItem);
84 }
85
86 public int getTeamCount() {
87 int count = 0;
88 String countQuery = "SELECT * FROM " + TABLRE_NAME_TEAM;
89 SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
90 Cursor cursor = sqLiteDatabase.rawQuery(countQuery, null);
91 try {
92 count = cursor.getCount();
93 } catch (Exception e) {
94 Log.d(TAG, "Error while trying to get teams from database");
95 } finally {
96 if (cursor != null && !cursor.isClosed()) {
97 cursor.close();
98 }
99 }
100 return count;
101 }
102
103
104 //get all teams from the Teams table
105 public ArrayList<Team> getAllTeams() {
106 ArrayList<Team> teamArrayList = new ArrayList<Team>();
107
108 String selectQuery = "SElECT * FROM " + TABLRE_NAME_TEAM;
109
110 SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
111 Cursor cursor = sqLiteDatabase.rawQuery(selectQuery, null);
112
113 Team team = null;
114
115 try {
116 if (cursor.moveToFirst()) {
117 do {
118 team = new Team();
119 team.setTeamId(Integer.parseInt(cursor.getString(0)));
120 team.setTeamName(cursor.getString(1));
121 team.setTeamYear(Integer.parseInt(cursor.getString(2)));
122 team.setTeamManager(cursor.getString(3));
123 team.setTeamPlayers(Integer.parseInt(cursor.getString(4)));
124 team.setTeamCountry(cursor.getString(5));
125
126 teamArrayList.add(team);
127
128 Log.d(TAG, team.toString());
129 } while (cursor.moveToNext());
130 }
131 } catch (Exception e) {
132 Log.d(TAG, "Error while trying to get teams from database");
133 } finally {
134 if (cursor != null && !cursor.isClosed()) {
135 cursor.close();
136 }
137 }
138
139 return teamArrayList;
140 }
141
142 //get team with specific name
143 public Team getTeamName(String givenName){
144
145 String selectQuery = "SELECT * FROM " + TABLRE_NAME_TEAM + " WHERE Teams.numeEchipa LIKE " + givenName;
146
147 SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
148 Cursor cursor = sqLiteDatabase.rawQuery(selectQuery, null);
149
150 Team team = null;
151
152 try{
153 if (cursor.moveToFirst()){
154 team = new Team();
155 team.setTeamId(Integer.parseInt(cursor.getString(0)));
156 team.setTeamName(cursor.getString(1));
157 team.setTeamYear(Integer.parseInt(cursor.getString(2)));
158 team.setTeamManager(cursor.getString(3));
159 team.setTeamPlayers(Integer.parseInt(cursor.getString(4)));
160 team.setTeamCountry(cursor.getString(5));
161
162 Log.d(TAG, team.toString());
163 }
164 } catch (Exception e) {
165 Log.d(TAG, "Error while trying to get team's name from database");
166 } finally {
167 if (cursor != null && !cursor.isClosed()) {
168 cursor.close();
169 }
170 }
171
172 return team;
173 }
174
175}