您的位置:首页 > 编程语言 > Java开发

在JAVA向Mysql的数据库中插入数据过大所遇到的问题

2017-11-16 13:03 746 查看
首先写一个操作程序,向数据库中插入多条记录,程序如下:

package com.oracle.jdbc1.test;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

public class TestUpdate {

public static void main(String[] args) {
int  cum=0;
try {
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/for1703a", "root", "root");
Statement  stat=conn.createStatement();
StringBuilder  sb=new  StringBuilder();
for(int  i=0;i<50000;i++)
{
if(i%50==0)
{
    cum++;
}
sb.append("("+(i+1)+",'wowo"+(i+1)+"',"+cum+")");  
if(i!=49999)
{
sb.append(",");
}
}
System.out.println(sb.toString());
int  num=stat.executeUpdate("insert  into  classfor(id,name,number)  values "+sb.toString());
System.out.println(num);
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

}

将程序运行,会出现错误提示如下:



会出现: Packet for query is too large (1172489 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.的字样

是因为Mysqlxitong 的参数中MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),说明程序中所要插入的数据超过了这个限值。
解决的办法就是在Mysql的安装目录下修改此变量的值,在安装目录下找到my.ini文件,在文件中修改max_allowed_packet的值,例如将max_allowed_packet=1M改成max_allowed_packet=4M(或者可以改更大,根据自己的需求进行更改),之后在重启Mysql就可以了。但是有文件中没有max_allowed_packet这个语句,那么自己填写上就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 mysql java 数据
相关文章推荐