JAVA 读取指定文件并插入Orcale数据指定表中

必要配置

操作在eclipse里进行。在进行下面操作之前,注意需要将有关Oracle的数据库连接的jar包。
首先需要右键对应Java项目,选择Properties选项,然后找到Java build path,点击Add External JARs添加相应jar包。
在这里插入图片描述

下图为本机上已经下载好的Oracle数据库连接的Jar包,这里选用ojdbc6.jar做连接测试:Oracle数据库连接的Jar包

JAVA读取指定文件

需要读取的文件内容如下:

下面涉及大量代码片段。谨慎阅读,懒人自拷i(‾◡◝)

ReadFile.java1

package Ojdbc;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;

public class ReadFile {
 	public static void readTxtFile(String filePath){
 		StudentBean infoBean = new StudentBean();
 		try {
		  String encoding = "utf-8";
		  File file = new File(filePath);
		  if(file.isFile() && file.exists()){//判断该文件是否存在
		  InputStreamReader read = new InputStreamReader(new FileInputStream(filePath) ,encoding);
		  BufferedReader buffereReader = new BufferedReader(read);
		  String lineTxt = null;
		  OperationDB operationDB = new OperationDB();
		  while((lineTxt = buffereReader.readLine()) != null){ //从缓冲流中逐行读取数据
		  String[] s = lineTxt.split(" ");
		  infoBean.setSNAME(s[0].toString());
                  infoBean.setSSEX(new BigDecimal(s[1]));    
                  operationDB.addRcorder(infoBean);
                  System.out.println(lineTxt);
                  read.close();
		  operationDB.closeConnect();
		  } else {
	          System.out.println("找不到指定的文件");
	          }
	      } catch (Exception e) {
	          System.out.println("读取文件内容出错");
	          e.printStackTrace();
	      }
	  }
}
						 

TextMain.java2

package Ojdbc;

public class TextMain {
    public static void main(String[] args) {
 	String filePath = "C:\\Users\\yangj\\Desktop\\sql.txt"; 
        ReadFile.readTxtFile(filePath);
    }
} 

JAVA连接Oracle数据库

下面涉及大量代码片段。谨慎阅读,懒人自拷i(‾◡◝)
Jdbc.java3

package Ojdbc;
import oracle.jdbc.driver.OracleDriver;

/**
 * Created by youke_tsu on 2020/08/04.
 * JAVA连接Oracle的方式
 */
public class Jdbc{
    public static Connection getConnection() {
        Connection connect = null;
        try {
            //第一步:注册驱动
            //利用Driver对象
            Driver driver = new OracleDriver();
            DriverManager.deregisterDriver(driver);
            //第二步:获取连接
            //利用DriverManager(常用)
            //connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "你的oracle数据库用户名", "用户名密码");
            connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "glad", "glad");
            //测试connect正确与否
            System.out.println(connect);  
            System.out.println("链接成功");
             } catch (Exception e) {
            e.printStackTrace();
        }
        return connect;
        }
}

StudentBean.java4

package Ojdbc;

import java.math.BigDecimal;

public class StudentBean {
	 private String SNO;
	 private String SNAME;
	 private BigDecimal SSEX;
	 public String getSNO() {
	 	return SNO;
	 }
	 public void setSNO(String sNO) {
	  	SNO = sNO;
	 }
	 public String getSNAME() {
	  	return SNAME;
	 }
	 public void setSNAME(String sNAME) {
	  	SNAME = sNAME;
	 }
	 public BigDecimal getSSEX() {
	  	return SSEX;
	 }
	 public void setSSEX(BigDecimal sSEX) {
		SSEX = sSEX;
	 }
}

Student数据库表结构如下:
在这里插入图片描述
Student表管理的触发器SQL代码、顺序SQL代码如下(自增插入数据):
顺序SQL代码:

CREATE SEQUENCE  "AUTOID"  
MINVALUE 1 
MAXVALUE 99999 
INCREMENT BY 1 
START WITH 1 
CACHE 20 
ORDER  
NOCYCLE ;

触发器SQL代码:

CREATE OR REPLACE TRIGGER "TRG_CLOUD" 
before insert on student
for each row   
begin
select autoid.nextval into:new.sno from dual;
end;

OperationDB.java5

package Ojdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class OperationDB {
 private Connection con = null;
    public void addRcorder(StudentBean infoBean) throws SQLException {
	    if(con ==null){ //判断数据库连接是否为空
	       con = Jdbc.getConnection(); 
	    }
	    
	    String sql = "insert into student (sname, ssex) values(?,?) "; //插入语句
	    
	    PreparedStatement pstmt = con.prepareStatement(sql);
	    pstmt.setString(1, infoBean.getSNAME());   
	    pstmt.setBigDecimal(2, infoBean.getSSEX());   
	    
	    pstmt.executeUpdate();  //执行插入操作
	   }
   public void closeConnect() {
	   try { //关闭资源
 		if (con!=null) con.close();
	   } catch (SQLException e) {
   		e.printStackTrace();
	   }
   }
}

  1. 用来从txt文件中读取相应行列数据 ↩︎

  2. 主函数入口,读取指定位置文件交由其他函数接口处理 ↩︎

  3. 连接Oracle数据库相应数据库连接的 ↩︎

  4. Oracle数据库对应表的映射,方便获取数据和设置数据值 ↩︎

  5. 用来进行相应的数据库操作以及关闭数据库连接 ↩︎

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值