📄 insertdataintolatecytable.java
字号:
package com.datangmobile.oss.omc.pc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import com.datangmobile.oss.platform.util.ILogger;
import com.datangmobile.oss.platform.util.ModuleLogger;
/**
* 在V2性能数据文件字啊入库后,对TBL_GUIDE_LINE_DATA_RECENT插入信息 以便性能服务器可以判断计数器上报是否延迟
*
* @author wangxin4
*
*/
public class InsertDataIntoLatecyTable implements IInsertDataIntoLatecyTable {
private static final ILogger log = ModuleLogger.getPmLogger()
.getOperLogger();
/**
* 插入数据库的接口方法
*
* @param conn
* 数据库链接(不用在此方法中关闭),可在调用外关闭
* @param neDn
* 网元级的Dn(如:RAN=21,rRnc=21或RAN=22,RNC_INFO=22),
* 如果是小区、载波等dn,需要转换后输入
* @param endTime
* 文件或消息中的结束时间
* @param groupIds
* V3的计数器组编号(单个或数组:如果是V2的需要转换为V3的)
*
*/
public void insert(Connection conn, String neDn, Date endTime,
int... groupIds) {
PreparedStatement p = null;
try {
String sql = "insert into " + LATECYTABLENAME
+ "(dn, groupid, end_time) values (?,?,?)";
for (int groupId : groupIds) {
// 执行插入数据库操作
if (p == null) {
p = conn.prepareStatement(sql);
}
p.setString(1, neDn);
p.setInt(2, groupId);
p.setTimestamp(3, new java.sql.Timestamp(endTime.getTime()));
// 支持批量更新
p.addBatch();
}
// 批量处理
p.executeBatch();
} catch (SQLException sqle) {
log.error("insert into TBL_GUIDE_LINE_DATA_RECENT error.", sqle);
} finally {
// 不对conn进行commit,因为在该方法的调用外会处理,
// 这样可保证TBL_GUIDE_LINE_DATA_X中的数据和TBL_GUIDE_LINE_DATA_RECENT中的数据同时存在或同时rollbask
try {
if (p != null) {
p.close();
}
} catch (SQLException e) {
log.error(InsertDataIntoLatecyTable.class,
"close PreparedStatement error");
}
}
}
public void insert(Connection conn, String neDn, int groupId, Date... endTimes) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -