public class WeatherDao {
private static Connection conn = null;
private static PreparedStatement pstmt = null;
/**
* Author:Allison
* Date:2013-04-02
* Description:执行批量添加
*/
public void addWeatherBatch(List<WeatherData> list) {
conn = DBConn.getConnection();
try {
conn.setAutoCommit(false);
String sql = "insert into weather_data(currentDate,highTemp,lowTemp,weather,windDirection,windPower,week,city)values(?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
for (WeatherData WeatherData : list) {
pstmt.setString(1, WeatherData.getcurrentDate());
pstmt.setDouble(2, WeatherData.getHighTemp());
pstmt.setDouble(3, WeatherData.getLowTemp());
pstmt.setString(4, WeatherData.getWeather());
pstmt.setString(5, WeatherData.getWindDirection());
pstmt.setString(6, WeatherData.getWindPower());
pstmt.setString(7, WeatherData.getWeek());
pstmt.setString(8, WeatherData.getCity());
pstmt.addBatch();
}
pstmt.executeBatch();
conn.commit();
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
try {
DBConn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* Author:Allison datatime:2013-03-28 introduction:添加weather详细信息
*/
public boolean addWeather(WeatherData weather) {
// step1 定义sql语句
String sqlText = "insert into weather_data(currentDate,highTemp,lowTemp,weather,windDirection,windPower,week,city)values(?,?,?,?,?,?,?,?)";
Object[] oParams = { weather.getcurrentDate(), weather.getHighTemp(),
weather.getLowTemp(), weather.getWeather(),
weather.getWindDirection(), weather.getWindPower(),
weather.getWeek(), weather.getCity() };
// step2 执行sql语句
// 执行sql命令
int iRs = DBConn.exePreIUD(sqlText, oParams);
// 关闭DBConn对象
DBConn.close();
// step3 返回结果
return iRs > 0 ? true : false;
}
/*
* Author:Allison datatime:2011-10-19introduct:查询日志
*/
public ArrayList<WeatherData> findWeatherByDateCity(String date, String city){
//step1 定义sql语句
String sqlText="select currentDate,city from weather_data where currentDate='"+ date +"' and city ='"+city+"'";
//step2 执行sql语句
ResultSet rs = DBConn.exeR(sqlText);
try {
ArrayList<WeatherData> list = new ArrayList<WeatherData>();
while(rs.next()){
//定义一个WeatherData对象类型
WeatherData cobject = new WeatherData();
cobject.setcurrentDate(rs.getString(1));
cobject.setCity(rs.getString(2));
list.add(cobject);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
return null;
}finally{
DBConn.close();
}
}
}
public class DBConn {
// 四个核心变量、六个方法
private static Connection conn = null;// 连接数据库
private static Statement stmt = null;// 发送SQL命令
private static PreparedStatement pstmt = null;// 发送带参数的sql命令
private static ResultSet rs = null;// 获得返回的数据集
public static Connection getConnection() {
// step1:找驱动
try {
Class.forName(Config.DRIVER);
conn = DriverManager.getConnection(Config.URL + Config.DBNAME,
Config.DBUSERNAME, Config.DBPASS);
// DatabaseMetaData dbmd = conn.getMetaData();
// System.out.println("db name: " + dbmd.getDatabaseProductName());
// System.out.println("tx: " + dbmd.supportsTransactions());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* Author:Allison
* Date:2011-10-12
* Description:执行RUD操作
*/
public static int exeIUD(String sqlText) {
// step1:创建连接
getConnection();
// step2:判断连接
if (conn != null) {
try {
// step3:定义statement对象
stmt = conn.createStatement();
// step4:执行sql命令
int iRs = stmt.executeUpdate(sqlText);
return iRs;
} catch (SQLException e) {
e.printStackTrace();
}
}
return -1;
}
/**
* Author:Allison
* Date:2011-10-12
* Description:执行RUD操作
*/
public static int exePreIUD(String sqlText, Object[] oParams) {
// step1:创建连接
getConnection();
// step2:判断连接
if (conn != null) {
try {
// conn.setAutoCommit(false);
// step3:定义pstmt对象
pstmt = conn.prepareStatement(sqlText);
// step:传参
for (int i = 0; i < oParams.length; i++) {
pstmt.setObject(i + 1, oParams[i]);
}
// step5:执行sql命令
int iRs = pstmt.executeUpdate();
return iRs;
} catch (SQLException e) {
e.printStackTrace();
}
}
return -1;
}
/**
* Author:Allison
* Date:2011-10-12
* Description:执行select操作
*/
public static ResultSet exeR(String sqlText) {
// step1:建立连接
getConnection();
// step2:判断连接
if (conn != null) {
try {
// step3:建立stmt对象
stmt = conn.createStatement();
// step4:执行sql命令
rs = stmt.executeQuery(sqlText);
return rs;
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
/**
* Author:Allison
* Date:2011-10-12
* Description:执行select操作
*/
public static ResultSet exePreR(String sqlText, Object[] oParams) {
// step1:建立连接
getConnection();
// step2:判断连接
if (conn != null) {
try {
// step3:建立stmt对象
pstmt = conn.prepareStatement(sqlText);
// step4:循环参数
for (int i = 0; i < oParams.length; i++) {
pstmt.setObject(i + 1, oParams[i]);
}
// step5:执行sql命令
rs = pstmt.executeQuery();
return rs;
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
/**
* Author:Allison
* Date:2011-10-12
* Description:关闭四个核心变量
*/
public static void close() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public class WeatherData {
private int id;
private String currentDate;
private double highTemp;
private double lowTemp;
private String weather;
private String windDirection;
private String windPower;
private String week;
private String city;
public WeatherData() {
}
public WeatherData(int id, String currentDate, double highTemp,
double lowTemp, String weather, String windDirection,
String windPower, String week, String city) {
super();
this.id = id;
this.currentDate = currentDate;
this.highTemp = highTemp;
this.lowTemp = lowTemp;
this.weather = weather;
this.windDirection = windDirection;
this.windPower = windPower;
this.week = week;
this.city = city;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getcurrentDate() {
return currentDate;
}
public void setcurrentDate(String currentDate) {
this.currentDate = currentDate;
}
public double getHighTemp() {
return highTemp;
}
public void setHighTemp(double highTemp) {
this.highTemp = highTemp;
}
public double getLowTemp() {
return lowTemp;
}
public void setLowTemp(double lowTemp) {
this.lowTemp = lowTemp;
}
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this.weather = weather;
}
public String getWindDirection() {
return windDirection;
}
public void setWindDirection(String windDirection) {
this.windDirection = windDirection;
}
public String getWindPower() {
return windPower;
}
public void setWindPower(String windPower) {
this.windPower = windPower;
}
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "WeatherData [id=" + id + ", currentDate="
+ currentDate + ", highTemp=" + highTemp + ", lowTemp="
+ lowTemp + ", weather=" + weather + ", windDirection="
+ windDirection + ", windPower=" + windPower + ", week=" + week
+ ", city=" + city + "]";
}
}
public class Config {
//static静态成员声明Properties对象
private static Properties prop = new Properties();
//编写静态块加载prop里面属性文件
static{
try {
prop.load(Config.class.getResourceAsStream("db.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//定义静态变量,赋值数据库连接信息
public static final String DRIVER=prop.getProperty("DRIVER");
public static final String URL = prop.getProperty("MYSQLURL");
public static final String DBNAME = prop.getProperty("DATABASENAME");
public static final String DBUSERNAME = prop.getProperty("DBUSERNAME");
public static final String DBPASS = prop.getProperty("DBPASS");
}
DRIVER=com.mysql.jdbc.Driver
MYSQLURL=jdbc:mysql://localhost:3306/
DATABASENAME=******
DBUSERNAME=******
DBPASS=******