小编Nas*_*sir的帖子

如何使用Hibernate尽快插入数据

我读取文件并从中创建一个Object并存储到postgresql数据库.我的文件有100,000个文件,我从一个文件中读取并拆分并最终存储到数据库.我无法创建List<>和存储所有文档,List<>因为我的RAM很少.我读写数据库的代码如下.但是我的JVM堆填充并且无法继续存储更多文档.如何有效地读取文件和存储到数据库.

public void readFile() {
    StringBuilder wholeDocument = new StringBuilder();
    try {
        bufferedReader = new BufferedReader(new FileReader(files));
        String line;
        int count = 0;
        while ((line = bufferedReader.readLine()) != null) {
            if (line.contains("<page>")) {
                wholeDocument.append(line);
                while ((line = bufferedReader.readLine()) != null) {
                    wholeDocument = wholeDocument.append("\n" + line);
                    if (line.contains("</page>")) {
                        System.out.println(count++);
                        addBodyToDatabase(wholeDocument.toString());

                        wholeDocument.setLength(0);
                        break;
                    }
                }
            }
        }
        wikiParser.commit();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            bufferedReader.close(); …
Run Code Online (Sandbox Code Playgroud)

java database performance hibernate jpa

6
推荐指数
2
解决办法
2021
查看次数

手动调用组件监听器

我向 JCheckBox 组件添加了一个监听器,我想手动调用监听器。怎么做?

myCheckBox.selected(false) 
Run Code Online (Sandbox Code Playgroud)

然后我想调用 myCheckBox 侦听器。你有更好的主意吗?

java swing

3
推荐指数
1
解决办法
2460
查看次数

为什么Hibernate会返回随机结果?

我想使用Hibernate从数据库中读取数据.我想从第一行开始,读取200行并处理它们,然后读取接下来的200行.但是Hibernate每次都会返回一个随机行.

此方法从数据库中读取.

public List getPages(int start, int end) {
    Criteria queryCriteria = session.createCriteria(Page.class);
    queryCriteria.setFirstResult(start).setMaxResults(end);
    return queryCriteria.list();
}

public void MyFunction(){
    while (readFlag) {

        //get page from database;
        List<Page> pagesList = database.getPages(startFromDatabaseIndex,
                    READ_FROM_DATABASE_SIZE);

        if ((pagesList == null) || (pagesList.size() == 0)) {
            break;
        }
        if (pagesList.size() < READ_FROM_DATABASE_SIZE) {
                readFlag = false;
        } else {
            startFromDatabaseIndex = startFromDatabaseIndex + 200;
        }

        for (int i = 0; i < pagesList.size(); i++) {
             process();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java hibernate

-1
推荐指数
1
解决办法
284
查看次数

标签 统计

java ×3

hibernate ×2

database ×1

jpa ×1

performance ×1

swing ×1