aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-04-26 19:17:20 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2015-04-26 19:17:20 +1200
commit2eea9f7e758e116a56a58070cc0d839286e606c7 (patch)
tree7c0e72d9093ab988b37e06b324f1b1fc943d01fd
parent05666c6d2e309313583ac698a1792833d84d0e41 (diff)
downloadtraccar-server-2eea9f7e758e116a56a58070cc0d839286e606c7.tar.gz
traccar-server-2eea9f7e758e116a56a58070cc0d839286e606c7.tar.bz2
traccar-server-2eea9f7e758e116a56a58070cc0d839286e606c7.zip
Add database methods for devices
-rw-r--r--src/org/traccar/database/DataManager.java75
-rw-r--r--src/org/traccar/model/Device.java51
-rw-r--r--test/org/traccar/helper/TestDataManager.java2
3 files changed, 86 insertions, 42 deletions
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index c7c4d2b7f..2f333b38d 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -118,7 +118,7 @@ public class DataManager {
public Device processNextRow(ResultSet rs) throws SQLException {
Device device = new Device();
device.setId(rs.getLong("id"));
- device.setImei(rs.getString("imei"));
+ device.setUniqueId(rs.getString("imei"));
return device;
}
};
@@ -146,7 +146,7 @@ public class DataManager {
devices = new HashMap<String, Device>();
for (Device device : getDevices()) {
- devices.put(device.getImei(), device);
+ devices.put(device.getUniqueId(), device);
}
devicesLastUpdate = Calendar.getInstance();
}
@@ -285,7 +285,7 @@ public class DataManager {
"course DOUBLE NOT NULL," +
"address VARCHAR(1024)," +
"other VARCHAR(8192) NOT NULL," +
- "FOREIGN KEY (device_id) REFERENCES device(id));" +
+ "FOREIGN KEY (device_id) REFERENCES device(id) ON DELETE CASCADE);" +
"CREATE TABLE data (" +
"id INT PRIMARY KEY AUTO_INCREMENT," +
@@ -297,17 +297,17 @@ public class DataManager {
"ALTER TABLE device ADD " +
"FOREIGN KEY (position_id) REFERENCES position(id);" +
-
+
"ALTER TABLE device ADD " +
"FOREIGN KEY (data_id) REFERENCES data(id);" +
-
+
"CREATE TABLE server (" +
"id INT PRIMARY KEY AUTO_INCREMENT," +
"registration BOOLEAN NOT NULL," +
"latitude DOUBLE NOT NULL," +
"longitude DOUBLE NOT NULL," +
"zoom INT NOT NULL);" +
-
+
"CREATE TABLE traccar1 (" +
"id INT PRIMARY KEY AUTO_INCREMENT);");
@@ -408,5 +408,68 @@ public class DataManager {
connection.close();
}
}
+
+ public void addDevice(Device device) throws SQLException {
+
+ Connection connection = dataSource.getConnection();
+ try {
+ PreparedStatement statement = connection.prepareStatement(
+ "INSERT INTO device (name, unique_id) VALUES (?, ?);",
+ Statement.RETURN_GENERATED_KEYS);
+ try {
+ statement.setString(1, device.getName());
+ statement.setString(2, device.getUniqueId());
+
+ statement.execute();
+
+ ResultSet result = statement.getGeneratedKeys();
+ if (result.next()) {
+ device.setId(result.getLong(1));
+ }
+ } finally {
+ statement.close();
+ }
+ } finally {
+ connection.close();
+ }
+ }
+
+ public void updateDevice(Device device) throws SQLException {
+
+ Connection connection = dataSource.getConnection();
+ try {
+ PreparedStatement statement = connection.prepareStatement(
+ "UPDATE device SET name = ?, unique_id = ? WHERE id = ?;");
+ try {
+ statement.setString(1, device.getName());
+ statement.setString(2, device.getUniqueId());
+ statement.setLong(3, device.getId());
+
+ statement.execute();
+ } finally {
+ statement.close();
+ }
+ } finally {
+ connection.close();
+ }
+ }
+
+ public void removeDevice(Device device) throws SQLException {
+
+ Connection connection = dataSource.getConnection();
+ try {
+ PreparedStatement statement = connection.prepareStatement(
+ "DELETE FROM device WHERE id = ?;");
+ try {
+ statement.setLong(1, device.getId());
+
+ statement.execute();
+ } finally {
+ statement.close();
+ }
+ } finally {
+ connection.close();
+ }
+ }
}
diff --git a/src/org/traccar/model/Device.java b/src/org/traccar/model/Device.java
index 1276216fc..cd1985e37 100644
--- a/src/org/traccar/model/Device.java
+++ b/src/org/traccar/model/Device.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2012 - 2015 Anton Tananaev (anton.tananaev@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,53 +15,30 @@
*/
package org.traccar.model;
-/**
- * Device
- */
+import java.util.Date;
+
public class Device {
- /**
- * Id
- */
- private Long id;
+ private long id;
- public Long getId() {
+ public long getId() {
return id;
}
- public void setId(Long id) {
+ public void setId(long id) {
this.id = id;
}
+
+ private String name;
- /**
- * International mobile equipment identity (IMEI)
- */
- private String imei;
-
- public String getImei() {
- return imei;
- }
-
- public void setImei(String imei) {
- this.imei = imei;
- }
-
- /**
- * Phone number
- */
- private String phoneNumber;
-
- public String getPhoneNumber() {
- return phoneNumber;
+ public String getName() {
+ return uniqueId;
}
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
+ public void setName(String name) {
+ this.name = name;
}
- /**
- * Unique id (for some trackers)
- */
private String uniqueId;
public String getUniqueId() {
@@ -71,5 +48,9 @@ public class Device {
public void setUniqueId(String uniqueId) {
this.uniqueId = uniqueId;
}
+
+ private String status;
+
+ private Date lastUpdate;
}
diff --git a/test/org/traccar/helper/TestDataManager.java b/test/org/traccar/helper/TestDataManager.java
index a74669add..621cf04a9 100644
--- a/test/org/traccar/helper/TestDataManager.java
+++ b/test/org/traccar/helper/TestDataManager.java
@@ -15,7 +15,7 @@ public class TestDataManager extends DataManager {
public Device getDeviceByUniqueId(String imei) {
Device device = new Device();
device.setId(new Long(1));
- device.setImei("123456789012345");
+ device.setUniqueId("123456789012345");
return device;
}