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

认证0级讲师

全部回覆(4)
大家讲道理

JDBC本身支援批次更新,具體API如下:

addBatch(String sql):Statement類別的方法, 可以將多條sql語句加入Statement物件的SQL語句列表中
addBatch():PreparedStatement類別的方法,可以將多條預編譯的sql新增到PreparedStatement物件的SQL語句清單中
executeBatch():把Statement物件或PreparedStatement物件語句列表中的所有SQL語句傳送給資料庫處理
clearBatch( 使用批次更新API,我將你的程式碼調整如下:(附註:如果SQL清單包含過多的待處理SQL語句, 可能會產生OutOfMemory錯誤。所以需要及時處理SQL語句清單。)

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();
                }
            }
        }
    }
    
}
伊谢尔伦

多條相關聯的記錄用這種方法肯定是要一行一行寫的,你可以自己封裝一下,看起來應該好不了多少,還是用的orm框架吧,可讀性好些。

伊谢尔伦

可以用addBatch()批次處理語句

小葫芦

框架的好處就體現出來了,會幫你做重複的操作

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板