java 怎么多表同时插入到数据库啊?
PHP中文网
PHP中文网 2017-04-18 10:35:54
0
4
529
PHP中文网
PHP中文网

认证0级讲师

membalas semua(4)
大家讲道理

JDBC sendiri menyokong kemas kini kelompok, API khusus adalah seperti berikut:

addBatch(String sql): Kaedah kelas Pernyataan, anda boleh menambah berbilang pernyataan sql pada senarai pernyataan SQL objek Pernyataan
addBatch(): Kaedah kelas PreparedStatement boleh menambah berbilang penyata sql yang telah dikompilasi pada senarai pernyataan SQL bagi objek PreparedStatement
executeBatch(): Hantar semua pernyataan SQL dalam objek Statement atau senarai pernyataan bagi Proses objek PreparedStatement pangkalan data
clearBatch(): Kosongkan senarai pernyataan SQL semasa

Menggunakan API kemas kini kelompok, saya akan melaraskan kod anda seperti berikut: (Nota: Jika senarai SQL mengandungi terlalu banyak pernyataan SQL yang belum selesai, ralat OutOfMemory mungkin berlaku. Oleh itu, senarai pernyataan SQL perlu diproses tepat pada masanya cara.)

public class AddBatchSql {

    public void add(String fid,String title,String content){
        Connection connection = null;
        Statement stmt = null;
        String sql1 = null;
        String sql2 = null;

        try{
            connection = ConnectionUtils.getConnection();
            stmt = connection.createStatement();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateValue = simpleDateFormat.format(new Date());
            sql1 = "insert into news_base(fid,title,date,author) values("+fid+",'"+title+"','"+dateValue+"','Admin')";
            sql2 = "insert into news_content (cid,content) values("+fid+",'"+content+"')";
            List<String> sqlList = new ArrayList<String>();
            sqlList.add(sql1);
            sqlList.add(sql2);
            for (int i = 0; i < sqlList.size(); i++) {
                String sql = sqlList.get(i);
                stmt.addBatch(sql);
                if (i==500) {
                    stmt.executeBatch();//为避免出现OutOfMemory错误,及时处理
                    stmt.clearBatch();//清空列表
                }
            }
            //最后一次列表不足500条,处理
            stmt.executeBatch();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(stmt != null){
                try{
                    stmt.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
    
}
伊谢尔伦

Berbilang rekod yang berkaitan mesti ditulis baris demi baris menggunakan kaedah ini.

伊谢尔伦

Anda boleh menggunakan addBatch() untuk menyusun penyataan proses

小葫芦

Manfaat rangka kerja ditunjukkan, ia akan membantu anda melakukan operasi berulang

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!