连接oracle数据库(Java,非框架)

3 篇文章 0 订阅

1.连接数据库基本参数
将参数设定为静态私有属性,防止外部直接访问和修改该属性,并初始化连接对象connection,预编译sql语句对象PreparedStatement,结果集对象ResultSet。

private static String DRIVER = "oracle.jdbc.OracleDriver";//驱动文件
private static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";//数据库访问地址
private static String USER = "***";//数据库账号
private static String PASS = "l***";//数据库密码
//数据库连接
Connection connection =null;
//预编译对象
PreparedStatement  p = null;
//结果集
ResultSet rSet = null;

2.数据库基本操作方法
增、删、改模板:
步骤一:获取连接

	getCoonnection();

步骤二:预编译sql语句:

 pstm = connection.prepareStatement(sql);其中sql执行条件用占位符?表示。

步骤三:传入占位符数据:

p.setInt(1, idNumber);     p.setString(2, username);

步骤四:更新数据库表数据:

p.executeUpdate();

查询模板:
步骤一:获取连接

 getCoonnection();

步骤二:预编译sql语句:

pstm = connection.prepareStatement(sql);

步骤三:更新结果集:

rSet = p.executeQuery();

步骤四:判断结果集是否存在数据库,并输出查询结果:

while(rset.next()){				
	System.out.println("  id:"+rSet.getString("id")+"  			
	username:"+rSet.getString("username")+"  
	pass:"+rSet.getString("password"));
}

实例操作:
获取数据库连接

//获取数据库连接,返回连接
public Connection getConnection() {
	try {
		//加载驱动
		Class.forName(DRIVER);
		//获取数据库连接
		connection = DriverManager.getConnection(URL, USER, PASS);
	} catch (ClassNotFoundException | SQLException e) {
		e.printStackTrace();
	}
	return connection;
}

添加数据到数据库

//增加数据,若数据库设定为id自增,则无需加入 idNumber这一参数(id),每一参数对应数据表(userinfo)中的字段。
public void add(int idNumber,String username,String pass) {
	//获取连接
	connection = getConnection();
	//编辑执行的sql语句,?代表占位符,防止SQL注入
	String str = "insert into  userinfo values(?,?,?)";
	try {
		//预编译执行插入语句
		p = connection.prepareStatement(str);
		//设定占位符对应的参数,序号对应?的占位符
		p.setInt(1, idNumber);
		p.setString(2, username);
		p.setString(3, pass);
		//更新数据库表数据
		p.executeUpdate();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

删除数据

public void delete(String name) {
   //获取连接
	connection = getConnection();
	//sql语句
	String sql = "delete from userinfo where username=?";
	try {
	   //预编译
		p = connection.prepareStatement(sql);
		//设定占位符数据
		p.setString(1, name);
		//更新数据库数据
		p.executeUpdate();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

修改数据【注释同上】

public void updateData(String user,String pass) {
	connection = getConnection();
	String str = "update userinfo set password=? where username=?";
	try {
		p = connection.prepareStatement(str);
		p.setString(1, pass);
		p.setString(2, user);
		p.executeUpdate();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
}

查询数据

public void selectData() {
	//获取连接
	connection = getConnection();
	//sql查询语句
	String sql = "select * from userinfo";
	try {
	   //预编译
		p = connection.prepareStatement(sql);
		//更新查询到的结果集
		rSet = p.executeQuery();
		while(rSet.next()) {
		  //输出查询结果集
			System.out.println("  id:"+rSet.getString("id")+"  username:"+rSet.getString("username")+"  pass:"+rSet.getString("password"));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

3.释放资源
释放顺序:结果集-----预编译对象-----数据库连接。在每个方法执行finally中释放资源。

public void ReleaseResource() {
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (pstm != null) {
        try {
            pstm.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (connection != null) {
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值