Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions .idea/encodings.xml

This file was deleted.

5 changes: 2 additions & 3 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions jdbcdao.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.18" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
</component>
</module>
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
</dependencies>
</project>
2 changes: 2 additions & 0 deletions src/main/java/ApplicationRunner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
public class ApplicationRunner {
}
109 changes: 109 additions & 0 deletions src/main/java/CarsDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import com.mysql.cj.jdbc.Driver;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class CarsDAO implements DAO<CarsDTO> {
//ConnectionFactory cf = new ConnectionFactory();
Connection connection = ConnectionFactory.getConnection();


public CarsDTO findById(int id) {
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Cars WHERE id=" + id);
if (rs.next()) {
CarsDTO car = extractUserFromResultSet(rs);
return car;
}
} catch (SQLException ex) {
ex.printStackTrace();
}

return null;
}


private CarsDTO extractUserFromResultSet(ResultSet rs) throws SQLException {
CarsDTO car = new CarsDTO();
car.setID(rs.getInt("id"));
car.setMAKE(rs.getString("make"));
car.setMODEL(rs.getString("model"));
car.setYear(rs.getString("year"));
car.setCOLOR(rs.getString("color"));
car.setVIN(rs.getString("vin"));
return car;
}


public List findAll() {

Connection connection = ConnectionFactory.getConnection();
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Cars");
List carList = new ArrayList();
while (rs.next()) {
CarsDTO car = extractUserFromResultSet(rs);
carList.add(car);
}
return carList;
} catch (SQLException ex) {
ex.printStackTrace();
}
return null;
}

public CarsDTO update(CarsDTO dto) {

try {
PreparedStatement ps = connection.prepareStatement("UPDATE Cars SET MAKE=?, MODEL=?, YEAR=?, COLOR=?, VIN=? WHERE ID=?");
ps.setString(1, dto.getMAKE());
ps.setString(2, dto.getMODEL());
ps.setString(3, dto.getYear());
ps.setString(4, dto.getCOLOR());
ps.setString(5, dto.getVIN());
ps.setInt(6, dto.getID());
int i = ps.executeUpdate();
if (i == 1) {
return dto;
}
} catch (SQLException ex) {
ex.printStackTrace();
}

return null;
}

public CarsDTO create(CarsDTO dto) {
try {
PreparedStatement ps = connection.prepareStatement("INSERT INTO Cars VALUES (ID=?, MAKE=?, MODEL=?, YEAR=?, COLOR=?, VIN=? ");
ps.setInt(1, dto.getID());
ps.setString(2, dto.getMAKE());
ps.setString(3, dto.getMODEL());
ps.setString(4, dto.getYear());
ps.setString(5, dto.getCOLOR());
ps.setString(6, dto.getVIN());
int i = ps.executeUpdate();
if (i == 1) {
return dto;
}
} catch (SQLException ex) {
ex.printStackTrace();
}

return null;
}

public void delete(int id) {
try {
Statement stmt = connection.createStatement();
int i = stmt.executeUpdate("DELETE FROM Cars WHERE id=" + id);
} catch (SQLException ex) {
ex.printStackTrace();
}


}
}
87 changes: 87 additions & 0 deletions src/main/java/CarsDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@

public class CarsDTO implements DTO { //<------this is Data transfer object class
private Integer ID;
private String MAKE;
private String MODEL;
private String Year;
private String COLOR;
private String VIN;

public CarsDTO(Integer ID, String MAKE, String MODEL, String year, String COLOR, String VIN) {
this.ID = ID;
this.MAKE = MAKE;
this.MODEL = MODEL;
Year = year;
this.COLOR = COLOR;
this.VIN = VIN;
}
/*
public CarsDTO(String MAKE, String MODEL, String year, String COLOR, String VIN){
this.MAKE = MAKE;
this.MODEL = MODEL;
Year = year;
this.COLOR = COLOR;
this.VIN = VIN;
}

*/

public CarsDTO(){
}

public Integer getID() {
return ID;
}

public String getMAKE() {
return MAKE;
}

public String getMODEL() {
return MODEL;
}

public String getYear() {
return Year;
}

public String getCOLOR() {
return COLOR;
}

public String getVIN() {
return VIN;
}

public void setID(Integer ID) {
this.ID = ID;
}

public void setMAKE(String MAKE) {
this.MAKE = MAKE;
}

public void setMODEL(String MODEL) {
this.MODEL = MODEL;
}

public void setYear(String year) {
Year = year;
}

public void setCOLOR(String COLOR) {
this.COLOR = COLOR;
}

public void setVIN(String VIN) {
this.VIN = VIN;
}

public int getId() {
return ID;
}

public String toString(){
return String.format("Car={car id = %d, make = %s, model = %s, year = %s, color = %s, vin = %s}",getID(),getMAKE(),getMODEL(),getYear(),getCOLOR(),getVIN());
}
}
25 changes: 25 additions & 0 deletions src/main/java/ConnectionFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import com.mysql.cj.jdbc.Driver;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
public static final String URL = "jdbc:mysql://localhost:3306/******";
public static final String USER = "****";
public static final String PASS = "********";

public static Connection getConnection()
{
try {
DriverManager.registerDriver(new Driver());
return DriverManager.getConnection(URL, USER, PASS);
} catch (SQLException ex) {
throw new RuntimeException("Error connecting to the database", ex);
}
}

}


12 changes: 12 additions & 0 deletions src/main/java/DAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import java.util.List;
public interface DAO<X> {
public X findById(int id);

public List findAll();

public X update(X dto);

public X create(X dto);

public void delete(int id);
}
3 changes: 3 additions & 0 deletions src/main/java/DTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
public interface DTO<T> {
int getId();
}
35 changes: 35 additions & 0 deletions src/test/java/TestCarsDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import com.sun.xml.internal.bind.v2.model.core.ID;
import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class TestCarsDAO {

@Test
public void testFindById(){

CarsDAO c1 = new CarsDAO();
CarsDTO a1 = c1.findById(1);
CarsDTO e1 = new CarsDTO(1 , "Nissan" , "Frontier" , "2019" , "white" , "1392BR568");
/* Assert.assertEquals(a1.getID(),e1.getID());
Assert.assertEquals(a1.getCOLOR(), e1.getCOLOR());
Assert.assertEquals(a1.getMAKE() , e1.getMAKE());
Assert.assertEquals(a1.getMODEL() , e1.getMODEL());
Assert.assertEquals(a1.getYear() , e1.getYear());
Assert.assertEquals(a1.getVIN() , e1.getVIN());*/
Assert.assertEquals(a1.toString(),e1.toString());
}
@Test
public void testFindAll(){
CarsDAO c1 = new CarsDAO();
List carList = new ArrayList();
carList= c1.findAll();
System.out.println(carList);
}



}

Binary file added target/classes/ApplicationRunner.class
Binary file not shown.
Binary file added target/classes/CarsDAO.class
Binary file not shown.
Binary file added target/classes/CarsDTO.class
Binary file not shown.
Binary file added target/classes/ConnectionFactory.class
Binary file not shown.
Binary file added target/classes/DAO.class
Binary file not shown.
Binary file added target/classes/DTO.class
Binary file not shown.
Binary file added target/jdbcdao-1.0-SNAPSHOT.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions target/maven-archiver/pom.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#Generated by Maven
#Sat Nov 30 14:14:12 EST 2019
version=1.0-SNAPSHOT
groupId=com.zipcoder.lab
artifactId=jdbcdao
Binary file added target/test-classes/TestCarsDAO.class
Binary file not shown.