主要实现功能为航班信息的增删改查,解析XML文件,保存信息到TXT文件。
使用反射以及依赖注入。
代码如下:
flights.xml
<flights>
<flight flightNo="NA1234">
<departureCity>北京</departureCity>
<departureTime>2019-08-02 13:30:00</departureTime>
<arrivalCity>上海</arrivalCity>
<arrivalTime>2019-08-02 15:28:00</arrivalTime>
</flight>
<flight flightNo="NA2345">
<departureCity>北京</departureCity>
<departureTime>2019-08-02 11:00:00</departureTime>
<arrivalCity>广州</arrivalCity>
<arrivalTime>2019-08-02 15:28:00</arrivalTime>
</flight>
<flight flightNo="CZ1234">
<departureCity>北京</departureCity>
<departureTime>2019-08-02 17:30:00</departureTime>
<arrivalCity>上海</arrivalCity>
<arrivalTime>2019-08-02 19:28:00</arrivalTime>
</flight>
<flight flightNo="AB1234">
<departureCity>大连</departureCity>
<departureTime>2019-05-06 16:03:00</departureTime>
<arrivalCity>上海</arrivalCity>
<arrivalTime>2019-05-06 19:33:00</arrivalTime>
</flight>
<flight flightNo="CA1234">
<departureCity>北京</departureCity>
<departureTime>2019-08-02 10:30:00</departureTime>
<arrivalCity>上海</arrivalCity>
<arrivalTime>2019-08-02 12:28:00</arrivalTime>
</flight>
</flights>
applicationContext.xml
<beans>
<bean id="flightDao" class="com.biubiubiu.dongtianbao.dao.impl.FlightDaoImpl"/>
<bean id="flightService" class="com.biubiubiu.dongtianbao.service.impl.FlightServiceImpl">
<!-- name是类的属性名名 ref这个放的是bean中id的值 -->
<property name="flightDao" ref="flightDao"/>
</bean>
<bean id="flightAction" class="com.biubiubiu.dongtianbao.action.FlightAction">
<!-- name是类的属性名名 ref这个放的是bean中id的值 -->
<property name="flightService" ref="flightService"/>
</bean>
</beans>
Flight.java
package com.biubiubiu.dongtianbao.entity;
import java.util.Date;
import com.biubiubiu.dongtianbao.common.Utils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 实体类
* @author 11142
*
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Flight implements Comparable<Flight>{
private String flightNo;
private String departureCity;
private String arrivalCity;
private Date departureTime;
private Date arrivalTime;
@Override
public int compareTo(Flight o) {
String str1 = Utils.dateToStr(this.getDepartureTime());
String str2 = Utils.dateToStr(o.getDepartureTime());
return str1.compareTo(str2);
}
}
FlightDao.java
package com.biubiubiu.dongtianbao.dao;
import java.util.List;
import com.biubiubiu.dongtianbao.entity.Flight;
public interface FlightDao {
/**
* 显示所有航班信息(起飞时间升序)
*/
List<Flight> showAllFlightsInfo();
/**
* 添加航班
*/
boolean addFlight(Flight flight);
/**
* 删除航班
*/
boolean deleteFlight(int index);
/**
* 保存更新XML文件
*/
void saveXML();
/**
* 保存查询结果到TXT文件
*/
void saveTXT(String info);
}
FlightDaoImpl.java
package com.biubiubiu.dongtianbao.dao.impl;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import com.biubiubiu.dongtianbao.common.Utils;
import com.biubiubiu.dongtianbao.dao.FlightDao;
import com.biubiubiu.dongtianbao.entity.Flight;
public class FlightDaoImpl implements FlightDao {
private Map<String,Flight> flightMap = new HashMap<String, Flight>();
public FlightDaoImpl() {
try {
InputStream is = FlightDaoImpl.class.getClassLoader(