JAVA使用JDBC插入数据库数据(十分方便好用,成功连接数据库后只需建相应的表填好路径和表名即可)
Posted Icy Hunter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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替换掉里面的‘、”以保证程序成功运行。
以上是关于JAVA使用JDBC插入数据库数据(十分方便好用,成功连接数据库后只需建相应的表填好路径和表名即可)的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot实战之使用JDBC和Spring访问数据库