idea如何给oracle添加数据_使用IDEA对Oracle数据库进行简单增删改查操作

本文介绍了在Java中使用IDEA连接Oracle数据库并进行增删改查操作的步骤。首先,讲解了Java中的数据存储技术,包括JDBC、JDO和第三方O/R框架。接着,详细描述了如何在IDEA中配置Oracle数据库连接,包括导入jar包,编写ConnectionTest类以获取数据库连接。然后,展示了如何通过PreparedStatement进行插入、更新和删除操作,以及如何封装通用的增删改方法。通过实例代码,演示了如何在主函数中调用这些方法实现对数据库的增删改查操作。
摘要由CSDN通过智能技术生成

1.1 Java中的数据存储技术

在Java中,数据库存取技术可分为如下几类:

1、JDBC直接访问数据库

2、JDO(Java Data Object)是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。

3、第三方O/R 比如Hibernate,Mybatis等

JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis,JDO,Hibernate、MyBatyis等只是更好的封装的JDBC。

最近用idea连接Oracle数据库 并且实现增删改操作的时候,遇到的一些问题在这里跟大家分享一下。

首先,idea连接连接数据库,都需要进行Connnection,也就是需要jdbc(Java database connection)

在进行连接之前,最先要做的事情就是导入对应所使用的数据库的jar包。(常见的数据库有MySQL,Oracle,SQLServer等等)

举个例子:

我要连接Oracle数据库,就到Oracle的官网上下载对应的jar包,当引入jar包下面出现小三角的时候,就说明导包成功!!

f4baa5966b1fb9b2621cdb4e94aadc67.png

第一步成功,我们套用jdbc的代码,基本上这个大家都能明白,咱也可以把它封装在一个类里边,必要的时候拿过来使用。

如下代码所示: 注意看代码的注释!!

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Scanner;

//与数据库建立连接

public class ConnectionTest {

//获取连接的三个基本信息

private String dbURL = "jdbc:oracle:thin:@localhost:1521:orcl";

private String dbUser = "test";

private String dbPwd = "test";

// 获取数据库连接方法, 返回Connection对象

private Connection con = null;

//创建数据库连接

public Connection getDBConnect() {

try {

// 加载数据库驱动 不同的数据库下面这个驱动是不同的,这个千万要注意!!!

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(dbURL, dbUser, dbPwd);

} catch (Exception e) {

System.out.println(e);

}

return con;

}

}

然后我们写一个主方法测试一下:也就是程序执行的出口,运行至下面这句话说明连接成功! 连接数据库成功仅仅是第二步,接下来更重要的是进行对数据库的增删改操作!!

2b6ae9610e602af418a3fd00c6b7ad8c.png

连接数据库成功之后,就是为了下面增删改操作服务的。注意看对数据库进行插入操作的方法如下:(插入操作的方法要写在Connection这个类里边)

public void testInsert() {

PreparedStatement ps1 = null; //使用该类执行增删改操作不会发生sql注入现象!!

//在进行插入操作的时候 保证你的表、以及对应的列名都存在 ?在这里表示占位符

String sql = "insert into t_user(ID,USERNAME,PASSWORD1,EMAIL) values(?,?,?,?)";

try {

//1、预编译sql语句 返回PreparedStatement的实例给ps1 con表示Connection的对象

ps1 = con.prepareStatement(sql);

//2、填充占位符=?

ps1.setString(1, "2");

ps1.setString(2, "ww");

ps1.setString(3, "12345");

ps1.setString(4, "907372669@qq.com");

//执行操作

ps1.execute();

} catch (SQLException e) {

e.printStackTrace();

}

//资源的关闭

try {

if (ps1 != null)

ps1.close();

} catch (SQLException e) {

e.printStackTrace();

}

try {

if (con != null)

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

插入方法写好之后,在主函数里面调用即可实现插入操作,千万注意自己写的sql语句写的有没有存在问题。

57d9064298e83b2fc7fefa2391a6e628.png

同样往下是删除操作的方法(ps:注意观察关闭资源的方法,将其写在一个方法体里,减少代码的重用性!!)

public void testUpdate() {

PreparedStatement ps2 = null;

//编写sql语句 返回PreparedStatement的实例

String sql = "update T_USER set USERNAME = ? where ID = ? ";

try {

ps2 = con.prepareStatement(sql);

//填充占位符=?

ps2.setObject(1,"newgg");

ps2.setObject(2,"1");

//执行

ps2.execute();

} catch (SQLException e) {

e.printStackTrace();

}

//实现资源关闭的方法

closeSources(ps2,con);

}

//实现资源关闭的方法如下:

public void closeSources(PreparedStatement ps, Connection con) {

try {

if (ps != null)

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

try {

if (con != null)

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

接下来实现修改某一行的属性的方法,逻辑实现同插入删除一样。

public void testUpdate() {

//编写sql语句 返回PreparedStatement的实例

PreparedStatement ps2 = null;

String sql = "update T_USER set USERNAME = ? where ID = ? ";

try {

ps2 = con.prepareStatement(sql);

//填充占位符=?

ps2.setObject(1,"newgg");

ps2.setObject(2,"1");

//执行

ps2.execute();

} catch (SQLException e) {

e.printStackTrace();

}

//实现资源的关闭

closeSources(ps2,con);

}

4393c476c11a3942a5a7afae80defe5f.png

套路都是一样,细心的人会发现,增删改的操作步骤都是一样的,但唯独SQL语句不一样,进而填充占位符的参数是不一样的,利用Java 具有可变长参数的性质,我们可以写出一个通用的增删改的方法

//实现增删改的通用操作

// sql占位符中的个数与可变长参数的长度一致!!

public void insert_Delete_Update(String sql, Object ...args) {

//预编译SQL语句,返回PreparedStatement的实例

PreparedStatement ps4 = null;

try {

ps4 = con.prepareStatement(sql);

//填充占位符

for(int i=0; i

ps4.setObject(i+1,args[i]);

}

//执行

ps4.execute();

} catch (SQLException e) {

e.printStackTrace();

}

//实现资源的关闭

closeSources(ps4,con);

}

于是进而实现代码块分离,SQL语句写在另一个方法里,代码实现如下:

public void test_Insert_Delete_Update() {

String sql1 = "update T_USER set username = ? where ID = ? ";

//仔细观察这个调用的方法 username=“newQ” ID=“2”这两个参数传入这个方法里

insert_Delete_Update(sql1,"newQ","2");

}

在主函数调用该方法,即可实现对表的增删改操作!

3d976e4caa47b075fdefecc0f6453938.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值