private Connection conn = null;
private Statement stmt;
private String dbFile = "";
private String tableName = "";
private HashMap xmlFields = new HashMap(); public AccessWriter(String dbFile, String tableName, String xmlFieldFile)
{
this.xmlFields.clear();
this.xmlFields.putAll(XmlReader.getChannelField(xmlFieldFile));
this.dbFile = dbFile;
this.tableName = tableName;
} /*
* (non-Javadoc)
*
* @see com.hylanda.datadig.nodewrite.INodeWriter#openFile()
*/
public boolean openFile()
{
//String strurl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="
// + this.dbFile;
String strurl = "jdbc:odbc:movie";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(strurl);
stmt = conn.createStatement();
stmt.execute("delete from " + this.tableName);
}
catch (SQLException e)
{
e.printStackTrace();
try
{
conn.close();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
return false;
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
return false;
}
return true;
} /*
* (non-Javadoc)
*
* @see com.hylanda.datadig.nodewrite.INodeWriter#closeFile()
*/
public boolean closeFile()
{
try
{
this.stmt.close();
this.conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
return false;
}
return true;
} /*
* (non-Javadoc)
*
* @see com.hylanda.datadig.nodewrite.INodeWriter#writeNode(java.lang.String)
*/
public boolean writeNode(String nodeText)
{
String strSql = "";
try
{
strSql = this.insertSql(nodeText);
this.stmt.executeUpdate(strSql);
}
catch (SQLException e)
{
System.out.println(strSql);
e.printStackTrace();
} return true;
} private String insertSql(String nodeText)
{
//create sql command
String ret = "";
String fieldsName = "", fieldsValue = "";
Iterator iterator = this.xmlFields.keySet().iterator();
while (iterator.hasNext())
{
String elementName = (String) iterator.next();
if (!this.chkCancelFields(elementName))
{
continue;
}
String elementValue = "";
elementValue = XmlFormat.getXmlElementValue(nodeText, elementName);
elementValue = this.filterCData(elementValue); //insert 语句检测(去掉关键字)
if (elementName.equalsIgnoreCase("from"))
{
elementName = elementName + "_";
}
else if (elementName.equalsIgnoreCase("date"))
{
elementName = elementName + "_";
}
else if (elementName.equalsIgnoreCase("time"))
{
elementName = elementName + "_";
}
else if (elementName.equalsIgnoreCase("text"))
{
elementName = elementName + "_";
}
//去掉elementValue中的非法字符
if (elementValue.indexOf('\'') >= 0)
{
elementValue = elementValue.replaceAll("'","‘");
}
if (fieldsName == "")
{
fieldsName += "INSERT INTO " + this.tableName + " ("
+ elementName;
if (elementName.indexOf("fulltime") < 0)
{
fieldsValue += "VALUES('" + elementValue + "'";
}
else
{
fieldsValue += "VALUES(" + elementValue + "";
}
}
else
{
fieldsName += "," + elementName;
if (elementName.indexOf("fulltime") < 0)
{
fieldsValue += ",'" + elementValue + "'";
}
else
{
fieldsValue += "," + elementValue + "";
}
}
}
fieldsName += ")";
fieldsValue += ")"; ret = fieldsName + " " + fieldsValue; return ret;
}
解决方案 »
- 引用到底为何物?引用类型又是什么?
- java jdbc连接数据如何接收反馈信息! 比如在不存在表插入数据!
- 实时移动曲线是如何实现的?
- 如何用JAVA程序实现将EXCEL文件导入ORACLE数据库
- 监控功能,求助线程有关问题
- Java中怎么返回多个值?
- 书中的代码 。关于javabean的,这个错误提示该怎么做??还有个疑问是 怎么根据错误提示知道什么地方错了。这个我怎么就看不出来呢
- 为什么菜单不显示图标?
- 除了sun以外,那里下载jdk1.5比较快?
- cmd命令行运行jar,输出内容卡死问题
- Java值传递问题
- 我用S60 Theme Studio(Java写成的)的速度巨慢,应该设置什么才能加快速度?
你的意思是jdbc的bug吗?