From 6f32540f7aa1d66cd4bb7f49c48c3d945bbe00b5 Mon Sep 17 00:00:00 2001 From: Dee Date: Sat, 7 Aug 2021 12:41:49 -0400 Subject: [PATCH 1/6] student model created --- .idea/compiler.xml | 1 + .idea/jarRepositories.xml | 20 +++++++ .idea/vcs.xml | 6 +++ pom.xml | 14 ++++- src/main/java/models/Student.java | 89 +++++++++++++++++++++++++++++++ 5 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/models/Student.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index f006a55..5a76f28 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,6 +6,7 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index d97c43d..ff3c4f9 100644 --- a/pom.xml +++ b/pom.xml @@ -7,8 +7,20 @@ com.zipcoder.lab jdbcdao 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + - + junit junit diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java new file mode 100644 index 0000000..c990464 --- /dev/null +++ b/src/main/java/models/Student.java @@ -0,0 +1,89 @@ +package models; + +import java.time.LocalDate; + +public class Student { + + private Long id; + private String name; + private Integer grade; + private String school; + private LocalDate dateOfBirth; + private String location; + + public Student() { + } + + public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth){ + this.id = id; + this.name = name; + this.grade = grade; + this.school = school; + this.dateOfBirth = dateOfBirth; + } + + public Student (Long id, String name, Integer grade, String school, LocalDate dateOfBirth, String location){ + this(id, name, grade, school, dateOfBirth); + this.location = location; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getGrade() { + return grade; + } + + public void setGrade(Integer grade) { + this.grade = grade; + } + + public String getSchool() { + return school; + } + + public void setSchool(String school) { + this.school = school; + } + + public LocalDate getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + @Override //add JSON ObjectMapper exception here + public String toString() { + return "Student{" + + "id=" + id + + ", name='" + name + '\'' + + ", grade=" + grade + + ", school='" + school + '\'' + + ", dateOfBirth=" + dateOfBirth + + ", location='" + location + '\'' + + '}'; + } +} From cebb5c1236cad427f2c3c361b11289ed73f7fdc8 Mon Sep 17 00:00:00 2001 From: Dee Date: Sat, 7 Aug 2021 15:29:13 -0400 Subject: [PATCH 2/6] application run with repository --- pom.xml | 7 +- src/main/java/MainApplication.java | 105 +++++++++++++++++++ src/main/java/daos/Repo.java | 39 +++++++ src/main/java/daos/StudentRepository.java | 68 ++++++++++++ src/main/java/models/Student.java | 54 +++++++++- src/main/java/models/Tutor.java | 78 ++++++++++++++ src/test/java/models/StudentTest.java | 30 ++++++ target/classes/MainApplication.class | Bin 0 -> 4921 bytes target/classes/daos/Repo.class | Bin 0 -> 1299 bytes target/classes/daos/StudentRepository.class | Bin 0 -> 3886 bytes target/classes/models/Student.class | Bin 0 -> 4107 bytes target/classes/models/Tutor$Preference.class | Bin 0 -> 1015 bytes target/classes/models/Tutor$Specialty.class | Bin 0 -> 1117 bytes target/classes/models/Tutor.class | Bin 0 -> 2300 bytes target/test-classes/models/StudentTest.class | Bin 0 -> 1277 bytes 15 files changed, 375 insertions(+), 6 deletions(-) create mode 100644 src/main/java/MainApplication.java create mode 100644 src/main/java/daos/Repo.java create mode 100644 src/main/java/daos/StudentRepository.java create mode 100644 src/main/java/models/Tutor.java create mode 100644 src/test/java/models/StudentTest.java create mode 100644 target/classes/MainApplication.class create mode 100644 target/classes/daos/Repo.class create mode 100644 target/classes/daos/StudentRepository.class create mode 100644 target/classes/models/Student.class create mode 100644 target/classes/models/Tutor$Preference.class create mode 100644 target/classes/models/Tutor$Specialty.class create mode 100644 target/classes/models/Tutor.class create mode 100644 target/test-classes/models/StudentTest.class diff --git a/pom.xml b/pom.xml index ff3c4f9..19fda97 100644 --- a/pom.xml +++ b/pom.xml @@ -26,5 +26,10 @@ junit 4.10 - + + mysql + mysql-connector-java + 5.1.49 + + \ No newline at end of file diff --git a/src/main/java/MainApplication.java b/src/main/java/MainApplication.java new file mode 100644 index 0000000..7c0a5ed --- /dev/null +++ b/src/main/java/MainApplication.java @@ -0,0 +1,105 @@ +import daos.StudentRepository; +import models.Student; + +import com.mysql.jdbc.Driver; +import java.sql.*; +import java.time.LocalDate; +import java.util.StringJoiner; + +public class MainApplication { + + public static void main(String[] args) { + registerJDBCDriver(); + Connection mysqlDbConnection = getConnection("mysql"); + StudentRepository studentRepository = new StudentRepository(mysqlDbConnection); + executeStatement(mysqlDbConnection, "DROP DATABASE IF EXISTS IAODataTest;"); + executeStatement(mysqlDbConnection, "CREATE DATABASE IF NOT EXISTS IAODataTest;"); + executeStatement(mysqlDbConnection, "USE IAODataTest;"); + executeStatement(mysqlDbConnection, new StringBuilder() + .append("CREATE TABLE IF NOT EXISTS IAODataTest.students(") + .append("id int auto_increment primary key,") + .append("name text not null,") + .append("grade int not null,") + .append("school text,") + .append("age int);") + .toString()); + + studentRepository.create(new Student(10L, "Thai", 3, "Sanford", LocalDate.of(2011, 11, 11))); + //pokemonRepository.create(new Pokemon(11L, "Ivysaurr", 3, 7)); + System.out.println(studentRepository.readAll()); + + } + + static ResultSet executeQuery(Connection connection, String sqlQuery) { + try { + Statement statement = getScrollableStatement(connection); + return statement.executeQuery(sqlQuery); + } catch (SQLException e) { + throw new Error(e); + } + } + + static void printResults(ResultSet resultSet) { + try { + for (int rowNumber = 0; resultSet.next(); rowNumber++) { + String firstColumnData = resultSet.getString(1); + String secondColumnData = resultSet.getString(2); + String thirdColumnData = resultSet.getString(3); + System.out.println(new StringJoiner("\n") + .add("Row number = " + rowNumber) + .add("First Column = " + firstColumnData) + .add("Second Column = " + secondColumnData) + .add("Third column = " + thirdColumnData)); + } + } catch (SQLException e) { + throw new Error(e); + } + } + + static void executeStatement(Connection connection, String sqlStatement) { + try { + Statement statement = getScrollableStatement(connection); + statement.execute(sqlStatement); + } catch (SQLException e) { + throw new Error(e); + } + } + + static Statement getScrollableStatement(Connection connection) { + int resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY; + try { // scrollable statements can be iterated more than once without closing + return connection.createStatement(resultSetType, resultSetConcurrency); + } catch (SQLException e) { + throw new Error(e); + } + } + + + //change root name and password to local info + static Connection getConnection(String dbVendor) { + String username = "root"; + String password = "pw"; + String url = new StringBuilder() + .append("jdbc:") + .append(dbVendor) + .append("://127.0.0.1/") + .append("?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC") + .toString(); + try { + return DriverManager.getConnection(url, username, password); + } catch (SQLException e) { + throw new Error(e); + } + } + + static void registerJDBCDriver() { + // Attempt to register JDBC Driver + try { + DriverManager.registerDriver(Driver.class.newInstance()); + } catch (InstantiationException | IllegalAccessException | SQLException e1) { + throw new RuntimeException(e1); + } + } + +} diff --git a/src/main/java/daos/Repo.java b/src/main/java/daos/Repo.java new file mode 100644 index 0000000..5203de0 --- /dev/null +++ b/src/main/java/daos/Repo.java @@ -0,0 +1,39 @@ +package daos; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public interface Repo { + default void executeStatement(String sqlStatement) { + try { + Statement statement = getScrollableStatement(); + statement.execute(sqlStatement); + } catch (SQLException e) { + throw new Error(e); + } + } + + default Statement getScrollableStatement() { + int resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY; + try { // scrollable statements can be iterated more than once without closing + return getConnection().createStatement(resultSetType, resultSetConcurrency); + } catch (SQLException e) { + throw new Error(e); + } + } + + default ResultSet executeQuery(String sqlQuery) { + try { + Statement statement = getScrollableStatement(); + return statement.executeQuery(sqlQuery); + } catch (SQLException e) { + throw new Error(e); + } + } + + Connection getConnection(); + +} diff --git a/src/main/java/daos/StudentRepository.java b/src/main/java/daos/StudentRepository.java new file mode 100644 index 0000000..251f59b --- /dev/null +++ b/src/main/java/daos/StudentRepository.java @@ -0,0 +1,68 @@ +package daos; + +import models.Student; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class StudentRepository implements Repo{ + + private Connection connection; + + public StudentRepository(Connection connection) { + this.connection = connection; + } + + @Override + public Connection getConnection() { + return connection; + } + + public void create(Student student) { + executeStatement(String.format(new StringBuilder() + .append("INSERT INTO IAODataTest.students(") + .append("id, name, grade, school, age) ") + .append("VALUES (%s, '%s', %s, '%s', %s);") + .toString(), + student.getId(), + student.getName(), + student.getGrade(), + student.getSchool(), + student.getAge())); + } + + public List readAll() { + ResultSet resultSet = executeQuery("SELECT * FROM IAODataTest.students;"); + List list = new ArrayList<>(); + try { + while (resultSet.next()) { + String id = resultSet.getString(1); + String name = resultSet.getString(2); + String grade = resultSet.getString(3); + String school = resultSet.getString(4); + String age = resultSet.getString(5); + list.add(new Student ( + Long.parseLong(id), + name, + Integer.parseInt(grade), + school, + Integer.parseInt(age))); + } + } catch (SQLException throwables) { + throw new RuntimeException(throwables); + } + return list; + } + + + public Student read(Long studentId) { + return readAll() + .stream() + .filter(student -> student.getId().equals(studentId)) + .findAny() + .get(); + } +} diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java index c990464..e0378b2 100644 --- a/src/main/java/models/Student.java +++ b/src/main/java/models/Student.java @@ -1,9 +1,18 @@ package models; +import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.Period; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.StringJoiner; public class Student { + private int age; private Long id; private String name; private Integer grade; @@ -14,11 +23,16 @@ public class Student { public Student() { } - public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth){ + public Student(Long id, String name, Integer grade, String school){ this.id = id; this.name = name; this.grade = grade; this.school = school; + //this.dateOfBirth = dateOfBirth; + } + + public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth){ + this(id, name, grade, school); this.dateOfBirth = dateOfBirth; } @@ -27,6 +41,12 @@ public Student (Long id, String name, Integer grade, String school, LocalDate da this.location = location; } + public Student(Long id, String name, Integer grade, String school, int age) { + this(id, name, grade, school); + this.age = age; + + } + public Long getId() { return id; } @@ -59,14 +79,36 @@ public void setSchool(String school) { this.school = school; } - public LocalDate getDateOfBirth() { - return dateOfBirth; + public String getDateOfBirthSQLString() { + String toDate = "TO_DATE(" + getDOBString() + ", 'YYYY/MM/DD')"; + return toDate; } - public void setDateOfBirth(LocalDate dateOfBirth) { - this.dateOfBirth = dateOfBirth; + public String getDOBString(){ + String joined = ""; + int year = dateOfBirth.getYear(); + int month = dateOfBirth.getMonthValue(); + int day = dateOfBirth.getDayOfMonth(); + + if (month < 10 && day < 10){ + joined = String.format("'%s/0%s/0%s'", year, month, day); + } else if (month < 10){ + joined = String.format("'%s/0%d/%s'", year, month, day); + } else if (day < 10) { + joined = String.format("'%s/%s/0%s'", year, month, day); + } else + + joined = String.format("'%s/%s/%s'", year, month, day); + + + return joined; + } + public Integer getAge() { + int age = Period.between(dateOfBirth, LocalDate.now()).getYears(); + return age; + } public String getLocation() { return location; } @@ -86,4 +128,6 @@ public String toString() { ", location='" + location + '\'' + '}'; } + + } diff --git a/src/main/java/models/Tutor.java b/src/main/java/models/Tutor.java new file mode 100644 index 0000000..337cb24 --- /dev/null +++ b/src/main/java/models/Tutor.java @@ -0,0 +1,78 @@ +package models; + +public class Tutor { + + private Long id; + private String name; + private Specialty specialty; + private String availability; //can you add multiple enum fields to a database column? + private Preference preference; + + + private enum Specialty{ + PRESCHOOL, PRIMARY, SECONDARY, POST_SECONDARY; + } + + private enum Preference{ + VIRTUAL, IN_PERSON; + } + + public Tutor(Long id, String name, Specialty specialty, String availability, Preference preference){ + this.id = id; + this.name = name; + this.specialty = specialty; + this.availability = availability; + this.preference = preference; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Specialty getSpecialty() { + return specialty; + } + + public void setSpecialty(Specialty specialty) { + this.specialty = specialty; + } + + public String getAvailability() { + return availability; + } + + public void setAvailability(String availability) { + this.availability = availability; + } + + public Preference getPreference() { + return preference; + } + + public void setPreference(Preference preference) { + this.preference = preference; + } + + @Override + public String toString() { + return "Tutor{" + + "id=" + id + + ", name='" + name + '\'' + + ", specialty=" + specialty + + ", availability='" + availability + '\'' + + ", preference=" + preference + + '}'; + } +} diff --git a/src/test/java/models/StudentTest.java b/src/test/java/models/StudentTest.java new file mode 100644 index 0000000..82923d6 --- /dev/null +++ b/src/test/java/models/StudentTest.java @@ -0,0 +1,30 @@ +package models; + +import org.junit.Assert; +import org.junit.Test; + +import java.time.LocalDate; + +public class StudentTest { + + @Test + public void getAgeStringTest(){ + //given + Long id = 50L; + String name = "Thai"; + int grade = 4; + String school = "Sanford"; + LocalDate dob = LocalDate.of(2011, 3, 11); + Student student = new Student(id, name, grade, school, dob); + String expected = "TO_DATE('2011/03/11', 'YYYY/MM/DD')"; + + //when + String actual = student.getDateOfBirthSQLString(); + + //then + Assert.assertEquals(expected, actual); + + + + } +} diff --git a/target/classes/MainApplication.class b/target/classes/MainApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..6e041ef34f59d7b387118d12d08858a434002389 GIT binary patch literal 4921 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 literal 0 HcmV?d00001 diff --git a/target/classes/daos/StudentRepository.class b/target/classes/daos/StudentRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..e21591f8ccef5a89757666d5462c4ee6215a41da GIT binary patch literal 3886 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 Jgj(?IzX4#04VM4_ literal 0 HcmV?d00001 diff --git a/target/classes/models/Tutor$Preference.class b/target/classes/models/Tutor$Preference.class new file mode 100644 index 0000000000000000000000000000000000000000..d58bd4b0fdc9e8a853719f833e540633e73986e9 GIT binary patch literal 1015 zcmaJ@rPL0)l#-Nof0wev z8I5M2{iBTcbws-8cujh9-#zb~bMJeGDO?U#q+o*+3{T=>oky>Mi9-BfhRA{8R7l0z!0g@Ts4^>1Yu!eh} zAyf8@B46?Z>M|z5{A`wX9F)Uyv*Qw;aO-#)U^WmZyBkv@@2C;J%HJWLq$J@A@k=Cv zL>7Z&A^L+#!h{~ni8#T6b_vGSZkm(H4rnwPQV^yJ&yl0O2sW`yQ6{8_0+t$?Kkr)A AmjD0& literal 0 HcmV?d00001 diff --git a/target/classes/models/Tutor$Specialty.class b/target/classes/models/Tutor$Specialty.class new file mode 100644 index 0000000000000000000000000000000000000000..e031c03a855f0c2a3749e2618698dbc8c055ba1e GIT binary patch literal 1117 zcmaJ>?@!ZU5PsgRTf0&iOc)FhQBk&m3~=~s3mKU+E}4w1bIIZdQ)ZndT}Qf(#Q#c1 zB1WU(vwxKF-ggU@2)4;x@9w#~=k9&eU%$Wo1dv5O0txFX9$-U8LdK?wNo;Yktzb%} z;5J7*R4~JJRzaNW9R;&oKa%m7A#zYF>BX1TYK6Y_W3y!$w)c@iD?5(q7Hy-~GkXkk zl}`7aY44i%04TZti@w;apcWr$zVsGMprNZtpFCW+`)+cCVpOO=92 z9#HZvdz75^l`c8`PX0QEyR>Ol@Alo6`NHCps^TOz_>3Cn`1vO^Ji${L&xq62r=?*D zISqHQqG1Zt8fLhNb1{o)hKau$<75~@ExYSbv*~2YN3?o)WVSpar1{%0?D#h!u1?OE zb#Vrlo8$_cbQveUm)IV6q`T*5DtM;oGWn>z3~t&Jq_xP>6SfSg`i zJVW@i2>aVDlV_MN;~uAu`vS8H1xc)qh#b=({HcG3)Qri&GbpEs2t$>GF(wQxB#d!k zOoW9Im48rDa6s3qDGe~DH$wxA>&@^0QT-H*a~iHdCDOn+{V+5lJ>-!>ntTDQ;Rb1y LkPs-JaWSxf<-l zcH8ak`%b^__S5)6L-x4qwmiole6KIb)IrDr^JmtC(sKTUL$V)xziP!c94GquB z5$}pCvLDe*+6mqN-_3}}jZ=oZ&nPs^HNCcbbai>=_D-BLUnQW^a{N=L=gEF_Xbhfv zeGRh{&Pi@wxPwFHGhg0__#b7|><7Yy|3oDKX{sKnl;4<89w$9b_29x{)WAqCCTyA* zCqP4ycBa>c)*^RT%G0ij;W--Kov7s;)hAD8cqh!MhLyPYP{>5hP(M7-up09p%C-d{ zGw1|yvWt#8SG|^d;7M_Es_C|*d2QUqmo^G0+E~G=ja#^F<26~8a7V++6iETI!BFoVK>H zMYU)Js1{N@J$vD{1_X=VSPKK!urwiwR4Y}Mq*zY3>$cf#n@Rl;>A#71nf!_S0mgQ; zU*q>z%lp&CxWmuX0zYLYbjdzfx)eaotbv+Y1~s!1oNZ_<*6SSCxciy+EzYINOK6q* zL+F+25UI-M5Jsh73}IFZ<`CAe%ECR4xB0aLZot4IvRJ|_ZjxY`-U}>v5pPi12y9{< zW$tKQv1w{0bh=szUrMcn&`>L3G|9Gs%80PWSv1YcZ_t0?LWf{j>hP9wCm~4+0(Tnj zqskKruff~m%u=C+LFCk_xVoz>ECsj5z}5(u<-*p;Rum)^2f3FBQp1}`AgMUW20JHWNYK;=e8-BSswL0YM&40g-YE$fLxJm~oIti6HMJXT*$yJSNEd zQ$VC!1ms=3$5F~0EsYfisV9Owrul@7L>fKlkzIo9O#zW+6%c-FMz(%pA4xBs{(U^5u$3f>)&0}$=$Y+|z@=oy|v<0(| literal 0 HcmV?d00001 diff --git a/target/test-classes/models/StudentTest.class b/target/test-classes/models/StudentTest.class new file mode 100644 index 0000000000000000000000000000000000000000..83515c8bf87bf851a874fbc8c45504f379fc96f5 GIT binary patch literal 1277 zcmZWp?M@Rx6g^wo?ot*ghciTZM; zCrDB2O(8N?w=`aA;^TW!_5_uL&9c`p=`Q}ZVM{MZR^4KHS=)9z)3Y3#*+mPETQx2k zER)g7EK+nDZdvSGvNF+*tQVwy9Z?La$mrO>CUYyDn-(<{P5aDoD=MDp*urxK1KrY8 zY)eK~(svY0mkv*I+0tGzv9y>@8;i?EI-QuGOdN9<2M0zjmq_W@MNY+@j(xn~8+AKu zmOR=n>EY=G6KCKyBmg}7t-xQh* zc5t#Y>%XlRZNGfBUKcKFrHnN_)nE10QL-qILCN0 zxGG#jv)52Q`Pajo!#=2CgnPYdfKiO`#570__~f5Z(Mv2lg1`-eg;?l7-HL@X!6EfW zINEmuH52*@?Rai};s(9(U_5klg2$_LH=fNACn0A iKBw@22`@3)G;jD>;#cY+cN!j1i!8;ApLl|E0LkA+(IfQ$ literal 0 HcmV?d00001 From 4f26e556144fa8f657c40a4367f19d0796babaef Mon Sep 17 00:00:00 2001 From: Dee Date: Sun, 8 Aug 2021 14:55:29 -0400 Subject: [PATCH 3/6] date field added and formatted --- src/main/java/MainApplication.java | 1 + src/main/java/daos/StudentRepository.java | 42 ++++++++++++++++--- src/main/java/models/Student.java | 18 ++++---- src/test/java/models/StudentTest.java | 4 +- target/classes/MainApplication.class | Bin 4921 -> 4945 bytes target/classes/daos/StudentRepository.class | Bin 3886 -> 4063 bytes target/classes/models/Student.class | Bin 4107 -> 3823 bytes target/test-classes/models/StudentTest.class | Bin 1277 -> 1252 bytes 8 files changed, 49 insertions(+), 16 deletions(-) diff --git a/src/main/java/MainApplication.java b/src/main/java/MainApplication.java index 7c0a5ed..b57d281 100644 --- a/src/main/java/MainApplication.java +++ b/src/main/java/MainApplication.java @@ -21,6 +21,7 @@ public static void main(String[] args) { .append("name text not null,") .append("grade int not null,") .append("school text,") + .append("dob DATE,") .append("age int);") .toString()); diff --git a/src/main/java/daos/StudentRepository.java b/src/main/java/daos/StudentRepository.java index 251f59b..0545ab2 100644 --- a/src/main/java/daos/StudentRepository.java +++ b/src/main/java/daos/StudentRepository.java @@ -5,6 +5,8 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -24,14 +26,15 @@ public Connection getConnection() { public void create(Student student) { executeStatement(String.format(new StringBuilder() .append("INSERT INTO IAODataTest.students(") - .append("id, name, grade, school, age) ") - .append("VALUES (%s, '%s', %s, '%s', %s);") + .append("id, name, grade, school, DOB, age) ") + .append("VALUES (%s, '%s', %s, '%s', DATE '%s', %s);") .toString(), student.getId(), student.getName(), student.getGrade(), student.getSchool(), - student.getAge())); + student.getDateOfBirthSQLString(), + student.getAge())); //age will appear in table but not in resultSet; } public List readAll() { @@ -43,13 +46,13 @@ public List readAll() { String name = resultSet.getString(2); String grade = resultSet.getString(3); String school = resultSet.getString(4); - String age = resultSet.getString(5); + String dob = resultSet.getString(5); list.add(new Student ( Long.parseLong(id), name, Integer.parseInt(grade), school, - Integer.parseInt(age))); + LocalDate.parse(dob))); } } catch (SQLException throwables) { throw new RuntimeException(throwables); @@ -65,4 +68,33 @@ public Student read(Long studentId) { .findAny() .get(); } + + public void updateId(Long id, Student newStudentData) { + Long reset = id; + Long find = newStudentData.getId(); + executeStatement(String.format(new StringBuilder() + .append("UPDATE students") + .append("SET id = %s") + .append("WHERE id = %s;") + .toString(), + reset, + find)); + + + } + + public void delete(Long id) { + Long deleteThis = id; + executeStatement(String.format(new StringBuilder() + .append("DELETE * FROM students WHERE id = %s;") + .toString(), + id)); + + } + + public void delete(Student pokemon) { + Long find = pokemon.getId(); + delete(find); + + } } diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java index e0378b2..41d5a19 100644 --- a/src/main/java/models/Student.java +++ b/src/main/java/models/Student.java @@ -41,11 +41,11 @@ public Student (Long id, String name, Integer grade, String school, LocalDate da this.location = location; } - public Student(Long id, String name, Integer grade, String school, int age) { - this(id, name, grade, school); - this.age = age; +// public Student(Long id, String name, Integer grade, String school, int age) { +// this(id, name, grade, school); +// this.age = age; + - } public Long getId() { return id; @@ -80,7 +80,7 @@ public void setSchool(String school) { } public String getDateOfBirthSQLString() { - String toDate = "TO_DATE(" + getDOBString() + ", 'YYYY/MM/DD')"; + String toDate = getDOBString(); return toDate; } @@ -91,14 +91,14 @@ public String getDOBString(){ int day = dateOfBirth.getDayOfMonth(); if (month < 10 && day < 10){ - joined = String.format("'%s/0%s/0%s'", year, month, day); + joined = String.format("%s-0%s-0%s", year, month, day); } else if (month < 10){ - joined = String.format("'%s/0%d/%s'", year, month, day); + joined = String.format("%s-0%d-%s", year, month, day); } else if (day < 10) { - joined = String.format("'%s/%s/0%s'", year, month, day); + joined = String.format("%s-%s-0%s", year, month, day); } else - joined = String.format("'%s/%s/%s'", year, month, day); + joined = String.format("%s-%s-%s", year, month, day); return joined; diff --git a/src/test/java/models/StudentTest.java b/src/test/java/models/StudentTest.java index 82923d6..2159914 100644 --- a/src/test/java/models/StudentTest.java +++ b/src/test/java/models/StudentTest.java @@ -8,7 +8,7 @@ public class StudentTest { @Test - public void getAgeStringTest(){ + public void getDOBStringTest(){ //given Long id = 50L; String name = "Thai"; @@ -16,7 +16,7 @@ public void getAgeStringTest(){ String school = "Sanford"; LocalDate dob = LocalDate.of(2011, 3, 11); Student student = new Student(id, name, grade, school, dob); - String expected = "TO_DATE('2011/03/11', 'YYYY/MM/DD')"; + String expected = "2011-03-11"; //when String actual = student.getDateOfBirthSQLString(); diff --git a/target/classes/MainApplication.class b/target/classes/MainApplication.class index 6e041ef34f59d7b387118d12d08858a434002389..9a0400217058de559d626f6f7ef216ca23a331ce 100644 GIT binary patch delta 2018 zcmZvd2Xquw6o$Xqoy|-(lR!4KB$QPlz$PJ7=^X+Bi9k?{6b)o)hD1_mmQ_F$L_kKc z3l@ysgy<$A3MdvtEU1Wry^Fmo#{=FsyR3MQbCP-Q-MQtz|GoEZW5&UZ(EbxUcLBZm z%gbo4^fHQ&$yI8-+F*qj4=YVpsq-}^t4*#oxXw!gSDLI*>spiRP1c#*V6xt1gULoE zzR_TlM;xoi>&50Klg(bXaI?uRUT)`?!lLnJUlbt3_ zUY_DAnH?%F zo8=!he9Gu7jrgLuLI3>H%B}+~Ugb57q=jY0!IFxcg37AmU}>en>lO!jLqnf3uV}u( zo9g(MhEY&dI;X6>*x-=G+Z?vYHEoj|9sxK|BfplNnWaDV_gysniw5z9mm<~JeXN5T< z%$c>~!G(&NPm0|msZVGEshmq1lko{_ZKcNTS%Kd{A-69npM&2(mn%bBtl2J;Lq5{ru|ilEUZIzC{Vdr+W} zE}G2X+JN3jR~LB!kF(|n;u=FrFhCcEng|s7GV2jO6AJ6GeAz;AdYEoPbC{e{((WP^ zG8Or!NqdMy>Hk;SQzWT+Of3Ab(zNQ671bn8P_#(2Q0LvX4l$e993y53%_OUA8TD?Y zkV87%g{2;hq^B^^i!!+vR?~+yB3mbVo9HjredW68$5sY791amyQdq_;VaX*P7BO3P zZt*jZV%g~;-AFLR90|WAO0jChZOj!F9AcBu|Hh>qXTu2LH(m&qDUT2=fg|NkkCnTZ zi>Z>@zZH*UmPqqhW@&;7hDddXO2tRed=kS*X1Fxq$p0yQ@@b_{kCi^1OJb!ra7~Ot zli63$>~6`ap+0VE@)gC|(atjkL~;y9D*=EEqAsIoN-ri$Y@ZCB8bQ^3zGz(4&Zpw) z(sHE^Tc!|OCOenIQ8L;|ao{$%RMXI$J`AbbG0M|n;Ymg7>pOdbudk33>8^g#76JM9 z^;fR}ktWH{&dh3HV9fwsVNcbg;5!Pa%ozA?(ig}SxMc?8WD1+f45r8wwvl;hCllkR zFeGK3CMMIRIc7Ln^%e}-a)qct(iIviXanejxvU7=T3X5gucJgbZ^2-M9f{gR9=sG;Qp1Kbr sRVfyoxuO-6#O6p+^Bnx@Vr(W=S;lg)QbRA5&o{U%UOrqdM;BN81K5&nNB{r; delta 2045 zcmZuy30PEB7(H+1&D_VE2RMTWI1-pjF$0boiW|6Mg+iv5QC1?1im}AzQrWbarI`ya zE!(urY!9S{K}v12(l*<)%=SIY_P+f3vU6vKvHE%++~vRb{`dUnKmVQmS)Eydy?^c4 z2_O%@>zIh8Iws&s4FTC-C2+M48?MoCt(-5@aGi$b0@v$sV5x>1WWPegN)0z^Sf$}6 z4XdSXjlfzPy~TOBwJ_sM3P!2KE?(2-Y{rtDD$UdAg55^Cxy{nd@W=}pa*{@NyiR}H*|*A=KU=9gCq?3dFw z6o~2NwR7tlDh1v&@D|=SP=t339Kb<=cMZIULk8Z*VSx_}e29+>T!LzWj}6SgCkm1m zlrJpz5umxx-Z#DopBnfKpBwlBUz&f|Gt!Ijm4f(bb&E1$xi8w7qb@H2i< zkl1~Bbj850_^o}mc1)c$fm)NF28HoVVtYDgKK2TGo2LUx8wVDg!PXu&#^FqkjmQQR zV=`xPn1T{oc$nvOSZTY`48|9a4WefVT22>|%X*?$2&t|#dkDQq8ARU`7Z$^179|V~6eEr9U6=|t8j+5r$OwbTj9i3LoD~Mq%pGSFfeY1` zhUtW@k^XZcz!2bW2`t4E!pS8$-cIzhptYn61IltbkhM!fXI$~<&uubZ7gVeKKWgO8r&L;x-rQib0qRR_8CUGSK7xBc!m>of*Obz=0 zHd{w~I&q4EjacbXJ8`N7B_3P2FZI~NePEIFL9}q=f2@OPNmFBHa=%PbwjFQWhWIIx7O$kG4FO3^3)aVoDMTVIIjs3y zBw--4;^W#NJ{W_^!w}T*fmqI`Yz1wrxUU7nd3qQ&ARn7BBFteSSxLeYl#?Y3J=9|k zM^^foj|z@dTGyfyekcJRj8H6rY{p#7V=swKfchsa$}y}NPk!S_Fv~rf?p4uryJP7d zV!=#?b|T|#;grXtM=Y}5L?YU7kYP{Y_Xn}|vdl3~_r7G)Gqd=Vm z!y3sUPb8t1BTJY#CzRuKU=^rSSnCmS^688MJV1c*vV7Oj zDXw7wG8U0sKDFZEziYT`MnsfTn(NI8VPxw_Rf11bqv-n+ls87~K#Bz{4J!-N&eBX| zVJ5LOQ&~jmETc@8P=7M$W!dDCJsDIUG34?!3CQY_eC4BoOQ4fHz5}wl>{MJ6M;0DV zLNiC!aD1sUJ}*>(g|WZxF!^&44RbMfOG%}1q(CNjVO$w2Z9KIv$(-e& z(8h2e`?1l!`;mxbrGjg7xmwA<{0wSdH~{%bCNe9Fsq=_nDTh*l%i_3jIZYN^@i%mc BZrA_- diff --git a/target/classes/daos/StudentRepository.class b/target/classes/daos/StudentRepository.class index e21591f8ccef5a89757666d5462c4ee6215a41da..fa195c8499395e9ea950b6d4d07bfa72efb90ed0 100644 GIT binary patch delta 1686 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 NDUYbeERYsD`VTFX)(-#x literal 4107 zcmcIn`*Rdk7XCW(>P(t2bOWk;Fx5o|DFrW+u*NRz_JFxiXrQCKtne9BsH@A}{?V*?!(cK_&|(igA>1 zS(+=-luazg;Ki|oSuSox@iPucLZsH9S zZ^rPJfsm7P4H#nvTJl)~iSbL$vXd@2#aw#4RLmVP5H30kG_eCa8LymIdy!n($#SzJ zusK%r+?-qH$>`$je5q70(3W*PcXIAXzU<8#=+wque!(TitWy}}F3rsXCtki(y1%X zc5)y9=L;*cs5d+Q15%F0c=WVV-p0DaRqe%iTpM%-9Ryy;q>B?;pq+I-Di2G|(TQ)e zDd?qQAxv87CgUr)mG+f!7uQ9)zOXY-jB9Ml*DJ|}0ZU9Kk5tz$m8f9GBYe$u$_&p! zsVEr{$~xB!tjl=L?DG@OWu;?gXAE!C7hN2d9Bt!3(nV)T8;R6rrdO(9#51L(@~nG2 zFZp5l+TSBtZQ%htXkj-7Eev6gg*5hBxKBn8;Gl*3u}?!0SI^u$DZbhLlK!g*On4DVX_18!P)Pn!2} zlid1uE~fYDfBj6?8q(yuUCF)$h>=ya(LqU=0-2=hYs0%VHR)>m8eQnUWF|8ED`pD9~ zj?$PADNQ+rB|f{%N1bbvb86ARhFWZWVbjO5*iOzF*pwU#Qm9Cu(wi%l7aY&PBTZPJ z4|MsJrhjz zOfU8wFeD+_KE&BR_DmE+Qnz7zrOX~?8>d?kD2#jX2uGGS!lO9AnK(GeRvcWXWrTf? zI7sbYK}%|I1)@11yE?mr`1fKxb}HNveWr?= zsNyE7xQQxmLTVRri6XU&h!T$xpTTwdigC}@47ww?VWzsHD`;)xkmL`e0c_wSN`z19 zQ&kRjm4jX7U{^WVRSve#frwH+i7sp&TRR?|j7PkY%MjzShw<3^KgL5ODe*Xj!#;yF zdo8eAX!(*CZGi|(Xo~upiR%cC`iDnoEkcYcVbw@$c|Js_hn0s-+Nv77s2@B7qd4aK z3K9u55;@S6$Z?!#MkLfoa)r?5Ek;n-WIk^TA zNgE+D-ZUbSMk1%05}9ZokwA{?r=7cTt3;;!XWse^+NN*Ave&JmJ++GU z?Cb=aRcsjFU1O**GOQqH0~lNV=kKMrNgsp14v54$Wt<};sZ-zE_IT2}$hqTixxI@Egy_hhESTT~b63`>6p-Q%BQS=sNhdw$MvqT+J% z&spxUd;hzM3PVWc(ETjSz%wjp(<~+DSW3?`B+s&_T;MBT#FKcA|50=B5@zrjTzrRl z6)s(7zxTrx!d*O}!qtXVo=Gu$9rywnjzaYJF9tcqa`zOmIuZVft|Ku_#qhLYFo%-^ z+Zf?zs_H)Fzh#F6^$r-dt*h8}a5JOU_<#%i02Bic*x@s3=R-*$5s^$+9+0I^=JKVw zh1QxYT}ZAdH;rGZbIsKnsKi=HO9WgF5Qzo~iPTg9<_}7?^2PgrHxwedidy?bt*maV z*lzzyk3;Md{j1nv->VnGvbj@_Bh}4adVylxZqr)4v{p6~FY`Es-+0v*0$0uXL=F6! Jgj(?IzX4#04VM4_ diff --git a/target/test-classes/models/StudentTest.class b/target/test-classes/models/StudentTest.class index 83515c8bf87bf851a874fbc8c45504f379fc96f5..44e2a75544ba03144dfb897e6b216a1f57a58087 100644 GIT binary patch delta 31 ncmey%`Gj-AN@f>-r;TgO8M(QP3=9o*4UBaS4L7qhePaRusYVG# delta 56 zcmaFD`ImFTN@mCO)QxM*8C8@+{Nr65LtHh~jSLJ8^$m>m4Gq Date: Sun, 8 Aug 2021 19:23:03 -0400 Subject: [PATCH 4/6] dao and main app functional --- src/main/java/MainApplication.java | 17 +++++- src/main/java/daos/StudentRepository.java | 61 +++++++++++++++++--- target/classes/MainApplication.class | Bin 4945 -> 6011 bytes target/classes/daos/StudentRepository.class | Bin 4063 -> 5916 bytes 4 files changed, 70 insertions(+), 8 deletions(-) diff --git a/src/main/java/MainApplication.java b/src/main/java/MainApplication.java index b57d281..04511de 100644 --- a/src/main/java/MainApplication.java +++ b/src/main/java/MainApplication.java @@ -26,8 +26,23 @@ public static void main(String[] args) { .toString()); studentRepository.create(new Student(10L, "Thai", 3, "Sanford", LocalDate.of(2011, 11, 11))); - //pokemonRepository.create(new Pokemon(11L, "Ivysaurr", 3, 7)); + studentRepository.create(new Student(11L, "Tyson", 6, "Kirk Middle", LocalDate.of(2009, 4,17))); + studentRepository.create(new Student(12L, "Amira", 1, "Sanford", LocalDate.of(2014, 1,3))); + studentRepository.create(new Student(13L, "David", 3, "New Castle Charter", LocalDate.of(2011, 3, 27))); + studentRepository.create(new Student(16L, "Kassidy", 10, "Ursuline Academy", LocalDate.of(2005, 5,20))); + studentRepository.create(new Student(15L, "Meadow", 6, "Talley Middle", LocalDate.of(2009, 12, 13))); + studentRepository.create(new Student (19L, "Arden", 3, "Hanby Elementary", LocalDate.of(2011, 10, 1))); System.out.println(studentRepository.readAll()); + Student arden = new Student (19L, "Arden", 3, "Hanby Elementary"); + studentRepository.delete(15L); + studentRepository.delete(arden); + Student kassidy = new Student(16L, "Kassidy", 10, "Ursuline Academy"); + Student david = new Student(13L, "David", 3, "New Castle Charter", LocalDate.of(2011, 3, 27)); + studentRepository.updateId(17L, kassidy); + studentRepository.updateBirthday(LocalDate.of(2010, 10, 10), david); + System.out.println(studentRepository.readAll()); + System.out.println(studentRepository.read(17L)); + System.out.println(studentRepository.read(13L)); } diff --git a/src/main/java/daos/StudentRepository.java b/src/main/java/daos/StudentRepository.java index 0545ab2..c844fb3 100644 --- a/src/main/java/daos/StudentRepository.java +++ b/src/main/java/daos/StudentRepository.java @@ -69,12 +69,12 @@ public Student read(Long studentId) { .get(); } - public void updateId(Long id, Student newStudentData) { - Long reset = id; + public void updateId(Long newId, Student newStudentData) { + Long reset = newId; Long find = newStudentData.getId(); executeStatement(String.format(new StringBuilder() - .append("UPDATE students") - .append("SET id = %s") + .append("UPDATE students ") + .append("SET id = %s ") .append("WHERE id = %s;") .toString(), reset, @@ -83,17 +83,64 @@ public void updateId(Long id, Student newStudentData) { } + public void updateSchool(String newSchool, Student newStudentData){ + String reset = newSchool; + Long find = newStudentData.getId(); + executeStatement(String.format(new StringBuilder() + .append("UPDATE students ") + .append("SET school = '%s' ") + .append("WHERE id = %s;") + .toString(), + reset, + find)); + + } + + public void updateBirthday(LocalDate date, Student newStudentData){ + String reset = getDOBString(date); + Long find = newStudentData.getId(); + executeStatement(String.format(new StringBuilder() + .append("UPDATE students ") + .append("SET dob = DATE '%s' ") + .append("WHERE id = %s;") + .toString(), + reset, + find)); + + } + + public String getDOBString(LocalDate date){ + String joined = ""; + int year = date.getYear(); + int month = date.getMonthValue(); + int day = date.getDayOfMonth(); + + if (month < 10 && day < 10){ + joined = String.format("%s-0%s-0%s", year, month, day); + } else if (month < 10){ + joined = String.format("%s-0%d-%s", year, month, day); + } else if (day < 10) { + joined = String.format("%s-%s-0%s", year, month, day); + } else + + joined = String.format("%s-%s-%s", year, month, day); + + + return joined; + + } + public void delete(Long id) { Long deleteThis = id; executeStatement(String.format(new StringBuilder() - .append("DELETE * FROM students WHERE id = %s;") + .append("DELETE FROM students WHERE id = %s;") .toString(), id)); } - public void delete(Student pokemon) { - Long find = pokemon.getId(); + public void delete(Student student) { + Long find = student.getId(); delete(find); } diff --git a/target/classes/MainApplication.class b/target/classes/MainApplication.class index 9a0400217058de559d626f6f7ef216ca23a331ce..055e20738392ab057ef9c4cf0b91967b1f638870 100644 GIT binary patch delta 2988 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 C31~6^ diff --git a/target/classes/daos/StudentRepository.class b/target/classes/daos/StudentRepository.class index fa195c8499395e9ea950b6d4d07bfa72efb90ed0..0505dd27d031d1df63365e0732ac74e56adc1024 100644 GIT binary patch literal 5916 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 PZ%M-+Bm0lzZrt;KprxGq delta 1147 zcmYk4`EyfM6vsa=ZE{~;E=@|Yo$5I4Fe55eo-I{G1Z|5OwzgVDtwnjzP+HT5CNC(0 z7En}hqh7HtRdL^NtyYVQxC`#$GUJT;tK$#;1B{O6#tKX(-*fJ{=lea&ePeTeuNmI| z&+a`yBR_k1bj7LTDn++P30*GBti9Uh8kgnP4HPRps#$5F$3oh|Dhs_9R(tf(?}^H_ zE*WbF6oVc|(Ul;}8Vf^;oJXEepq+xpTCTHjy~jFkuqx{lY~V)4O^RWUnQXK|n{06N zbZPeX1Y6l=;SP^Gxyy>(t++?AecW}th#FDcD{NC;veC?pb|-v{=49qLRGHu0Dzh^> ztK>d*n0?WuP4_eEkm?WC27V?O?DgAM^ru&bng@7L^AMw&hZ)m6V!cN#JjR$}r{-~< z&^*agW_j#{RZsJbLq$=g5cXyKrd%#q*V>m46(gEwc~0{@FF2G9WP8$?yx$oXdeVb( z`=VwSFKJ%p6~(KX*Ld9?#uaa9-ef}K^OlUGd7DY|S8QIJ&u-0`EY!TiyV81dHXG){ zT(G7s9j?yyCPm1?7d-*`|q2?n#)_lUJiqABkvrn^M6kFUjGwJ?Pe#8bk z!(88B@Ayc3vtzcqm8K$bFwPfzX&>RM@hTm2X2jA%g&>nxe69J01Dd5=Zh~oz5q>nI z)BcF?li5_(dTgD1QVu7{KVsJ}PZty4=M=$u^Jm#H^BW{qCLb1*Q_6JWR4`XgmBK*S zjhrghdY13V?=}4bBeQVn5v~Ha4zRbr6dEK&jnI#iBzzC{};JXBCQgsp!9E&s)jbjMF&~dtZ0wZ zAvX~&mh4OD6s$LU%j<{j7LJzMNH?X@M^ZYNA+@WedX2;m&s=+G=2|Z0GMtoWU(PBC z+s Date: Sat, 14 Aug 2021 16:17:58 -0400 Subject: [PATCH 5/6] student changes --- src/main/java/models/Student.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java index 41d5a19..defe706 100644 --- a/src/main/java/models/Student.java +++ b/src/main/java/models/Student.java @@ -34,6 +34,7 @@ public Student(Long id, String name, Integer grade, String school){ public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth){ this(id, name, grade, school); this.dateOfBirth = dateOfBirth; + this.age = getAge(); } public Student (Long id, String name, Integer grade, String school, LocalDate dateOfBirth, String location){ From 1a4674893ce0f84dccec2177d650be9765b75dc1 Mon Sep 17 00:00:00 2001 From: Dee Date: Sat, 14 Aug 2021 23:20:42 -0400 Subject: [PATCH 6/6] student age added to constructor --- src/main/java/daos/StudentRepository.java | 4 +++- src/main/java/models/Student.java | 20 ++++++++++---------- target/classes/daos/StudentRepository.class | Bin 5916 -> 5977 bytes target/classes/models/Student.class | Bin 3823 -> 4138 bytes 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/daos/StudentRepository.java b/src/main/java/daos/StudentRepository.java index c844fb3..d79a029 100644 --- a/src/main/java/daos/StudentRepository.java +++ b/src/main/java/daos/StudentRepository.java @@ -47,12 +47,14 @@ public List readAll() { String grade = resultSet.getString(3); String school = resultSet.getString(4); String dob = resultSet.getString(5); + String age = resultSet.getString(6); list.add(new Student ( Long.parseLong(id), name, Integer.parseInt(grade), school, - LocalDate.parse(dob))); + LocalDate.parse(dob), + Integer.parseInt(age))); } } catch (SQLException throwables) { throw new RuntimeException(throwables); diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java index defe706..b5d1030 100644 --- a/src/main/java/models/Student.java +++ b/src/main/java/models/Student.java @@ -12,14 +12,15 @@ public class Student { - private int age; private Long id; private String name; private Integer grade; private String school; private LocalDate dateOfBirth; + private Integer age; private String location; + public Student() { } @@ -28,7 +29,6 @@ public Student(Long id, String name, Integer grade, String school){ this.name = name; this.grade = grade; this.school = school; - //this.dateOfBirth = dateOfBirth; } public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth){ @@ -37,15 +37,16 @@ public Student(Long id, String name, Integer grade, String school, LocalDate dat this.age = getAge(); } + public Student(Long id, String name, Integer grade, String school, LocalDate dateOfBirth, Integer age){ + this(id, name, grade, school, dateOfBirth); + this.age = age; + } + public Student (Long id, String name, Integer grade, String school, LocalDate dateOfBirth, String location){ this(id, name, grade, school, dateOfBirth); this.location = location; } -// public Student(Long id, String name, Integer grade, String school, int age) { -// this(id, name, grade, school); -// this.age = age; - public Long getId() { @@ -118,17 +119,16 @@ public void setLocation(String location) { this.location = location; } - @Override //add JSON ObjectMapper exception here - public String toString() { + @Override + public String toString() { //add JSON ObjectMapper exception here return "Student{" + "id=" + id + ", name='" + name + '\'' + ", grade=" + grade + ", school='" + school + '\'' + ", dateOfBirth=" + dateOfBirth + + ", age=" + age + ", location='" + location + '\'' + '}'; } - - } diff --git a/target/classes/daos/StudentRepository.class b/target/classes/daos/StudentRepository.class index 0505dd27d031d1df63365e0732ac74e56adc1024..20c9145e5ff6709eb80ae2962ea7343698427600 100644 GIT binary patch delta 1623 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 H!-jtWnhr8# diff --git a/target/classes/models/Student.class b/target/classes/models/Student.class index 830d4a3f742b669e5fa356ad75fb1e1c95aca162..fbc9992099ee47dc318e56477845d9553b50ac21 100644 GIT binary patch literal 4138 zcmcgu`*Rdk7XCWZGu@eKLg*Ms0!R=8$&e64d|*gi0;s_W5u?$7ik(a+Oq|TbnGT5J zYklm)xBF0c*WIeEvi!}`DiSCyvG~bM85(=ldVN zz6RhR{+oo0r<&1=vobs_gD1mGlEbV>S&@8^=0uto>6}P88w*K1gS-rjG8AkSEi5JR zEJ{g~5!hI^ao)xSIejjPi+Em!7c5*#Vk@4q@uJKx$?&p`S7d(G#vg6GX5)1mZ`gQK z_Woqy&jy-uSp%(^1@F8!nD+|vgPCGse#n4X@D_aoZscS#DCN{ye7@vmdDs>?94iF= zykFwYM0xgHv6wfI%6fr6F*lkk1?LR3Yvmxf=+nlmmp{f+s>i%}LfLt41-W8@_Yda^ zxnP7Ry?s+8acmajV>EiesV7ZkBj`b{lFys9`VMxXt?j7CBkpZ9|? z=Ahf#7hx4jVdShoprzs~0NH5iq!Ff|Dh zs%(y;R5XN1Ghrsfv~Q+ZNOm*yTd^r(hl~b-@yR(IT#e_Ach?5$88QC#{&)y$iYDzc5u6# zPT-gUSoo`hxA3-ucVu`MZyQMVln3_fA8WJLYbItE{Mo?5dk)^m2lT_ihxi-AsdTdg zJuGFBD_3nT_mmy{9sjWKPX{02V+Wszku5b`?d0fkE}!)o!&K@x z+uto+Zg`KZKUHhh*@nruzgxGl;XMXg`nw~ojHikIZgwpSPJef$aS6&9i9pNR*0aXp zO7zB~r|fgtxTh7YIMlz?+{_50iozYxLK3wWhzV z_vrd?*vXH#%g?`sCMg|CO;SB-W&x?0HKb-%keXRPYG(CtZi69}$MH_CZs*KuLOgv1 z##c)1E{;jU0v#~XiMuH|S_y}64_5*(#8CiVp=O+OmjI;quAnL1zk*nLU=oLr0ZEN0mcIl|zR# zEQQn|4U7CGHp5jm2|g6yYBrtmD@dk06Ki<1C|~-J;$v>21&Q_p`c{>LTjk(ZIk;60 zZk2-@a-cM;#{vQMFrcArtO^I*ePRF)gMcd@G zxm`{1c2nl7xGD2F&MW=hZu^ZC$19MVZ=|`)-SW#SDhx4IEC<+^fz#|DXIQaMu$Ml` z&U%(f{xmZ180i@-V-}Z?#s4sm@35f4rTgslFkCTQ!$T@uDXiiYZ#5C=3rtdq5$`iR zLdnFVwABvtM?%LfOj&r$Fj%a;eLEOo{!!C$W*+IOWJb8>eNY;pt4eK!eXkh$JE% zLt2*@=ASN(^2z&@9tx52H`qFT1>4;1tGJn@npUyH?bdRPQ|q2p>~wF@8>SrY(sI0d qc&pxEGVXADwA?K6ZY`%OimfjaY889x-M$oYyBv}>m`Z4m{nlw`1e|ti$FKdP+CK08Hpvo0{nCEmcfP;pecp4!pMU-O2*7rH8$}FftFZ~^ zWO!AE^D4-l+M~G zW~RpM{26O3llc%0-Wh z*`o8g5~%kB_zOY`!b4fNY6%(h1 zlx`-RlamV#hKLOJ7tb%}m~-?;@P=*WHH4;eS;^r*(z>BxS;Dc#uN=3ox|zp%((x9t z2ysBFs)h?maFx?FBvRT%oLoUiG?AOhkK2dRlF^2jty`oH4Q#{n2HMbWAdU_Lo#-;K zMONFe+dwzA%4&~+=j3b%2Q)y(+XmjjJp=E`@E-1Ih;Ewh+N%Co7^M;)9=mLhJ38Js z@Buy~djlWgV>-~4O?GW!9m%@zG@{mK?tV8frURd>w?hMrTW*S;*s; z#qiq2<-W+yf~)IXii=B4CGMyjUbY){!exxxaf$PYm6>5oWPi}QF+AZOYFJS+)XO?z z%!=&rgocK;L4WBK@{)Nmk;_k6j)vX-yj9eC&iSfMMWx4&;z=>_vbpPYb)h&Go5B{S zg6kfiwDaj4Q&%6eo$I#Ew%X?@E_+qE0r^f9lC)@gLOjK^2wPXL+F8PPRj}qs>Rv7o zW0Cxlrk3Q_whb%|hxPno#`vYxQH9ND<*G{R#hqC)?#!xjXBLh-vuxa%MZ?*ICS}HP zJ9jd(h!Bb|K>NiNdx2w=u)rz=u^KzLGL#T@Vi$J;u$!X*+@)lQbCUqXJLXUo@0>#* z-Zh6{yfHY3PzkjOVUZ;28dPH~YSD~3Jj0K3i>qb3Lh`hTq?ji3nxr4NoSLL5AmE;f zfkBte9*>Pf1kn+TcXW0&1{V;HH-_e*mpIhAZ#Pi?Ml7c@#kxNArl>bo)Eg`6jTQCA zq$5!;wMa*zM)60F$KWopbl#bYL1SnEk$7Wx4%Oux+E7F5R#1a*IHFz^IhaKbW|4zg zvfStOPhr9(&R2vFYZl!utSKKT}N=B)lRdv9A=`KJ4=z_fcBXAnb;cR1j>o@R3y@mfl5RI{mYae1oVl>$7PNDjs%n$i9{71~X@|(@NrwJY}K(2h6 z};3J~uHMy!=xetL^eTasKST&E;d)LrwxpUwILSm!aSWuW8}BH8d#A%N^AvX>9S z15}rwRL8jH!jyjuMk=SJui>donxVp3ACa)HV@T@~#r$c*Q9dm9X`c{D{f5TT1vHs! z=CPKfs^-ybKBLwFPO;W`tTS8GK~OH&t97V&`K&r%GB%qV)VjKG8N0*h^VnE!>P?@i NDUYbeERYsD`VTFX)(-#x