从mysql查询

时间:2015-06-17 15:07:57

标签: java mysql

我有一个包含数据类型为varchar的字段的表,因此它可以包含任何类型的文本,包括字母数字字符和符号等。我必须在java中创建的模块中使用mysql查询获取该文本并写入一份文件。在单行文本中,它可以正常工作,但是当文本中有\ n时会出现问题。

ISSUE:

当我通过查询获得文本时,我没有找到值中的任何\ n但是当我在文件中写入时,它是用换行符写的。后来我必须使用其他一些java实用程序逐行读取该文件,并且换行符会影响我的逻辑。

示例:

Hafiz saleem ullah     
Hamza iron store  
 ( New lari adda Jalal pur bhattian)  
0547 500830  
03006523830  
03229256356

上面的文字存储在一个字段中,但如上所述显示。文本中没有\ n可见但实际上有。这是单行文本,由于换行符而分为多行。

从DB获取数据的代码:

以下是使用作为参数sqlStmt传递的存储过程从DB获取数据并从结果中提取值的java代码行。

conn = DatabasePool.poolDs.getConnection();
stmt = conn.createStatement();
rslt = stmt.executeQuery(sqlStmt);
int numcols = rslt.getMetaData().getColumnCount();
while (rslt.next()) {
    String[] row = new String[numcols];
    for (int i = 0; i < numcols; i++) {
    row[i] = rslt.getString(i + 1);
    }
result.add(row);
}

if (result.size() > 0) {
    status = result.get(0)[0]; //toString() is implicit here
}

注意: 现在数据处于状态变量中,使用log4j库在文件中写入。

2 个答案:

答案 0 :(得分:0)

<div class="locationSelection">
@(Html.Kendo().DropDownList()
.Name("locationList")
.DataTextField("DisplayName")
.DataValueField("LocationCode")
.BindTo(Model)
.OptionLabel(new { DisplayName = "Select Your Location....", LocationCode = "NA" })
)
</div>
<div id="userSelection">
<div id="currentQueue">
    @Html.ImageLink("/Images/CurrentPickups.jpg", "Search", "Search", "Manage Current Pickups")
</div>

<div id="previousSubmissions">
    @Html.ImageLink("/Images/PreviousSubmissions.jpg", "Search", "searchPrevious", "Search Previous Pickups")
</div>
<div>
    &nbsp;
</div>
</div>
<script type="text/javascript">
$("#userSelection a").click(function (e) {
    e.preventDefault();
    var href = $(this).attr('href');
    var dropdownlist = $("#locationList").data("kendoDropDownList");
    if (dropdownlist.value() != "NA") {
        var route = href + "?locationCode=" + dropdownlist.value();
        window.location.href = route;
    } else {

        alert("A valid location must be selected!");
    }
});
</script>

答案 1 :(得分:0)

我想除了\n之外,文字可能包含\r。 经过测试,下面的代码可以解决您的问题,例如:

String yourResult = "abc\r\n def\r\n\t1234";
yourResult = yourResult.replaceAll("[\\n\\r]", "");

输出将是:

abc def 1234