上行短信 写入mysql_【君贤短信】取回上行短信

package com.gdcy.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.UUID;

import org.apache.log4j.Logger;

public class SmsRequestHandler {

protected final static Logger log = Logger.getLogger(SmsRequestHandler.class);

public static void smsHandle(String responseString) {

if(responseString != null && !responseString.trim().equals("")){

if(responseString.indexOf("/") > -1){

String returnMessage = responseString.substring(0, responseString.indexOf("/"));

if(returnMessage != null && !returnMessage.trim().equals("")){

if(returnMessage.trim().equalsIgnoreCase("ERROR")){

String errorReason = responseString.substring(responseString.indexOf("/")+1);

//System.out.println("errorReason = "+errorReason);

if(errorReason != null && errorReason.trim().equals("无回复信息")){

//to do

}else if(errorReason != null && errorReason.trim().equals("账号、密码错误")){

log.error("【君贤短信】取回上行短信的账号、密码错误 ");

}else{

log.error("【君贤短信】取回上行短信未知错误原因: "+errorReason);

}

}else if(returnMessage.trim().equalsIgnoreCase("OK")){

//返回数据格式:OK/2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?$$2007-1-1%%13:18:31%%13924786445%%我决定不参加。$$

String allResult = responseString.substring(responseString.indexOf("/")+1);

if(allResult != null && !allResult.trim().equals("")){

Connection conn = null;

PreparedStatement preparedStatement = null;

try {

if(allResult.indexOf("$$") < 0){

log.error("【君贤短信】返回的数据格式不正确,找不到$$。");

}else{

String[] results = allResult.split("\\$\\$");

if(results != null && results.length > 0){

String driver = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://127.0.0.1:3306/sms";

String user = "root";

String password = "123456";

String preparedSql = "INSERT INTO `upsms`

(id,strDate,strTime,phone,content,receiveTime,`status`,`version`,createdTime) VALUES (?,?,?,?,?,?,?,?,?)";

Class.forName(driver);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

conn = DriverManager.getConnection(url, user, password);

conn.setAutoCommit(false);

preparedStatement = conn.prepareStatement(preparedSql);

for (String result : results) {

if(result != null && !result.trim().equals("")){

if(result.indexOf("%%") < 0){

log.error("【君贤短信】返回的数据格式不正确,找不到%%。");

}else{

//2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?

String[] datas = result.split("\\%\\%");

if(datas != null && datas.length > 3){

String dataDate = datas[0];

String dataTime = datas[1];

String dataPhone = datas[2];

String dataContent = datas[3];

/*System.out.println("dataDate = "+dataDate);

System.out.println("dataTime = "+dataTime);

System.out.println("dataPhone = "+dataPhone);

System.out.println("dataContent = "+dataContent);*/

if (!conn.isClosed()) {

preparedStatement.setString(1, UUID.randomUUID().toString());

preparedStatement.setString(2, dataDate);

preparedStatement.setString(3, dataTime);

preparedStatement.setString(4, dataPhone);

preparedStatement.setString(5, dataContent);

Date receiveTime = dateFormat.parse(dataDate+"

"+dataTime);

preparedStatement.setDate(6, new java.sql.Date(receiveTime.getTime()));

preparedStatement.setInt(7, 0);

preparedStatement.setInt(8, 0);

preparedStatement.setDate(9, new java.sql.Date(new Date().getTime()));

preparedStatement.addBatch();

}

}else{

log.error("【君贤短信】返回的数据格式不正确,%%拆分后数量少于4个

。");

}

}

}

}

preparedStatement.executeBatch();

conn.commit();

preparedStatement.clearBatch();

}else{

log.error("【君贤短信】返回的数据格式不正确。");

}

}

} catch (SQLException e) {

e.printStackTrace();

} catch (ParseException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}finally{

try {

if(preparedStatement != null){

preparedStatement.close();

preparedStatement = null;

}

if(conn != null){

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}else{

//ERROR/账号、密码错误

log.error("【君贤短信】返回未确定结果:"+responseString);

}

}

}else{

//返回的数据格式不正确

log.error("【君贤短信】返回的数据格式不正确,找不到/。");

}

}

}

}

【君贤短信】取回上行短信操作类SmsRequestHandler,想要再好就要封装数据库操作了。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀分享 2013年5月8日 20:57:10 星期三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值