diff --git a/src/main/java/Team5/SmartTowns/Data/DatabaseController.java b/src/main/java/Team5/SmartTowns/Data/DatabaseController.java new file mode 100644 index 0000000000000000000000000000000000000000..2bcd14c280796f612ea22cbc589052957c5f519c --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/DatabaseController.java @@ -0,0 +1,44 @@ +package Team5.SmartTowns.Data; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.servlet.ModelAndView; + +import java.util.*; +@Controller +public class DatabaseController { + + @Autowired + private UserRepository userRepository; +// @Autowired +// private locationRepository locationRepository; +// @Autowired +// private trailsRepository trailsRepository; + +// public DatabaseController() { +// +// } + + @GetMapping("/userList") + public ModelAndView userList() { + ModelAndView mav = new ModelAndView("towns/userData"); + List<user> users = userRepository.getAllUsers(); + mav.addObject("users", users); + return mav; + } +// @GetMapping("/trailList") +// public ModelAndView trailList() { +// ModelAndView mav1 = new ModelAndView("towns/trailsData"); +// List<trail> trail = trailsRepository.getAllTrails(); +// mav1.addObject("trails", trail); +// return mav1; +// } +// @GetMapping("locationList") +// public ModelAndView locationList(){ +// ModelAndView mav2 = new ModelAndView("towns/locationData"); +// List<location> location = locationRepository.getAllLocations(); +// mav2.addObject("location", location); +// return mav2; +// } +} diff --git a/src/main/java/Team5/SmartTowns/Data/UserController.java b/src/main/java/Team5/SmartTowns/Data/UserController.java deleted file mode 100644 index a492d25297c7b398f16bb086e81b83869e93f8cd..0000000000000000000000000000000000000000 --- a/src/main/java/Team5/SmartTowns/Data/UserController.java +++ /dev/null @@ -1,29 +0,0 @@ -package Team5.SmartTowns.Data; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.servlet.ModelAndView; - -import java.util.*; -@Controller -public class UserController { - - private List<user> users = List.of( - new user (1, "Mrs", "Hannah", "English", "hannah.english@gmail.com"), - new user (2, "Mr", "Tom", "Harper", "tom.harper2@gmail.com"), - new user (3, "Mrs", "Sarah", "Burton", "sarahburton@gmail.com"), - new user (4, "Mr", "Nigel", "Hopkins", "nigelahopkins@gmail.com") - ); - - @Autowired - private UserRepository userRepository; - - @GetMapping("/userList") - public ModelAndView userList(){ - ModelAndView mav = new ModelAndView("usersData.sql"); - List<user> users = userRepository.getAllUsers(); - mav.addObject("users", users); - return mav; - } -} diff --git a/src/main/java/Team5/SmartTowns/Data/UserRepository.java b/src/main/java/Team5/SmartTowns/Data/UserRepository.java index 80e0dc68f41a672abef55a3af8cd43de03940404..419ab099ad577ca7f2e274e8b1587222ab7b2fbf 100644 --- a/src/main/java/Team5/SmartTowns/Data/UserRepository.java +++ b/src/main/java/Team5/SmartTowns/Data/UserRepository.java @@ -2,10 +2,6 @@ package Team5.SmartTowns.Data; import java.util.List; - public interface UserRepository { List<user> getAllUsers(); - - - } diff --git a/src/main/java/Team5/SmartTowns/Data/UserRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/Data/UserRepositoryJDBC.java index 17f15f9c465c85e6fe552108b906ef4b1c9e14fd..a1cce5fa84b0d18c4f1b6c3a2cc9c481bd644e56 100644 --- a/src/main/java/Team5/SmartTowns/Data/UserRepositoryJDBC.java +++ b/src/main/java/Team5/SmartTowns/Data/UserRepositoryJDBC.java @@ -17,19 +17,19 @@ public class UserRepositoryJDBC implements UserRepository{ setuserMapper(); } + private void setuserMapper(){ userMapper = (rs, i) -> new user( rs.getInt("userId"), - rs.getString("Title"), - rs.getString("firstName"), - rs.getString("lastName"), - rs.getString("emailAddress") + rs.getString("name") ); } + + @Override public List<user> getAllUsers(){ - String sql = "select * from user"; + String sql= "SELECT * FROM users"; return jdbc.query(sql, userMapper); } } diff --git a/src/main/java/Team5/SmartTowns/Data/location.java b/src/main/java/Team5/SmartTowns/Data/location.java new file mode 100644 index 0000000000000000000000000000000000000000..03fff518a84e4165aab1487de9f5657743b1e099 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/location.java @@ -0,0 +1,11 @@ +package Team5.SmartTowns.Data; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class location { + private int locationId; + private String name; +} diff --git a/src/main/java/Team5/SmartTowns/Data/locationRepository.java b/src/main/java/Team5/SmartTowns/Data/locationRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..ce30cda95d0cc319703e5f4e8e18df6bbfe80f01 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/locationRepository.java @@ -0,0 +1,9 @@ +package Team5.SmartTowns.Data; + +import java.util.List; + +public interface locationRepository { + List<location> getAllLocations(); + + +} diff --git a/src/main/java/Team5/SmartTowns/Data/locationRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/Data/locationRepositoryJDBC.java new file mode 100644 index 0000000000000000000000000000000000000000..4743ea8b37a42c7f591ddf7ee3ea9bafcc352266 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/locationRepositoryJDBC.java @@ -0,0 +1,28 @@ +package Team5.SmartTowns.Data; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public abstract class locationRepositoryJDBC implements locationRepository { + private JdbcTemplate jdbc; + private RowMapper<location> locationMapper; + + public locationRepositoryJDBC(JdbcTemplate aJdbc) { + this.jdbc = aJdbc; + setlocationMapper(); + } + private void setlocationMapper(){ + locationMapper = (rs, i) -> new location( + rs.getInt("locationId"), + rs.getString("name") + ); + } + public List<location> getAllLocation(){ + String sql= "SELECT * FROM location"; + return jdbc.query(sql, locationMapper); + } +} diff --git a/src/main/java/Team5/SmartTowns/Data/trail.java b/src/main/java/Team5/SmartTowns/Data/trail.java new file mode 100644 index 0000000000000000000000000000000000000000..413431db009d718d1ffc6adfcb7b5383745610c7 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/trail.java @@ -0,0 +1,11 @@ +package Team5.SmartTowns.Data; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class trail { + private int trailsId; + private String name; +} diff --git a/src/main/java/Team5/SmartTowns/Data/trailsRepository.java b/src/main/java/Team5/SmartTowns/Data/trailsRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..70f7c2d960be7dfef85b29999882cc0c780f1a50 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/trailsRepository.java @@ -0,0 +1,7 @@ +package Team5.SmartTowns.Data; + +import java.util.List; + +public interface trailsRepository { + List<trail> getAllTrails(); +} diff --git a/src/main/java/Team5/SmartTowns/Data/trailsRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/Data/trailsRepositoryJDBC.java new file mode 100644 index 0000000000000000000000000000000000000000..40ce5ff0e5ce708f2b4fdc6b3e1499cfd7b21d46 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/trailsRepositoryJDBC.java @@ -0,0 +1,27 @@ +package Team5.SmartTowns.Data; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public class trailsRepositoryJDBC { + private JdbcTemplate jdbc; + private RowMapper<trail> trailMapper; + public trailsRepositoryJDBC(JdbcTemplate aJdbc){ + this.jdbc = aJdbc; + settrailsMapper(); + } + private void settrailsMapper(){ + trailMapper = (rs, i) -> new trail( + rs.getInt("trailsId"), + rs.getString("name") + ); + } + public List<trail> getAllTrails(){ + String sql= "SELECT * FROM trails"; + return jdbc.query(sql, trailMapper); + } +} diff --git a/src/main/java/Team5/SmartTowns/Data/user.java b/src/main/java/Team5/SmartTowns/Data/user.java index 34e1711cafc28f1c8321f978bf32a8f221e99673..7646aec59c40043f6c7262000ad252eb2bcc947f 100644 --- a/src/main/java/Team5/SmartTowns/Data/user.java +++ b/src/main/java/Team5/SmartTowns/Data/user.java @@ -7,8 +7,8 @@ import lombok.Data; @AllArgsConstructor public class user { private int userId; - private String title; - private String firstName; - private String lastName; - private String emailAddress; -} \ No newline at end of file +// private String title; + private String name; +// private String lastName; +// private String emailAddress; +} diff --git a/src/main/resources/Towns.db b/src/main/resources/Towns.db deleted file mode 100644 index 2532550d9acf4d8abc21a6e6ed89629908b72a3e..0000000000000000000000000000000000000000 Binary files a/src/main/resources/Towns.db and /dev/null differ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a2946a6f5b8b027552e20be691b7e8f0fe9164d6..95f46c69ab2c6b38e1c520a5b8438c8f87aba0a3 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.datasource.url=jdbc:mariadb://localhost:3306/Smart_Towns +spring.datasource.url=jdbc:mariadb://localhost:3306/towns spring.datasource.username=root spring.datasource.password=comsc diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql new file mode 100644 index 0000000000000000000000000000000000000000..7f91a409f37f850bfc1fdd60269f5699cc20cf69 --- /dev/null +++ b/src/main/resources/data.sql @@ -0,0 +1,11 @@ +delete from users; +insert into users (userID, Name) value ('1', 'Hannah'); +insert into users (userID, Name) value ('2', 'Nigel'); + +delete from trails; +insert into trails (trailID, Name) value ('1', 'Caerphilly Coffee Trail'); +insert into trails (trailID, Name) value ('2', 'Penarth Dragon Trail'); + +delete from location; +insert into location (locationID, Name) value ('1', 'Caerphilly'); +insert into location (locationID, Name) value ('2', 'Penarth'); \ No newline at end of file diff --git a/src/main/resources/landmarkSchema.sql b/src/main/resources/landmarkSchema.sql deleted file mode 100644 index 413ba53c52e76874b569cc795ecd742567fe2c56..0000000000000000000000000000000000000000 --- a/src/main/resources/landmarkSchema.sql +++ /dev/null @@ -1,5 +0,0 @@ -drop table if exists landmarks; -create table if not exists landmarks( -landmarksId bigint auto_increment primary key, -name varchar(100) -) engine=InnoDB; \ No newline at end of file diff --git a/src/main/resources/locationData.sql b/src/main/resources/locationData.sql deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index 59b7fb68099aacbc8ef7857a18452c077ee2210a..0374c292ac614600c422671c9ac6cc2199186ef0 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -3,7 +3,11 @@ create table if not exists trails( trailID bigint auto_increment primary key, name varchar(100) ) engine=InnoDB; - +drop table if exists location; +create table if not exists location( +locationID bigint auto_increment primary key, +name varchar(100) +) engine=InnoDB; drop table if exists users; create table if not exists users( userID bigint auto_increment primary key, diff --git a/src/main/resources/templates/towns/UserData.html b/src/main/resources/templates/towns/UserData.html new file mode 100644 index 0000000000000000000000000000000000000000..3545df540058819df3883482d36f916407e449c8 --- /dev/null +++ b/src/main/resources/templates/towns/UserData.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>User Information</title> +</head> +<body> +<div> + <ul th:each="user:${users}"> + <li th:text="${user}"></li> + </ul> +</div> +</body> +</html> \ No newline at end of file diff --git a/src/main/resources/templates/towns/locationData.html b/src/main/resources/templates/towns/locationData.html new file mode 100644 index 0000000000000000000000000000000000000000..1ff2892209ef8688ee2bbbf58f1ac095e551ae19 --- /dev/null +++ b/src/main/resources/templates/towns/locationData.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Location Data</title> +</head> +<body> +<div> + <ul th:each="location:${locations}"> + <li th:text="${location}"></li> + </ul> +</div> +</body> +</html> \ No newline at end of file diff --git a/src/main/resources/templates/towns/trailsData.html b/src/main/resources/templates/towns/trailsData.html new file mode 100644 index 0000000000000000000000000000000000000000..05fda9a9598db582e7ace6fe8ff19eb3d17deecc --- /dev/null +++ b/src/main/resources/templates/towns/trailsData.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Trails Information</title> +</head> +<body> +<div> + <ul th:each="trail:${trails}"> + <li th:text="${trails}"></li> + </ul> +</div> +</body> +</html> \ No newline at end of file diff --git a/src/main/resources/trailsData.sql b/src/main/resources/trailsData.sql deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/main/resources/userData.sql b/src/main/resources/userData.sql deleted file mode 100644 index 54560790219c59003fb4202f3914f03d66bc1987..0000000000000000000000000000000000000000 --- a/src/main/resources/userData.sql +++ /dev/null @@ -1,2 +0,0 @@ -DELETE from users -INSERT INTO users (userId) VALUES (1) \ No newline at end of file