java将.txt数据与mysql比较,排序成为mysql里的顺序,并导入到指定的.txt标签

假设数据库的内容是这样图片说明
.txt文本的内容是这样图片说明
需要将.txt内容读取,并排列成为mysql数据库一样的顺序(数据库里面是没有name这个标签的),然后再插入另一个.txt文本里面,像这样,左边是没有插入前,右边是插入后的结果图片说明,这个要怎么样实现呢?利用数组可以吗?麻烦发个代码看一下, 详细些,谢谢大牛们。

14个回答

![图片说明](https://img-ask.csdn.net/upload/201808/09/1533821981_337319.png)图片说明
这个是文件 配合代码看下 我没有连接数据库 查询出来的直接放那个list中就可以了我有注释哪里你看下

qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 不是 ,因为你不是需要通过数据库查询的嘛 然后把我构建假数据替换成数据库查询出来的就可以,ye是list
接近 2 年之前 回复
ggx1abc
gu123xin 回复qq_36546907: 哥,你代码上写构建的数据是指我上面标签下面的数据吗?
接近 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 有什么问题可以留言啦
接近 2 年之前 回复
ggx1abc
gu123xin 好的,我看看,谢谢。
接近 2 年之前 回复

非要用java吗 java写起来有点麻烦 python可以吗

qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 发给你啦 你看下 我自己试过的 没问题,具体的字段你想怎么加怎么加 在输出的时候
接近 2 年之前 回复
ggx1abc
gu123xin 回复qq_36546907:好的呀,谢谢大佬
接近 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 写好啦 晚上回去发给你啦啦啦
接近 2 年之前 回复
ggx1abc
gu123xin 可以的,只要实现就可以的了
接近 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 哈哈哈 周末给你写好代码粘贴上来 这个不难的
接近 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 利用集合可以吗
接近 2 年之前 回复
ggx1abc
gu123xin 回复qq_36546907: 好的,麻烦了,现在我也在寻找方法和学习中,哥,到时候无论你的是否成功,我都采纳,十分感谢
接近 2 年之前 回复
qq_36546907
不忘初心方得始终小飞哥 回复ggx1abc: 那就等周末了 帮你写好吧
接近 2 年之前 回复
ggx1abc
gu123xin python没有环境,而且我目前还没有接触过python,我很菜的,现在在慢慢学习java基础,大哥不好意思呀
接近 2 年之前 回复

大概写了一下实现思路,你按照这个思路写一下应该就可以,有些注释的地方,需要你来自己手工敲下代码实现

 public class TestCase {
    public static void main(String[] args) {
        List<User> dbUsers = null;//...从数据库中查询出 数据集合
        List<User> txtUsers = null;//...从txt读取出用户集合
        List<User> sortUsers = new ArrayList<User>(txtUsers.size());//...申明排序后的用户集合
        for(User dbUser: dbUsers){
            for(User txtUser : txtUsers){
                //如果txtUser = dbUser 则加入排序后的用户集合
                if(dbUser.getId().equals(txtUser.getId())){
                    sortUsers.add(txtUser);
                    break;
                }
            }
        }

        List<OtherObject> finalTextObjects = null; //从最后的txt文件中按行及分割 , 解析出java对象集合;
        for(int i=0;i<finalTextObjects.size();i++){
            OtherObject otherObject = finalTextObjects.get(i);
            otherObject.setName(sortUsers.get(i).getName());
        }
        //然后将 finalTextObjects从新写入到 txt文件中;
    }

}

//第一个txt对应的java对象
class User{

    private String id;

    private String name;

    // ...getter setter
}
//最后一个txt对应的java对象
class OtherObject{
    private String host;
    private String name;
    private String home;
    private String news;
    // ...getter setter
}
private void LoadTxt(String FilePath, HashMap<String, String> TxtData) {
    String line = "";
    try {
        FileReader mFileReader = new FileReader(FilePath);

        BufferedReader in = new BufferedReader(mFileReader);
        try {
            line = in.readLine();
            while (line != null) {
                SplitData(line, TxtData);
                line = in.readLine();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.e("TAG", String.format("IOException:%s", e.getMessage()));
        }
    } catch (FileNotFoundException e) {
        Log.e("TAG", String.format("FileNotFoundException:%s", e.getMessage()));
    }

    Set<Entry<String, String>> DataEntries = TxtData.entrySet();
    if (DataEntries != null) {
        Iterator<Entry<String, String>> iterator = DataEntries.iterator();
        while (iterator.hasNext()) {
            HashMap.Entry<String, String> entry = iterator.next();
            Log.e("TAG", String.format("Key:%s,Value:%s", entry.getKey(), entry.getValue()));
        }
    }
    // use LinkedList to sort, because insertion of elements in linked list
    // is faster than ArrayList.
    LinkedList<HashMap.Entry<String, String>> aList = new LinkedList<HashMap.Entry<String, String>>(DataEntries);
    // sorting the List
    Collections.sort(aList, new Comparator<HashMap.Entry<String, String>>() {
        @Override
        public int compare(HashMap.Entry<String, String> ele1, HashMap.Entry<String, String> ele2) {
            return ele1.getKey().compareTo(ele2.getKey());
        }
    });

    // Storing the list into Linked HashMap to preserve the order of
    // insertion.
    HashMap<String, String> aMap2 = new LinkedHashMap<String, String>();
    for (HashMap.Entry<String, String> entry : aList) {
        aMap2.put(entry.getKey(), entry.getValue());
    }
    // printing values after sorting of map
    Log.e("TAG", "Values and Keys after sorting ");
    for (HashMap.Entry<String, String> entry : aMap2.entrySet()) {
        Log.e("TAG", String.format("Key:%s,Value:%s", entry.getKey(), entry.getValue()));
    }
}

public void SplitData(String line, HashMap<String, String> TxtData) {
    String[] Key_Value = line.split(",");
    TxtData.put(Key_Value[0], Key_Value[1]);
}
希望可以帮到一点点忙
ggx1abc
gu123xin 谢谢大佬,感激不尽
接近 2 年之前 回复
    try{
        ResultSet res = null;//这里 自己查询结果 
        //存储数据库顺序的map
        Map<String, String> map = new HashMap<>();
        map.put(res.getString("id"), null);


        //读取文件  
        map.put("你的txt中的跟id字段对应的位置的数据", "你的txt中的跟id字段对应的位置的数据对应的值");

        //现在这个map就是跟数据库排序一样的了直接遍历map放到另一个txt中就行了
    }catch(Exception e){
        System.out.println("操作错误");
    }

mysql数据库比较大的,该怎么样选取“id”存入数组

在Java端这个事好办,可以以数组形式操作,前期对于mysql数据库进行流式读取,放入数组中。后期读取.txt,并放入新的数组中,遍历就行了

按照 行,每行读出来,然后在txt再打印出来,for循环,格式按照自己方式打印出来就可以

会的大牛可以写个代码,感激不仅,我java才刚刚学习,不会操作

分不多,希望有空的大神可以帮忙,谢谢大家了

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐