JDBC 的oracle连接

1.用PL/SQL创建了一个数据库,随意添加了2条记录
create table Test
(
       id varchar(10) primary key,
       pwd varchar(10)
);
insert into Test(id,pwd) values('20120730','123');
insert into Test(id,pwd) values('20120731','123');
select* from Test;

2.添加MyEclipse的oracle支持(ojdbc14.jar附件);

3.在MyEclipse中编写了两个工具包
package dbutil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionManager {
	private final static String DRIVER_NAME="oracle.jdbc.driver.OracleDriver";
	private final static String URL="jdbc:oracle:thin:@localhost:1521:orcl";
	private final static String USER_NAME="msk";
	private final static String PASSWORD="msk";
	
	public static Connection getConnection(){
		Connection conn=null;
		try{
			Class.forName(DRIVER_NAME);
			conn=DriverManager.getConnection(URL,USER_NAME,PASSWORD);
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}catch(SQLException e){
			e.printStackTrace();
		}
		return conn;
	}
	
	public static void close(Connection conn){
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
	}
}

package dbutil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBOperator {
	/**
	 * 执行更新、删除、插入操作
	 * @param sql
	 * @param params
	 * @return
	 */
	public int executeUpdate(String sql,String[] params){
		int rows = 0;
		try {
			Connection conn = ConnectionManager.getConnection();
			PreparedStatement pstmt = conn.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setString(i+1, params[i]);
				}
			}
			rows = pstmt.executeUpdate();
			ConnectionManager.close(conn);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rows;
	}
	/**
	 * 执行查询操作
	 * @param sql
	 * @param params
	 * @return
	 */
	public  ResultSet executeQuery(String sql,String[] params) {
		ResultSet rs = null;
		try {
			Connection conn = ConnectionManager.getConnection();
			PreparedStatement pstmt = conn.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setString(i+1, params[i]);
				}
			}
			rs = pstmt.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}
}



4.写了一个测试类
package test;

import java.sql.ResultSet;
import java.sql.SQLException;

import dbutil.DBOperator;


public class test {

	public static void main(String[] args) {
		String sql="select * from Test where ID=?";
		String[] params={"20120730"};
		ResultSet rs=new DBOperator().executeQuery(sql,params);		
		try {
			if(rs.next()){				
				System.out.println("第一个:"+rs.getString(1));				
				System.out.println("第二个:"+rs.getString(2));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}



输出结果:
第一个:20120730
第二个:123

5.如果是sqlserver连接的话,只需要更改第一个工具包中的常量
private final static String DRIVER_NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private final static String URL = "jdbc:sqlserver://localhost:1433;database=StoreDB";
private final static String USERNAME = "sa";
private final static String PASSWORD = "sqlpass";

猜你喜欢

转载自m498020309.iteye.com/blog/1611930