From bacc97234c6753ceb5845cb96f1a3c41a4e32bc3 Mon Sep 17 00:00:00 2001 From: Rhys Nute <nuterd@cardiff.ac.uk> Date: Thu, 30 Nov 2023 13:59:50 +0000 Subject: [PATCH] database complete --- .../SmartTowns/Data/DatabaseController.java | 44 ++++++++++++++++++ .../Team5/SmartTowns/Data/UserController.java | 29 ------------ .../Team5/SmartTowns/Data/UserRepository.java | 4 -- .../SmartTowns/Data/UserRepositoryJDBC.java | 10 ++-- .../java/Team5/SmartTowns/Data/location.java | 11 +++++ .../SmartTowns/Data/locationRepository.java | 9 ++++ .../Data/locationRepositoryJDBC.java | 28 +++++++++++ .../java/Team5/SmartTowns/Data/trail.java | 11 +++++ .../SmartTowns/Data/trailsRepository.java | 7 +++ .../SmartTowns/Data/trailsRepositoryJDBC.java | 27 +++++++++++ src/main/java/Team5/SmartTowns/Data/user.java | 10 ++-- src/main/resources/Towns.db | Bin 32768 -> 0 bytes src/main/resources/application.properties | 2 +- src/main/resources/data.sql | 11 +++++ src/main/resources/landmarkSchema.sql | 5 -- src/main/resources/locationData.sql | 0 src/main/resources/schema.sql | 6 ++- .../resources/templates/towns/UserData.html | 14 ++++++ .../templates/towns/locationData.html | 14 ++++++ .../resources/templates/towns/trailsData.html | 14 ++++++ src/main/resources/trailsData.sql | 0 src/main/resources/userData.sql | 2 - 22 files changed, 206 insertions(+), 52 deletions(-) create mode 100644 src/main/java/Team5/SmartTowns/Data/DatabaseController.java delete mode 100644 src/main/java/Team5/SmartTowns/Data/UserController.java create mode 100644 src/main/java/Team5/SmartTowns/Data/location.java create mode 100644 src/main/java/Team5/SmartTowns/Data/locationRepository.java create mode 100644 src/main/java/Team5/SmartTowns/Data/locationRepositoryJDBC.java create mode 100644 src/main/java/Team5/SmartTowns/Data/trail.java create mode 100644 src/main/java/Team5/SmartTowns/Data/trailsRepository.java create mode 100644 src/main/java/Team5/SmartTowns/Data/trailsRepositoryJDBC.java delete mode 100644 src/main/resources/Towns.db create mode 100644 src/main/resources/data.sql delete mode 100644 src/main/resources/landmarkSchema.sql delete mode 100644 src/main/resources/locationData.sql create mode 100644 src/main/resources/templates/towns/UserData.html create mode 100644 src/main/resources/templates/towns/locationData.html create mode 100644 src/main/resources/templates/towns/trailsData.html delete mode 100644 src/main/resources/trailsData.sql delete mode 100644 src/main/resources/userData.sql 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 00000000..2bcd14c2 --- /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 a492d252..00000000 --- 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 80e0dc68..419ab099 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 17f15f9c..a1cce5fa 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 00000000..03fff518 --- /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 00000000..ce30cda9 --- /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 00000000..4743ea8b --- /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 00000000..413431db --- /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 00000000..70f7c2d9 --- /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 00000000..40ce5ff0 --- /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 34e1711c..7646aec5 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 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI(J#W)M7{Kv!(&okBxC3BCsFIbbQ7fXrh!BKgp@=kX(*#thV5P-Kk(z`yu3!Nv zUHAgb415hf0s|uxLnjtyX3pnY<VC4Eumt}j#eVMW^F8;wOC&4t&UUTid-kjTakuT; zcf^v=H1WW;g%DZ!&d7K4x-Nr-s37;+NIWadid&oSjNC_&Hue%`B6rRBX@1CkH}-O$ zW;LN60R#|0009ILKmY**=2IZ|LVIqNO4{j;@kM+NqG8u>?;m=Dqr-jI_qwlLRdmZ! z6^rW)r_yxnX60ecu?thj3-*ehEi{kYox?%(Q6XEcH=V~$!>(^O?Ru+Lvs?A*cFS4Q zvs;boMy0W9KXG<f{x+~Ht>$L6E_>N<>dm5FG@ptemSt(DcU4NQfp<Jmo5Xk~sxIt3 z2ruY+n8~HB<z;PnpsrZ!AGG~WzZdN%t{YW{mySvoTz+zBBTc3Tw|XUI-Op>H(|hT? zm6r0J&uyRheN}ctMYkO8Q}6Y(mCtL#XDaQmGTcr~N?7^NXCn7a=&e$aY{^Vn>&vs! zjt1<OqbMmSQQfi@jg)oIn$=KEp<7nF%vLgGt*&ajYOv=t1Mld>>m3BkG?0pl3u7x` z;^0cJ-SyVwsYUf!EeC|BMZZ0~c{Qz8z9(bzJl=?UJO32Ck@a%z4a0hsnA)VrdMv2A zORc@h#SyfWYiVj>7(ud2^ZD&U)(9Yg00IagfB*srAb<b@2q17d0X;Y^y#G&Jt_5cy zfB*srAb<b@2q1s}0tg_0z`O|<<}Z;j&xCnq{x-kPTlVCO00IagfB*srAb<b@2q1t! z>;&YU{Edu!C}Hfun%miAGM@<_)Q}>2Mm<81Sx8!8#Q*<ew@w%^0tg_000IagfB*sr zAb>y&1xEh=zZk>eGh_r1KmY**5I_I{1Q0*~0R&<p!0-RDm}Ulv00IagfB*srAb<b@ l2p|x1fsx<;(=n%D_y{0?00IagfB*srAb<b@2>iDKe*mgrG!*~< diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a2946a6f..95f46c69 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 00000000..7f91a409 --- /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 413ba53c..00000000 --- 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 e69de29b..00000000 diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index 59b7fb68..0374c292 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 00000000..3545df54 --- /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 00000000..1ff28922 --- /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 00000000..05fda9a9 --- /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 e69de29b..00000000 diff --git a/src/main/resources/userData.sql b/src/main/resources/userData.sql deleted file mode 100644 index 54560790..00000000 --- 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 -- GitLab