oracle数据库中插入char类型的数据为何后面总多出一个空格?
2017-02-09 16:34
381 查看
package com.yunwei.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.yunwei.main.HttpRequest;
import com.yunwei.util.DBConnection;
import com.yunwei.util.LoggerUtil;
import com.yunwei.util.ResultSetToList;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class RtBusPlandepartDao {//2、 车辆当日计划发车信息
public static Logger logger = LoggerUtil.getLoggerByName();
static Connection conn = null;
static PreparedStatement ps = null;
static ResultSet rs = null;
static String SQL = "";
static String qujian = "1";
static String quancheng = "0";
String lineid = "";//线路名称
java.sql.Timestamp ts2 =new java.sql.Timestamp(System.currentTimeMillis());//采集时间
public void RtBusPlandepart() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(new Date());
String sr = HttpRequest
.sendPost(
"http://172.100.1.73:5012/api/getVehicleDeparture.ashx",
"appid=mqapi&uid=yamq&pwd=67A872E9120B99BB3CF08E9A4A09004B&lineid=007109&date="+time);
JSONObject resultJson = null;
resultJson = JSONObject.fromObject(sr);
String lineid = "007109";
getRtBusPlandepart(resultJson,lineid);
String sr1 = HttpRequest
.sendPost(
"http://172.100.1.73:5012/api/getVehicleDeparture.ashx",
"appid=mqapi&uid=yamq&pwd=67A872E9120B99BB3CF08E9A4A09004B&lineid=007108&date="+time);
JSONObject resultJson1 = null;
resultJson1 = JSONObject.fromObject(sr1);
String lineid1 = "007108";
getRtBusPlandepart(resultJson1,lineid1);
}
private int getRtBusPlandepart(JSONObject resultJson,String lineids){
int y = 0;
logger.info("车辆当日计划发车信息:RtBusPlandepart");
logger.info("开始时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
try {
conn = DBConnection.getConnection();
conn.setAutoCommit(false);
JSONObject result = resultJson.getJSONObject("result");
if("1".equals(result.getString("code"))){
JSONObject jsonObject = result.getJSONObject("data");
lineid = jsonObject.getString("roadline");
String dateTime = jsonObject.getString("date");
Long time1 = new SimpleDateFormat("yyyy-MM-dd").parse(dateTime).getTime();
ts2 = new java.sql.Timestamp(time1);
JSONArray list = jsonObject.getJSONArray("list");
JSONArray updatelist = new JSONArray();
JSONArray insertlist = new JSONArray();
//查询所有数据作比较,来决定是更新还是插入
SQL ="SELECT VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE FROM RT_BUS_PLANDEPART ";
ps = conn.prepareStatement(SQL);
ResultSet rrs = ps.executeQuery();
//库里的数据放进一个map里来作比较
@SuppressWarnings("unchecked")
List<Map<String,String>> rrsList=ResultSetToList.convertList(rrs);
Map<String,Object> map22 = new HashMap<String,Object>();
for (int i = 0; i < rrsList.size(); i++) {
Map<String,String> m = rrsList.get(i);
getLicenseDepartTimeMap(m,map22);
}
//批量插入历史表
SQL = "INSERT INTO HIST_BUS_PLANDEPART(VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE) VALUES(?,?,?,?,?,?,?,?,?,?)";
ps = conn.prepareStatement(SQL);
for (int j = 0; j < list.size(); j++) {
String vehId = list.getJSONObject(j).getString("vehicleid");
String licensePlate = list.getJSONObject(j).getString("vehicleno");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = list.getJSONObject(j).getString("lupai");
String departTime = list.getJSONObject(j).getString("starttime");
String dapartStation = list.getJSONObject(j).getString(
"startstation");
String shiftType = list.getJSONObject(j).getString("type");
if(licensePlate==null||"".equals(licensePlate)){
continue;
}
String a =(licensePlate+departTime).replace(" ", "");
if(map22.containsKey(a)){
updatelist.add(list.getJSONObject(j));
}else{
insertlist.add(list.getJSONObject(j));
}
//批量插入历史表
ps.setString(1, vehId);
ps.setString(2, licensePlate);
ps.setTimestamp(3, ts2);
ps.setTimestamp(4, ts);
ps.setString(5, signpost);
ps.setString(6, departTime);
ps.setString(7, dapartStation);
ps.setString(8, shiftType);
ps.setString(9, lineid);
if("007108".equals(lineids)){
ps.setString(10, qujian);
}else if("007109".equals(lineids)){
ps.setString(10, quancheng);
}
ps.addBatch();
if(j%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
//插入实时库
getRtBusPlandepartInsert(insertlist,lineids);
//更新实时库
getRtBusPlandepartUpdate(updatelist,lineids);
}
} catch (Exception e) {
logger.error(e);
}finally {
DBConnection.closeResultSet(rs);
DBConnection.closePreparedStatement(ps);
DBConnection.closeConnection(conn);
logger.info("结束时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
}
return y;
}
public void getLicenseDepartTimeMap(Map<String,String> m,Map<String,Object> map22){
Iterator iter =m.keySet().iterator();
String license="";
String departTime="";
while(iter.hasNext()){
String key =(String) iter.next();
if(key!=null||!"".equals(key)){
if("LICENSE_PLATE".equals(key)){
license = m.get(key);
}else if("DEPART_TIME".equals(key)){
departTime =m.get(key);
}
if(license!=""&&departTime!=""){
String a = (license+departTime).replace(" ","");
map22.put(a, m);
break;
}
}
}
}
private void getRtBusPlandepartInsert(JSONArray insertlist,String lineids){
//插入
try {
if(insertlist.size()>0){
SQL = "INSERT INTO RT_BUS_PLANDEPART(VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE) VALUES(?,?,?,?,?,?,?,?,?,?)";
ps = conn.prepareStatement(SQL);
for (int k = 0; k < insertlist.size(); k++) {
String vehId = insertlist.getJSONObject(k).getString("vehicleid");
String licensePlate = insertlist.getJSONObject(k).getString("vehicleno");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = insertlist.getJSONObject(k).getString("lupai");
String departTime = insertlist.getJSONObject(k).getString("starttime");
String dapartStation = insertlist.getJSONObject(k).getString(
"startstation");
String shiftType = insertlist.getJSONObject(k).getString("type");
ps.setString(1, vehId);
ps.setString(2, licensePlate);
ps.setTimestamp(3, ts2);
ps.setTimestamp(4, ts);
ps.setString(5, signpost);
ps.setString(6, departTime);
ps.setString(7, dapartStation);
ps.setString(8, shiftType);
ps.setString(9, lineid);
if("007108".equals(lineids)){
ps.setString(10, qujian);
}else if("007109".equals(lineids)){
ps.setString(10, quancheng);
}
ps.addBatch();
if(k%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
}
} catch (Exception e) {
logger.error(e);
}
};
private void getRtBusPlandepartUpdate(JSONArray updatelist,String lineids){
//更新
try {
if(updatelist.size()>0){
SQL = "UPDATE RT_BUS_PLANDEPART SET VEH_ID=?,DATA_TIME=?,INSERT_TIME=?,SIGNPOST=?,DEPART_STATION=?,SHIFT_TYPE=?,LINE_ID=?,TYPE=? where trim(LICENSE_PLATE)=? and trim(DEPART_TIME) =? ";
ps = conn.prepareStatement(SQL);
for (int k = 0; k < updatelist.size(); k++) {
String vehId = updatelist.getJSONObject(k).getString("vehicleid");
String licensePlate = updatelist.getJSONObject(k).getString("vehicleno").replace(" ", "");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = updatelist.getJSONObject(k).getString("lupai");
String departTime = updatelist.getJSONObject(k).getString("starttime").replace(" ", "");
String dapartStation = updatelist.getJSONObject(k).getString(
"startstation");
String shiftType = updatelist.getJSONObject(k).getString("type");
ps.setString(1, vehId);//车牌号
ps.setTimestamp(2, ts2);
ps.setTimestamp(3, ts);
ps.setString(4, signpost);
ps.setString(5, dapartStation);
ps.setString(6, shiftType);
ps.setString(7, lineid);
if("007108".equals(lineids)){
ps.setString(8, qujian);
}else if("007109".equals(lineids)){
ps.setString(8, quancheng);
}
ps.setString(9, licensePlate);
ps.setString(10, departTime);
ps.addBatch();
if(k%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
}
} catch (Exception e) {
logger.error(e);
}
};
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.yunwei.main.HttpRequest;
import com.yunwei.util.DBConnection;
import com.yunwei.util.LoggerUtil;
import com.yunwei.util.ResultSetToList;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class RtBusPlandepartDao {//2、 车辆当日计划发车信息
public static Logger logger = LoggerUtil.getLoggerByName();
static Connection conn = null;
static PreparedStatement ps = null;
static ResultSet rs = null;
static String SQL = "";
static String qujian = "1";
static String quancheng = "0";
String lineid = "";//线路名称
java.sql.Timestamp ts2 =new java.sql.Timestamp(System.currentTimeMillis());//采集时间
public void RtBusPlandepart() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(new Date());
String sr = HttpRequest
.sendPost(
"http://172.100.1.73:5012/api/getVehicleDeparture.ashx",
"appid=mqapi&uid=yamq&pwd=67A872E9120B99BB3CF08E9A4A09004B&lineid=007109&date="+time);
JSONObject resultJson = null;
resultJson = JSONObject.fromObject(sr);
String lineid = "007109";
getRtBusPlandepart(resultJson,lineid);
String sr1 = HttpRequest
.sendPost(
"http://172.100.1.73:5012/api/getVehicleDeparture.ashx",
"appid=mqapi&uid=yamq&pwd=67A872E9120B99BB3CF08E9A4A09004B&lineid=007108&date="+time);
JSONObject resultJson1 = null;
resultJson1 = JSONObject.fromObject(sr1);
String lineid1 = "007108";
getRtBusPlandepart(resultJson1,lineid1);
}
private int getRtBusPlandepart(JSONObject resultJson,String lineids){
int y = 0;
logger.info("车辆当日计划发车信息:RtBusPlandepart");
logger.info("开始时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
try {
conn = DBConnection.getConnection();
conn.setAutoCommit(false);
JSONObject result = resultJson.getJSONObject("result");
if("1".equals(result.getString("code"))){
JSONObject jsonObject = result.getJSONObject("data");
lineid = jsonObject.getString("roadline");
String dateTime = jsonObject.getString("date");
Long time1 = new SimpleDateFormat("yyyy-MM-dd").parse(dateTime).getTime();
ts2 = new java.sql.Timestamp(time1);
JSONArray list = jsonObject.getJSONArray("list");
JSONArray updatelist = new JSONArray();
JSONArray insertlist = new JSONArray();
//查询所有数据作比较,来决定是更新还是插入
SQL ="SELECT VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE FROM RT_BUS_PLANDEPART ";
ps = conn.prepareStatement(SQL);
ResultSet rrs = ps.executeQuery();
//库里的数据放进一个map里来作比较
@SuppressWarnings("unchecked")
List<Map<String,String>> rrsList=ResultSetToList.convertList(rrs);
Map<String,Object> map22 = new HashMap<String,Object>();
for (int i = 0; i < rrsList.size(); i++) {
Map<String,String> m = rrsList.get(i);
getLicenseDepartTimeMap(m,map22);
}
//批量插入历史表
SQL = "INSERT INTO HIST_BUS_PLANDEPART(VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE) VALUES(?,?,?,?,?,?,?,?,?,?)";
ps = conn.prepareStatement(SQL);
for (int j = 0; j < list.size(); j++) {
String vehId = list.getJSONObject(j).getString("vehicleid");
String licensePlate = list.getJSONObject(j).getString("vehicleno");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = list.getJSONObject(j).getString("lupai");
String departTime = list.getJSONObject(j).getString("starttime");
String dapartStation = list.getJSONObject(j).getString(
"startstation");
String shiftType = list.getJSONObject(j).getString("type");
if(licensePlate==null||"".equals(licensePlate)){
continue;
}
String a =(licensePlate+departTime).replace(" ", "");
if(map22.containsKey(a)){
updatelist.add(list.getJSONObject(j));
}else{
insertlist.add(list.getJSONObject(j));
}
//批量插入历史表
ps.setString(1, vehId);
ps.setString(2, licensePlate);
ps.setTimestamp(3, ts2);
ps.setTimestamp(4, ts);
ps.setString(5, signpost);
ps.setString(6, departTime);
ps.setString(7, dapartStation);
ps.setString(8, shiftType);
ps.setString(9, lineid);
if("007108".equals(lineids)){
ps.setString(10, qujian);
}else if("007109".equals(lineids)){
ps.setString(10, quancheng);
}
ps.addBatch();
if(j%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
//插入实时库
getRtBusPlandepartInsert(insertlist,lineids);
//更新实时库
getRtBusPlandepartUpdate(updatelist,lineids);
}
} catch (Exception e) {
logger.error(e);
}finally {
DBConnection.closeResultSet(rs);
DBConnection.closePreparedStatement(ps);
DBConnection.closeConnection(conn);
logger.info("结束时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
}
return y;
}
public void getLicenseDepartTimeMap(Map<String,String> m,Map<String,Object> map22){
Iterator iter =m.keySet().iterator();
String license="";
String departTime="";
while(iter.hasNext()){
String key =(String) iter.next();
if(key!=null||!"".equals(key)){
if("LICENSE_PLATE".equals(key)){
license = m.get(key);
}else if("DEPART_TIME".equals(key)){
departTime =m.get(key);
}
if(license!=""&&departTime!=""){
String a = (license+departTime).replace(" ","");
map22.put(a, m);
break;
}
}
}
}
private void getRtBusPlandepartInsert(JSONArray insertlist,String lineids){
//插入
try {
if(insertlist.size()>0){
SQL = "INSERT INTO RT_BUS_PLANDEPART(VEH_ID,LICENSE_PLATE,DATA_TIME,INSERT_TIME,SIGNPOST,DEPART_TIME,DEPART_STATION,SHIFT_TYPE,LINE_ID,TYPE) VALUES(?,?,?,?,?,?,?,?,?,?)";
ps = conn.prepareStatement(SQL);
for (int k = 0; k < insertlist.size(); k++) {
String vehId = insertlist.getJSONObject(k).getString("vehicleid");
String licensePlate = insertlist.getJSONObject(k).getString("vehicleno");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = insertlist.getJSONObject(k).getString("lupai");
String departTime = insertlist.getJSONObject(k).getString("starttime");
String dapartStation = insertlist.getJSONObject(k).getString(
"startstation");
String shiftType = insertlist.getJSONObject(k).getString("type");
ps.setString(1, vehId);
ps.setString(2, licensePlate);
ps.setTimestamp(3, ts2);
ps.setTimestamp(4, ts);
ps.setString(5, signpost);
ps.setString(6, departTime);
ps.setString(7, dapartStation);
ps.setString(8, shiftType);
ps.setString(9, lineid);
if("007108".equals(lineids)){
ps.setString(10, qujian);
}else if("007109".equals(lineids)){
ps.setString(10, quancheng);
}
ps.addBatch();
if(k%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
}
} catch (Exception e) {
logger.error(e);
}
};
private void getRtBusPlandepartUpdate(JSONArray updatelist,String lineids){
//更新
try {
if(updatelist.size()>0){
SQL = "UPDATE RT_BUS_PLANDEPART SET VEH_ID=?,DATA_TIME=?,INSERT_TIME=?,SIGNPOST=?,DEPART_STATION=?,SHIFT_TYPE=?,LINE_ID=?,TYPE=? where trim(LICENSE_PLATE)=? and trim(DEPART_TIME) =? ";
ps = conn.prepareStatement(SQL);
for (int k = 0; k < updatelist.size(); k++) {
String vehId = updatelist.getJSONObject(k).getString("vehicleid");
String licensePlate = updatelist.getJSONObject(k).getString("vehicleno").replace(" ", "");
java.sql.Timestamp ts= new java.sql.Timestamp(System.currentTimeMillis());
String signpost = updatelist.getJSONObject(k).getString("lupai");
String departTime = updatelist.getJSONObject(k).getString("starttime").replace(" ", "");
String dapartStation = updatelist.getJSONObject(k).getString(
"startstation");
String shiftType = updatelist.getJSONObject(k).getString("type");
ps.setString(1, vehId);//车牌号
ps.setTimestamp(2, ts2);
ps.setTimestamp(3, ts);
ps.setString(4, signpost);
ps.setString(5, dapartStation);
ps.setString(6, shiftType);
ps.setString(7, lineid);
if("007108".equals(lineids)){
ps.setString(8, qujian);
}else if("007109".equals(lineids)){
ps.setString(8, quancheng);
}
ps.setString(9, licensePlate);
ps.setString(10, departTime);
ps.addBatch();
if(k%1000==0){
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();
}
} catch (Exception e) {
logger.error(e);
}
};
}
相关文章推荐
- oracle的一些操作
- OCI连接oracle 12C
- 如何让其他机器访问你的oracle数据库
- PLSQL连接远程Oracle服务器出现ORA-12638错误
- PowerDesigner_15连接Oracle11g,反向工程导出模型图
- Oracle ADDM 自动诊断监视工具 介绍
- 【Oracle】——pl/sql中文乱码,显示“?”
- Oracle查询脚本优化
- Oracle查询数据表数据很少却很慢
- Java 存储和读取 oracle CLOB 类型字段的实用方法
- centos7下安装oracle11gR2的详细步骤
- Oracle 锁表 解除
- Oracle查询日期
- 卸载Oracle数据库完美解决方案
- win(64位)环境下oracle11g的安装方法
- oracle的一些基本操作
- Oracle 11g服务详细介绍及哪些服务是必须开启的?
- 从零开始学习Oracle数据库-付强-专题视频课程
- oracle 函数(聚合函数等等)精华
- 谈一谈Oracle11gR2的审计管理