分层查询代码
时间: 2023-07-09 12:10:41 浏览: 50
以下是一个简单的分层查询代码示例:
DAO层:
```java
public class CarDAO {
//数据库连接对象
private Connection conn;
public CarDAO(Connection conn) {
this.conn = conn;
}
//查询单条车辆信息
public Car queryByPlateNumber(String plateNumber) throws SQLException {
String sql = "SELECT * FROM car WHERE plate_number = ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, plateNumber);
try (ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {
return new Car(rs.getInt("id"), rs.getString("plate_number"), rs.getString("type"), rs.getString("owner_name"), rs.getString("contact"));
} else {
return null;
}
}
}
}
//查询所有车辆信息
public List<Car> queryAll() throws SQLException {
String sql = "SELECT * FROM car";
try (PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) {
List<Car> cars = new ArrayList<>();
while (rs.next()) {
cars.add(new Car(rs.getInt("id"), rs.getString("plate_number"), rs.getString("type"), rs.getString("owner_name"), rs.getString("contact")));
}
return cars;
}
}
}
```
Service层:
```java
public class CarService {
//DAO层对象
private CarDAO carDAO;
public CarService(CarDAO carDAO) {
this.carDAO = carDAO;
}
//查询单条车辆信息
public Car queryByPlateNumber(String plateNumber) throws SQLException {
if (isValidPlateNumber(plateNumber)) {
return carDAO.queryByPlateNumber(plateNumber);
} else {
throw new IllegalArgumentException("Invalid plate number");
}
}
//查询所有车辆信息
public List<Car> queryAll() throws SQLException {
return carDAO.queryAll();
}
//校验车牌号是否合法
private boolean isValidPlateNumber(String plateNumber) {
//这里省略校验逻辑
return true;
}
}
```
Controller层:
```java
public class CarController {
//Service层对象
private CarService carService;
public CarController(CarService carService) {
this.carService = carService;
}
//查询单条车辆信息
public void queryByPlateNumber(String plateNumber) {
try {
Car car = carService.queryByPlateNumber(plateNumber);
//渲染结果到前端页面
} catch (SQLException e) {
//处理异常
} catch (IllegalArgumentException e) {
//处理异常
}
}
//查询所有车辆信息
public void queryAll() {
try {
List<Car> cars = carService.queryAll();
//渲染结果到前端页面
} catch (SQLException e) {
//处理异常
}
}
}
```
在实际开发中,还需要考虑异常处理、日志记录、事务管理等方面的问题,这里只是一个简单的示例。