📄 registrationserver.java
字号:
//This file contains the RegistrationServer
//and RegistrationImpl implementations
package registration;
import java.sql.*;
import org.omg.CosNaming.*;
import org.omg.CORBA.*;
import java.util.ArrayList;
public class RegistrationServer extends _RegistrationHomeImplBase{
ORB orb=null;
static {
try{
new pool.JDCConnectionDriver("COM.cloudscape.core.JDBCDriver",
"jdbc:cloudscape:ejbdemo","none", "none");
}catch(Exception e){ System.out.println("new pool error"+e);}
}
public Connection getConnection() throws SQLException {
return DriverManager.getConnection("jdbc:jdc:jdcpool");
}
public RegistrationServer(ORB orb) {
super();
this.orb=orb;
}
public registration.RegistrationPK create(String theuser,
String password, String emailaddress, String creditcard)
throws registration.CreateException{
double balance=0;
Connection con = null;
PreparedStatement ps = null;;
try {
con=getConnection();
ps=con.prepareStatement("insert into registration(
theuser, password, emailaddress, creditcard, balance)
values (?, ?, ?, ?, ?)");
ps.setString(1, theuser);
ps.setString(2, password);
ps.setString(3, emailaddress);
ps.setString(4, creditcard);
ps.setDouble(5, balance);
if (ps.executeUpdate() != 1) {
throw new CreateException ();
}
RegistrationPK primaryKey = new RegistrationPKImpl();
primaryKey.theuser(theuser);
return primaryKey;
} catch (CreateException ce) {
throw ce;
} catch (SQLException sqe) {
System.out.println("sqe="+sqe);
throw new CreateException ();
} finally {
try {
ps.close();
con.close();
} catch (Exception ignore) {
}
}
}
public registration.Registration findByPrimaryKey(
registration.RegistrationPK pk)
throws registration.FinderException {
if ((pk == null) || (pk.theuser() == null)) {
throw new FinderException ();
}
return(refresh(pk));
}
private Registration refresh(RegistrationPK pk)
throws FinderException {
if (pk == null) {
throw new FinderException ();
}
Connection con = null;
PreparedStatement ps = null;
try {
con=getConnection();
ps=con.prepareStatement("select password,
emailaddress, creditcard,
balance from registration where theuser = ?");
ps.setString(1, pk.theuser());
ps.executeQuery();
ResultSet rs = ps.getResultSet();
if (rs.next()) {
RegistrationImpl reg= new RegistrationImpl();
reg.theuser = pk.theuser();
reg.password = rs.getString(1);
reg.emailaddress = rs.getString(2);
reg.creditcard = rs.getString(3);
reg.balance = rs.getDouble(4);
return reg;
}
else {
throw new FinderException ();
}
}
catch (SQLException sqe) {
throw new FinderException ();
}
finally {
try {
ps.close();
con.close();
}
catch (Exception ignore) {}
}
}
public void findLowCreditAccounts(final ReturnResults client)
throws FinderException {
Runnable bgthread = new Runnable() {
public void run() {
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
ArrayList ar = new ArrayList();
try {
con=getConnection();
ps=con.prepareStatement("select theuser,
balance from registration where balance < ?");
ps.setDouble(1, 3.00);
ps.executeQuery();
rs = ps.getResultSet();
RegistrationImpl reg=null;
while (rs.next()) {
try {
reg= new RegistrationImpl();
}catch (Exception e) {
System.out.println("creating reg"+e);
}
reg.theuser = rs.getString(1);
reg.balance = rs.getDouble(2);
ar.add(reg);
}
rs.close();
RegistrationImpl[] regarray = (RegistrationImpl [])
ar.toArray( new RegistrationImpl[0]);
client.updateResults(regarray);
}catch (Exception e) {
System.out.println("findLowCreditAccounts: "+e);
return;
}
finally {
try {
if(rs != null) {
rs.close();
}
if(ps != null) {
ps.close();
}
if(con != null) {
con.close();
}
} catch (Exception ignore) {}
}
} //run
};
Thread t = new Thread(bgthread);
t.start();
}
public Any customSearch(Any searchField, IntHolder count) {
Any returnResults= orb.create_any();
int tmpcount=count.value;
if(searchField.type().kind().value() == TCKind._tk_double) {
// return number of balances greater than supplied amount
double findBalance=searchField.extract_double();
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
try {
con=getConnection();
ps=con.prepareStatement("select count(*)
from registration where balance < ?");
ps.setDouble(1, findBalance);
ps.executeQuery();
rs = ps.getResultSet();
if (rs.next()) {
tmpcount = rs.getInt(1);
}
count.value=tmpcount;
rs.close();
}catch (Exception e) {
System.out.println("custom search: "+e);
returnResults.insert_long(-1);
return(returnResults);
}
finally {
try {
if(rs != null) {
rs.close();
}
if(ps != null) {
ps.close();
}
if(con != null) {
con.close();
}
} catch (Exception ignore) {}
}
returnResults.insert_long(tmpcount);
return(returnResults);
} else if(searchField.type().kind().value() ==
TCKind._tk_string) {
// return email addresses that match supplied address
String findEmail=searchField.extract_string();
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
ArrayList ar = new ArrayList();
RegistrationImpl reg=null;
try {
con=getConnection();
ps=con.prepareStatement("select theuser,
emailaddress from registration where emailaddress like ?");
ps.setString(1, findEmail);
ps.executeQuery();
rs = ps.getResultSet();
while (rs.next()) {
reg= new RegistrationImpl();
reg.theuser = rs.getString(1);
reg.emailaddress = rs.getString(2);
ar.add(reg);
}
rs.close();
RegistrationImpl[] regarray = (RegistrationImpl
[])ar.toArray( new RegistrationImpl[0]);
RegistrationHelper.insert(returnResults, regarray[0]);
return(returnResults);
}catch (Exception e) {
System.out.println("custom search: "+e);
return(returnResults);
}
finally {
try {
if(rs != null) {
rs.close();
}
if(ps != null) {
ps.close();
}
if(con != null) {
con.close();
}
} catch (Exception ignore) {}
}
}
return(returnResults);
}
public static void main(String args[]) {
java.util.Properties props=System.getProperties();
props.put("org.omg.CORBA.ORBInitialPort", "1050");
System.setProperties(props);
ORB orb = ORB.init(args, props);
RegistrationServer rs= new RegistrationServer(orb);
try {
orb.connect(rs);
org.omg.CORBA.Object nameServiceObj =
orb.resolve_initial_references("NameService") ;
NamingContext nctx= NamingContextHelper.narrow(nameServiceObj);
NameComponent[] fullname = new NameComponent[2];
fullname[0] = new NameComponent("auction", "");
fullname[1] = new NameComponent("RegistrationBean", "");
NameComponent[] tempComponent = new NameComponent[1];
for(int i=0; i < fullname.length-1; i++ ) {
tempComponent[0]= fullname[i];
try {
nctx=nctx.bind_new_context(tempComponent);
}catch (Exception e){ System.out.println("bind new"+e);}
}
tempComponent[0]=fullname[fullname.length-1];
try {
nctx.rebind(tempComponent, rs);
} catch (Exception e){
nctx.unbind(tempComponent);
nctx.rebind(tempComponent, rs);
System.out.println("rebind"+e);
}
java.lang.Object sync= new java.lang.Object();
synchronized(sync) {
sync.wait();
}
} catch (Exception e) {
System.out.println("e="+e);
}
}
}
class RegistrationImpl extends _RegistrationImplBase {
public String theuser, password, creditcard, emailaddress;
public double balance;
public boolean verifyPassword(String password) {
if (this.password.equals(password)) {
return true;
} else {
return false;
}
}
public String getEmailAddress() {
return emailaddress;
}
public String getUser() {
return theuser;
}
public int adjustAccount(double amount) {
balance=balance+amount;
return(0);
}
public double getBalance() {
return balance;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -