JDBC连接oracle数据库进行增,删,改,查

1.配置相关maven环境

附上链接

2.建立实体类

这里我建立一个实体类映射数据库中的XWD_TEST表

public class ModelOfJDBC {
	private int id;
	
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}	
}

3.配置数据源并连接到数据库

url为你要连接的数据库地址,username和password为登录名和密码。

在这里我建立了一个static connection对象供后面的增删改查使用。同时将资源关闭的方法进行了封装。

public class Data_By_JDBC {

	public static final String url = "jdbc:oracle:thin:@172.30.0.242:1520:ORADB01"; 
	
	public static final String username = "dev_fspf_omms_n";
	
	public static final String password = "dev_fspf_omms_n";
	
	public static  Connection connection = null;//
	
	/**
	 * 加载oracle驱动
	 */
	static {
		try
		{
			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();//加载oracle驱动
			System.out.println("oracle驱动加载中...");
			connection = getConnection();
			System.out.println("连接数据库成功");
		}
		catch(InstantiationException e1)
		{
			System.out.println("实例化异常");
		}
		catch(IllegalAccessException e2)
		{
			System.out.println("权限异常");
		}
		catch(ClassNotFoundException e3)
		{
			System.out.println("找不到类");
		}
	}
	
	/***
	 * 获取connection连接
	 * @return
	 */
	public static Connection getConnection()
	{
	   
	    try
	    {
	        connection = DriverManager.getConnection(url, username, password);//获取连接,使用DriverManager的getConnection方法
	        return connection;
	    }
	    catch (Exception e)
	    {
	        e.printStackTrace();
	        return null;
	    }
	}

	/**
	 * 关闭资源
	 */
	public static void close(ResultSet rs, Connection connection, PreparedStatement ps) {
		try {
			closeResultSet(rs);
			closePreparedStatement(ps);
			closeConnection(connection);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//关闭结果集
	public static void closeResultSet(ResultSet rs) throws SQLException {
		if(rs!=null) {
			rs.close();
		}
	}
	//关闭连接
	public static void closeConnection(Connection connection) throws SQLException {
		if(connection!=null) {
			connection.close();
		}
	}
	//关闭预编译
	public static void closePreparedStatement(PreparedStatement ps) throws SQLException {
		if(ps!=null) {
			ps.close();
		}
	}
}

4.对数据库进行增删改查

在进行增删改查之前,一般会对sql语句(字符串存储)预编译到PreparedStatement对象中(PreparedStatement ps = connection.prepareStatement(sql语句))。在操作完成后,不要忘记对这两个对象释放资源。

然后使用 ps.executeQuery();执行sql语句,如果有返回结果,将返回结果存放在ResultSet对象中。

  • 查询操作(select *)​​​​​​​

        建立PreparedStatement对象和ResultSet对象

public class Data_Select extends Data_By_JDBC {

	/**
	 * select操作
	 * @param args
	 */
	public static void selectAll() {
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "select * from XWD_TEST ";
		
		try {
			ps = connection.prepareStatement(sql);
			rs = ps.executeQuery();
			List<ModelOfJDBC> list = new ArrayList<>();
			System.out.println("ID"+" "+"NAME");
			while (rs.next()) {
				ModelOfJDBC moj = new ModelOfJDBC();
				System.out.print(rs.getInt("ID")+" ");
				moj.setId(rs.getInt("ID"));
				System.out.println(rs.getString("NAME"));
				moj.setName(rs.getString("NAME"));
				list.add(moj);
			}
			closeResultSet(rs);
			System.out.println("关闭select的结果集");
			closePreparedStatement(ps);
			System.out.println("关闭select的预编译");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}
}
  • ​​​​​​​更新操作
public class Data_Update extends Data_By_JDBC {

	/**
	 * update操作
	 */
	public static void update() {
		String sql = "update XWD_TEST set name = 'liyi' where name = 'li'";
		try {
			PreparedStatement ps = connection.prepareStatement(sql);
			ps.executeQuery();//执行sql语句
			System.out.println("update 成功");
			closePreparedStatement(ps);
			System.out.println("关闭update预编译");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
  • 删除操作
public class Data_delete extends Data_By_JDBC {
	
	/**
	 * 删除操作
	 */
	public static void delete() {
		String sql = "delete from XWD_TEST where id = 3";
		try {
			PreparedStatement ps = connection.prepareStatement(sql);
			ps.executeQuery();//执行sql语句
			System.out.println("ִ删除成功");
			closePreparedStatement(ps);
			System.out.println("关闭delete预编译");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
  • 插入操作
public class Data_Insert extends Data_By_JDBC {

	/**
	 * insert操作
	 * @param args
	 */
	public static void insert() {
		String sql = "insert into XWD_TEST values(3,'xue')";
		try {
			PreparedStatement ps = connection.prepareStatement(sql);
			ps.executeQuery();//执行插入语句
			System.out.println("插入成功");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}
	
}

5.运行

在代码最后释放公用的connection资源。

public class Run extends Data_By_JDBC {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
//		Data_delete.delete();
//		Data_Update.update();
//		Data_Select.selectAll();
		
		try {
			closeConnection(connection);//关闭connection
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值