java向数据库插入N条数据

为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试。手动插入太麻烦,写了一段代码。

先上代码:


package action;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class InsertData {

public Connection getConnection(){
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名scutcs
String url = "jdbc:mysql://127.0.0.1:3306/wang";
// MySQL配置时的用户名
String user = "root";
// MySQL配置时的密码
String password = "12345";
Connection conn=null;

try {
// 加载驱动程序
Class.forName(driver);
// 连续数据库
conn = DriverManager.getConnection(url, user, password);
}
catch (Exception e) {
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();// TODO: handle exception
}
return conn;
}

public int insertData(int count,String value) throws SQLException{
InsertData insertData=new InsertData();
Connection conn=insertData.getConnection();
if(!conn.isClosed())
System.out.println("begin insert!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
int n=0;
for (int i = 0; i <=count; i++) {
String sql = "insert into student(Sno,Sname) values(‘"+i+"‘,‘"+value+"‘)";
n=statement.executeUpdate(sql);
n++;
}
System.out.println("insert end!");
return n;
}

/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
InsertData insertData=new InsertData();
Connection conn=insertData.getConnection();
if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
int n=0;
n=insertData.insertData(10000,"数据内容");
System.out.println("the Count is:"+n);

// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select * from student";
// 结果集
ResultSet rs = statement.executeQuery(sql);

System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println(" 学号" + "\t" + " 姓名");
System.out.println("-----------------");

String name = null;

while(rs.next()) {
name = rs.getString("sname");
System.out.println(rs.getString("Sno") + "\t" + name);
}

rs.close();
conn.close();

}

}

这样插入数据太慢了,不知道是程序慢,还是数据库太慢。这个回去再研究,等待下文。

时间: 2024-08-08 12:37:36

java向数据库插入N条数据的相关文章

向Oracle数据库插入一条数据

这几天搞了一下Oracle数据库,可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 ,既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来.不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲突了,唯一的 'Cms', 'Cms 网站', 'Cms', 2 , 'CMS', '广告内容管理系统' ,

优化SQLite3数据库插入1000条数据

如果用普通的方式向数据库中插入10000条数据,会不会妨碍用户体验呢?答案是肯定会,那么如何优化我们的数据库的各种操作呢. (1)使用事务. String sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)"; SQLiteStatement stat = db.compileStatement(sql); db.beginTransaction(); for (S

往数据库插入上万条数据避免服务器崩溃

<?php //mysql执行时间 ini_set('max_execution_time', '0'); ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort //链接数据库:链接的服务器,拥有服务器进程的用户的名称,密码 $con[email protected]mysql_connect("localhost","root","root"); // 判断数据库是否连接 if(!$con){

使用JDBC向数据库中插入一条数据

原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * createStatement() 方法来获取 1.2 通过executeUpdate(sql) 的方法来执行SQL 1.3 * 传入的SQL可以是INSERT/UPDATE/DELETE,但不能是SELECT * * 2.Connection和Statement使用后一定要记得关闭 需要在finally

数据库一次性插入10w条数据,怎么插入效率快

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). bulk方法主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库 代码如下: public static void BulkToDB(DataTab

经过多次的测试,最终写出了access数据库一次插入多条数据

OleDbConnection inconn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=DB.mdb"); inconn.Open(); OleDbTransaction myTrans = inconn.BeginTransaction(); OleDbCommand incmd = inconn.CreateCommand(); incmd.Transaction = myTrans; s

插入数据库 每次1000条数据

$sql = "insert into `elconlist` (`ecgrouid`,`elcono`) VALUES"; for($i = 0; $i < $ecnum; $i++){ //拼装SQL if($i != $ecnum-1){ if((float)($i+1)%1000 != 0){ $sql .= "(".$ecgrouid.",'".$this->creatElcono($comid)."'),&quo

向数据库中插入10000条数据

今天,在进行项目测试的时候,想要事先在数据库中插入10000条数据.之前在SQLServer的期末项目中也使用过,但是却也记不清了. DELIMITER $$ --定义结束符为"$$", DROP PROCEDURE IF EXISTS `proc_auto_insertdata`$$ CREATE PROCEDURE `proc_auto_insertdata`() BEGIN DECLARE pid INTEGER DEFAULT 1; WHILE pid <= 10000

jdbc:mysql和oracle插入一条数据返回主键

package org.sin.common.dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import or