@Override
public List getCustomerPhoneBookBySearch(String customerMobile, String callName) throws SQLException {
logger.info(" 通过客户来电号码获取oracle里的数据的方法:getCustomerPhoneBookBySearch 开始执行");
List list = new ArrayList();
PhoneBook phone_book = null;
// 加载Oracle驱动
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String sUsr = "webaddrbook";
String sPwd = "webaddrbookpwd";
// 获得Oracle数据库连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@数据库IP:1521:表名", sUsr, sPwd);
oracle.jdbc.OracleCallableStatement ocs = null;
String sqlStr = "{call ps_read_carcontact(?,?,?,?)}"; // 存储过程ps_read_carcontact()
ResultSet rs = null;
try{
ocs = (oracle.jdbc.OracleCallableStatement)conn.prepareCall(sqlStr);
ocs.setString(1,customerMobile);
ocs.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR);
ocs.registerOutParameter(3,oracle.jdbc.OracleTypes.INTEGER);
ocs.registerOutParameter(4,oracle.jdbc.OracleTypes.VARCHAR);
ocs.execute();
logger.info(" getCustomerPhoneBookBySearch 已经执行存储过程 ");
rs = ocs.getCursor(2);
while(rs.next()){
phone_book = new PhoneBook();
if(rs.getString(4).contains(callName) || rs.getString(3).contains(callName) || getEname(rs.getString(3)).contains(callName ) || getFirstSpell(rs.getString(3)).contains(callName ) ){ // 名字:中文字符 名字: 拼音
long currentProcessor = rs.getLong(1);
phone_book.setId(currentProcessor);
phone_book.setCarmobile(rs.getString(2));
phone_book.setConname(rs.getString(3));
phone_book.setConmobile(rs.getString(4));
}else{
continue;
}
list.add(phone_book);
}
rs.close();
ocs.close();
}catch(Exception e){
System.out.println("Exception e "+e.getMessage());
}
logger.info(" getCustomerPhoneBookBySearch 执行结束 ");
return list;
}