Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组位置。请将您的问题包括Car类的源代码。很可能您没有重写equals()/hashcode()方法。这是否回答了您的问题? import DAO.CarDAO; import DAO.CarJdbcDAO; import Domain.Car; imp_Java_Junit_Assertion_Hamcrest - Fatal编程技术网

Java 数组位置。请将您的问题包括Car类的源代码。很可能您没有重写equals()/hashcode()方法。这是否回答了您的问题? import DAO.CarDAO; import DAO.CarJdbcDAO; import Domain.Car; imp

Java 数组位置。请将您的问题包括Car类的源代码。很可能您没有重写equals()/hashcode()方法。这是否回答了您的问题? import DAO.CarDAO; import DAO.CarJdbcDAO; import Domain.Car; imp,java,junit,assertion,hamcrest,Java,Junit,Assertion,Hamcrest,数组位置。请将您的问题包括Car类的源代码。很可能您没有重写equals()/hashcode()方法。这是否回答了您的问题? import DAO.CarDAO; import DAO.CarJdbcDAO; import Domain.Car; import java.math.BigDecimal; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.not; im


数组位置。请将您的问题包括
Car
类的源代码。很可能您没有重写
equals()
/
hashcode()
方法。这是否回答了您的问题?
import DAO.CarDAO;
import DAO.CarJdbcDAO;
import Domain.Car;
import java.math.BigDecimal;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertThat;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 *
 * @author shika823
 */
public class CarJdbcDAOTest {

    public CarJdbcDAOTest() {
    }

    /**
     *
     * @author shika823
     */
    private CarDAO dao = new CarJdbcDAO("jdbc:h2:mem:test;INIT=runscript from 'src/main/java/DAO/schema.sql'");

    private Car car1;

    private Car car2;

    private Car car3;

//    String carName, int carId, String carType, String seatNumber, BigDecimal hourlyCharge, String location) {
    @BeforeEach
    public void setUp() {
        car1 = new Car();
        car1.setCarId("12412");
        car1.setCarName("Car sokmet");
        car1.setCarType("A type");
        car1.setSeatNumber("1");
        car1.setHourlyCharge(new BigDecimal("4.00"));
        car1.setLocation("30 Duke Street");

        car2 = new Car();
        car2.setCarId("12902");
        car2.setCarName("Car sething");
        car2.setCarType("A tyjksspe");
        car2.setSeatNumber("2");
        car2.setHourlyCharge(new BigDecimal("3.00"));
        car2.setLocation("28 Duke Street");
//        
        car3 = new Car();
        car3.setCarId("1862");
        car3.setCarName("Car setng");
        car3.setCarType("yjksspe");
        car3.setSeatNumber("8");
        car3.setHourlyCharge(new BigDecimal("3.00"));
        car3.setLocation("98 Duke Street");
        
        
        dao.saveCar(car1);
        dao.saveCar(car2);

    }

    @AfterEach
    public void tearDown() {
        dao.removeCar(car1);
        dao.removeCar(car2);
    }

    @Test
    public void testSaveCar() {
        dao.saveCar(car3);

        assertThat(dao.getCars(), hasItem(car1));
        assertThat(dao.getCars(), hasItem(car2));
        assertThat(dao.getCars(), hasItem(car3));
        dao.removeCar(car3);

    }

    @Test
    public void testGetCars() {
        assertThat(dao.getCars(), hasItem(car1));
 
    }

    @Test
    public void testRemoveCar() {
        dao.removeCar(car1);
        assertThat(dao.getCars(), hasSize(1));
        assertThat(dao.getCars(), not(hasItem(car1)));
    }

}
 
[enter image description here][1]import Domain.Car;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;

/**
 *
 * @author jamespettitt
 */
public class CarJdbcDAO implements CarDAO {

    private String url = JdbcConnection.getDefaultConnectionUri();

    public CarJdbcDAO() {
    }

    public CarJdbcDAO(String uri) {
        this.url = uri;
    }

    @Override
    public void saveCar(Car car) {
        String sql = "merge into car (car_id, car_Name, car_Type, Seat_Number, Hourly_Charge, Location) values (?, ?, ?, ?, ?, ?)";

        try (
            Connection dbCon = JdbcConnection.getConnection(url);
            PreparedStatement stmt = dbCon.prepareStatement(sql);) {
            stmt.setString(1, car.getCarId());
            stmt.setString(2, car.getCarName());
            stmt.setString(3, car.getCarType());
            stmt.setString(4, car.getSeatNumber());
            stmt.setBigDecimal(5, car.getHourlyCharge());
            stmt.setString(6, car.getLocation());

            stmt.executeUpdate();

        } catch (SQLException ex) {
            throw new DAOException(ex.getMessage(), ex);
        }
    }

    @Override
    public Collection<Car> getCars() {
        

        String sql = "select * from Car";
        try (
            Connection dbCon = JdbcConnection.getConnection(url); //get connection to db
            PreparedStatement stmt = dbCon.prepareStatement(sql); //create stmt
            ) {
            ResultSet rs = stmt.executeQuery(); 

            ArrayList<Car> cars = new ArrayList<>(); 

            //iterate through query results
            while (rs.next()) {
                            

                
                    String carId = rs.getString("Car_Id");
                    String carName = rs.getString("Car_Name");
                    
                    String carType = rs.getString("Car_Type");
                    String seatNumber = rs.getString("Seat_Number");
                    BigDecimal hourlyCharge = rs.getBigDecimal("Hourly_Charge");
                    String location = rs.getString("Location");
                                                
                                                Car car = new Car(carId, carName, carType, seatNumber, hourlyCharge, location);
                                                

                cars.add(car); 

            }

            return cars;

        } catch (SQLException ex) {
            throw new DAOException(ex.getMessage(), ex);
        }
    }

    @Override
    public void removeCar(Car car) {

        String sql = "delete from car where car_ID = ?";

        try (
            Connection dbCon = JdbcConnection.getConnection(url);
            PreparedStatement stmt = dbCon.prepareStatement(sql);) {
            stmt.setString(1, car.getCarId());
            stmt.executeUpdate();

        } catch (SQLException ex) {
            throw new DAOException(ex.getMessage(), ex);
        }
    }

    @Override

    public Collection<Car> filterByType(String carType) {
        String sql = "select * from car where Type = ?";
        System.out.println(carType);
        try (
            Connection dbCon = JdbcConnection.getConnection(url);
            PreparedStatement stmt = dbCon.prepareStatement(sql);) {
            stmt.setString(1, carType);
            ResultSet rs = stmt.executeQuery();

            List<Car> typeList = new ArrayList<>();

            while (rs.next()) {
                Car car = new Car(
                    rs.getString("Car_id"),
                    rs.getString("car_Name"),
                    
                    rs.getString("car_Type"),
                    rs.getString("Seat_Number"),
                    rs.getBigDecimal("Hourly_Charge"),
                    rs.getString("Location")
                );
                System.out.println(car);
                typeList.add(car);
            }
            return typeList;
        } catch (SQLException ex) {
            throw new DAOException(ex.getMessage(), ex);
        }
    }

    @Override
    public Collection<Car> filterBySeatNumber(String seatNumber) {
        String sql = "select * from car where Seat_Number = ?";
        System.out.println(seatNumber);
        try (
            Connection dbCon = JdbcConnection.getConnection(url);
            PreparedStatement stmt = dbCon.prepareStatement(sql);) {
            stmt.setString(1, seatNumber);
            ResultSet rs = stmt.executeQuery();

            ArrayList<Car> seatNumberList = new ArrayList<>();

            while (rs.next()) {
                Car car = new Car(
                    rs.getString("Car_id"),
                    rs.getString("car_Name"),
                    
                    rs.getString("car_Type"),
                    rs.getString("Seat_Number"),
                    rs.getBigDecimal("Hourly_Charge"),
                    rs.getString("Location")
                );
                System.out.println(car);
                seatNumberList.add(car);
            }
            return seatNumberList;
        } catch (SQLException ex) {
            throw new DAOException(ex.getMessage(), ex);
        }
    }

}
 
 @Test
    public void testSaveCar() {
        dao.saveCar(car3);
    
        assertEquals(dao.getCars().get(0).getCarId(), car1.getCarId());
        assertEquals(dao.getCars().get(1).getCarId(), car2.getCarId());
        assertEquals(dao.getCars().get(2).getCarId(), car3.getCarId());
        dao.removeCar(car3);
    
    }