IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> JAVA使用JDBC插入数据库数据(十分方便好用,成功连接数据库后只需建相应的表填好路径和表名即可) -> 正文阅读

[大数据]JAVA使用JDBC插入数据库数据(十分方便好用,成功连接数据库后只需建相应的表填好路径和表名即可)

使用JAVA连接JDBC连接mysql数据库,只需建相应的表填好路径和表名即可,下面以一个例子作为讲解:
1.首先观察需要的数据(CSV文件)
在这里插入图片描述
这个是经过处理过的借书的记录表,有五列无缺失值,其中字段有时间、字符串和数字类型。

2.在数据库中建立相应的表

CREATE TABLE borrow1(
Bno INT,
id INT,
借阅日期 Datetime,
图书名称 VARCHAR(800),
图书编号 VARCHAR(200),
PRIMARY KEY(Bno)
);

建立一个名字为borrow1的表,字段值详见代码。

3.修改JAVA代码对应值

package com.hzjxy.jdbc;

import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class to_csdn {
public static void main(String[] args) {

		
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {

			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://127.0.0.1:3306/student_data";//连接到自己的数据库,我链接的数据库为student_data
			String user = "root";//数据库登录用户名
			String password = "root";//数据库登录密码
			String sql_name = "borrow1";//需要插入的表名
			String csv_path = "D:\\pcham\\浙江财经大学数据挖掘\\学生画像去重后\\borrow.csv";//与插入表数据对应的csv文件路径
			conn = DriverManager.getConnection(url, user, password);
			stmt = conn.createStatement();
			
		    String sql_col = "select * from "+sql_name+" where 1 = 2";
		    rs = stmt.executeQuery(sql_col);
		    ResultSetMetaData metaData = rs.getMetaData(); 
		    int col = metaData.getColumnCount();
		    String col_name = "";
		    String type = "";
		    for(int i=1; i <= col; i++) {
		    	if(i == 1)col_name += metaData.getColumnName(i);
		    	else col_name += ","+metaData.getColumnName(i);
		    	if(i == 1)type += metaData.getColumnTypeName(i);
		    	else type += " " + metaData.getColumnTypeName(i);
		    }
		    String col_type[] = type.split(" ");
		    
		    try { 
	            BufferedReader reader = new BufferedReader(new FileReader(csv_path));
	            reader.readLine();
	            String line = null; 
	            while((line=reader.readLine())!=null){ 
	                String item[] = line.split(",");
	                String values = "";
	                for(int i=0; i<item.length; i++) {
	                	if(col_type[i].equals("INT") || col_type[i].equals("DECIMAL")) {
	                		if(i == 0)values += "values(" + item[i];
	                		else {
	                			values += ","+item[i];
	                		}
	                	}
	                	else{
	                		if(i == 0)values += "values(" + "'" + item[i] + "'";
	                		else {
	                			values += "," + "'" + item[i] + "'";
	                		}
	                	}
	                }
	                values += ")";
	                
	                String sql = "insert into "+sql_name+"(" + col_name + ")" + " " + values;
	                int count = stmt.executeUpdate(sql);
	                if(count == 1)System.out.println("插入成功");
	            } 
	        } catch (Exception e) { 
	            e.printStackTrace(); 
	        } 
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally 
		{
			
			if(rs!=null) 
			{
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}if(stmt!=null) 
			{
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}if(conn!=null) 
			{
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

        
	}

}

这个是直接从我的java类里拷过来的,因此类名和包名需要自己对应修改。

连接成功数据库(可以去了解JDBC的用法)修改好JAVA代码中的路径和数据表名之后,点击运行,即可插入数据。
结果如下:
在这里插入图片描述
如果出现乱码的情况可能是因为编码问题造成的,可以去找找别人的博客瞧瞧,我这里Java将eclipse编码文件格式改为UTF-8了,可能直接传就没什么问题。

需要注意的是,如果插入的数据有英文单引号或者双引号,这个程序可能会报错,因为我是通过单引号和双引号的操作来区分数值类型还是字符类型,如果有“、’则会使得sql语句错误,从而报错,因此可以用python读取csv替换掉里面的‘、”以保证程序成功运行。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:00:53  更:2021-12-14 16:01:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:08:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码