可以使用以下代码实现:

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Main {
    private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
    private static final String DB_USERNAME = "username";
    private static final String DB_PASSWORD = "password";

    public static void main(String[] args) {
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(Main.class.getClassLoader().getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sessionFactory.openSession();
        try {
            Writer writer = new FileWriter("output.txt");
            sqlSession.select("com.example.mapper.MyMapper.select", null, (resultContext) -> {
                MyData data = (MyData) resultContext.getResultObject();
                try {
                    writer.write(data.toString() + "\n");
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            sqlSession.close();
        }
    }
}

class MyData {
    private int id;
    private String name;

    public MyData(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "MyData [id=" + id + ", name=" + name + "]";
    }
}

其中,MyMapper 对应的 XML 配置文件如下:

<mapper namespace="com.example.mapper.MyMapper">
    <select id="select" resultType="com.example.Main$MyData">
        SELECT * FROM mytable
    </select>
</mapper>

这样,就可以从数据库中读取数据,并将数据流式写入到文件中

用java程序和mybatis通过流式读取数据库读一条写入文件一条

原文地址: https://www.cveoy.top/t/topic/ggnw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录