必要配置
操作在eclipse里进行。在进行下面操作之前,注意需要将有关Oracle的数据库连接的jar包。
首先需要右键对应Java项目,选择Properties选项,然后找到Java build path,点击Add External JARs添加相应jar包。
下图为本机上已经下载好的Oracle数据库连接的Jar包,这里选用ojdbc6.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();
}
}
}