设为首页 加入收藏

TOP

如何利用JDBC连接并操作Oracle数据库(一)
2015-11-21 02:07:03 来源: 作者: 【 】 浏览:1
Tags:如何 利用 JDBC 连接 操作 Oracle 数据库

之前学习.NET的时候,曾经利用ODBC进行连接数据库,而在Java中通常采用JDBC连接数据库,这里以oracle数据库为例简单的总结一下利用JDBC如何连接并操作数据库。

1、连接

?

public class DbUtil {
	public static Connection getConnection(){
		Connection conn=null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");//找到oracle驱动器所在的类
			String url="jdbc:oracle:thin:@localhost:1521:bjpowernode"; //URL地址
			String username="drp";
			String password="drp";
			conn=DriverManager.getConnection(url, username, password);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
public static void close(PreparedStatement pstmt){ if(pstmt !=null){ try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs){ if(rs !=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
}

?

 
 
在执行Class.forName时,需要找到OracleDriver所在的地址,路径为:

?

1、首先找到

D:\oracle\product\10.2.0\db_1\jdbc\lib 找到ojdbc14.jar

2、其次再找到 ojdbc14.jar\oracle\jdbc\driver 下面的oraceldriver这样就找到了要使用的驱动程序文件

2、操作数据库--添加

?

public void addUser(User user){
		String sql="insert into t_user(user_id,user_name,PASSWORD,CONTACT_TEL,EMAIL,CREATE_DATE)values(?,?,?,?,?,?)"; //?为参数占位符
		Connection conn=null;
		PreparedStatement pstmt=null; //通常利用PreparedStatement进行操作,性能得到优化
		try{
			conn=DbUtil.getConnection();
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1, user.getUserId());
			pstmt.setString(2,user.getUserName());
			pstmt.setString(3, user.getPassword());
			pstmt.setString(4, user.getContactTel());
			pstmt.setString(5,user.getEmail());
			//pstmt.setTimestamp(6,new Timestamp(System.currentTimeMillis()));
			pstmt.setTimestamp(6, new Timestamp(new Date().getTime()));//获取当前系统时间
			pstmt.executeUpdate();//执行增删改操作
			
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			DbUtil.close(conn);
			DbUtil.close(pstmt);
			
		}
			
	}

?

3、操作数据库--查询

?

public User findUserById(String userId){
		String sql = "select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id=?";
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;//定义存放查询结果的结果集
		User user=null;
		try{
			conn=DbUtil.getConnection();
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1,userId);
			rs=pstmt.executeQuery();//执行查询操作
			if(rs.next()){				
				user=new User();
				user.setUserId(rs.getString("user_Id"));
				user.setUserName(rs.getString("user_name"));
				user.setPassword(rs.getString("password"));
				user.setContactTel(rs.getString("contact_Tel"));
				user.setEmail(rs.getString("email"));
				user.setCreateDate(rs.getTimestamp("create_date"));				
			}
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			//按顺序进行关闭
			DbUtil.close(rs);
			DbUtil.close(pstmt);
			DbUtil.close(conn);
			
		}
		return user;
	}

?

四、总结

1、PreparedStatement与Statement的简单区别 Statement为一条SQL语句生成执行计划,如果参数值不同,会生成不同的sql语句,执行对应参数
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle合并两张结构相同的表 下一篇Oracle中Hint深入理解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: