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(); } }
这样插入数据太慢了,不知道是程序慢,还是数据库太慢。这个回去再研究,等待下文。
java向数据库插入N条数据的更多相关文章
- 你向 Mysql 数据库插入 100w 条数据用了多久?
阅读本文大概需要 2 分钟. ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程 ...
- 向Oracle数据库插入一条数据
这几天搞了一下Oracle数据库.可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 .既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Orac ...
- Hibernate实现向数据库插入一条数据全过程(Study By Example)
1.数据库(直接在cmd下进入数据库操作亦可) (1)启动Navicat for MySQL (2)打开连接,创建一个数据库,名为testdb (3)新建表user1,表结构如图所示 2.数据库池 ( ...
- 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二
这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...
- 【JDBC】使用Spring提供的JDBCTemplate通过PrepareStatement向MySql数据库插入千万条数据,耗时32m47s,速度提升有限
数据库环境还和原来一样,只是从Statement换成了PrepareStatement,都说PrepareStatement因为预编译比Statement快,但是实际运行真快不了多少. 代码如下: p ...
- 数据库一次性插入10w条数据,怎么插入效率快
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量 ...
- 使用JDBC向数据库中插入一条数据
原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * cre ...
- oracle 向数据库同时插入多条数据
oracle 与 mysql 不同. mysql 可以直接插入多条数据的操作: 采用 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 或者 INSERT ...
- java之5分钟插入千万条数据
虽说不一定5分钟就插入完毕,因为取决去所插入的字段,如果字段过多会稍微慢点,但不至于太慢.10分钟内基本能看到结果. 之前我尝试用多线程来实现数据插入(百万条数据),半个多小时才二十多万条数据. 线程 ...
随机推荐
- 基于http协议实现RPC远程调用
今天简单说一下基本Http协议来实现RPC框架~ 基于Http协议实现RPC框架: 优点: 1.简单.实用.开发方便 缺点: 1.性能不是很稳定,在海量数据时,完全顶不住,容易宕机 2.因为不是走的注 ...
- pythonNetday06
进程 Process(target,name,args,kwargs) p.pid : 创建的新的进程的PID号 p.is_alive() 判断进程是否处于alive状态 p.daemon = Tru ...
- sql多表更新使用别名(小技巧)
update A set A.CityRegionID=B.ParentID, A.CityName=(select RegionName from Common_Region ...
- Service Mesh扫盲
原文:http://www.infoq.com/cn/news/2017/12/why-service-mesh 摘要: 对 Service Mesh 的理解?它的出现最终是为了解决什么问题? Ser ...
- javascript 特定字符分隔字符串函数
function fn(num,div,token){//num需要分割的数字,div多少位分割 token分割字符 num=num+'',div=div||3,token=token||',' re ...
- vs2010下使用绘图控件MsChart的方法
1. 使用setupmschart.exe将MSCHRT20.OCX注册到系统: http://download.csdn.net/detail/xiaowh001/8892147 2. 在vs201 ...
- AUC,KS,ROC
要弄明白ks值和auc值的关系首先要弄懂roc曲线和ks曲线是怎么画出来的.其实从某个角度上来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同而已.拿逻辑回归举例,模型训练完成之后每个样本都会得 ...
- Gradle系列之从init.gradle说起
从maven说起 用过maven的开发都知道,在maven里一些信息可以定义在全局的配置文件中,比如把一些仓库信息定义在用户目录/.m2/setting.xml文件中,这样就不用每个项目都配置这些相同 ...
- [Android开源项目] GitHub开源项目总结 (转)
[Android开源项目] GitHub开源项目总结 GitHub开源项目android-styled-dialogs http://neast.cn/forum.php?mod=viewthread ...
- Python id() 函数
Python id() 函数 Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...