我在向oracle 10g数据库添加阿拉伯数字时遇到问题。阿拉伯语单词成功添加,但如果我在我的字符串中添加数字,那么数字将被保存为??在数据库中。
我应该修复java代码,以便它可以添加数字因为如果我改变?在oracle SQL开发人员中使用阿拉伯数字它可以正常工作。
这是一个例子:'قبلاكثرمن?? شهر' - >这应该是这样的'قبلاكثرمن12شهر'
我已经更改了数据库字符集和NLS_LANG,因此oracle可以支持阿拉伯语。
我需要帮助。
1 个答案:
答案 0 :(得分:0)
这是servlet的一部分。
String PeriodNameList = request.getParameter(" PeriodNameList");
DataBaseConnection DataBaseConnection = new DataBaseConnection();
Con = DataBaseConnection.getConnection();
AgendaPeriodesBean AgendaPeriodesBean = null;
String [] SplitedPeriodNameList = PeriodNameList.split(",");
for(int j = 0; j< SplitedPeriodNameList.length; j ++){
AgendaPeriodesBean = new AgendaPeriodesBean();
AgendaPeriodesBean.setAGENDA_PERIODE_TRANS_NAME(SplitedPeriodNameList [j]的.trim());
Agenda.AddAgendaPeriodTrans(AgendaPeriodesBean);
J ++;
}
DAO部分。
public Integer AddAgendaPeriodTrans(AgendaPeriodesBean Bean)抛出UnsupportedEncodingException {
整数更新= null;
PreparedStatement preparedStatement = null;
StringBuffer query = new StringBuffer();
query.append(" INSERT INTO AGENDA_PERIODE_TRANSLATION(");
query.append(" AGENDA_PERIODE_TRANS_NAME");
query.append(")");
query.append(" VALUES(?)");
int counter = 1;
尝试{
preparedStatement = con.prepareStatement(new String(query));
String str = new String(Bean.getAGENDA_PERIODE_TRANS_NAME()。getBytes(" 8859_1")," UTF-8");
System.out.println(" str:str:" + str);
if(Bean.getAGENDA_PERIODE_TRANS_NAME()!= null){
preparedStatement.setString(counter ++,Bean.getAGENDA_PERIODE_TRANS_NAME());
} else {
preparedStatement.setNull(counter ++,Types.NVARCHAR);
}
updated = preparedStatement.executeUpdate();
} catch(SQLException sqlException){
System.out.println(" AddAgendaPeriodTrans:" + sqlException.getMessage());
更新= NULL;
} finally {
query = null;
尝试{
if(preparedStatement!= null){
preparedStatement.close();
}
} catch(异常异常){
}
}
返回更新;
}