//import oracle.jdbc.driver.*;
import java.net.*;
import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;

public class db implements Serializable
{
static Connection conn=null;
Statement stmt = null;
ResultSet rs=null;

//db的构造函数
public db()  
{
}

public static Connection getConnection()
{
try  
{
//注册数据库驱动程序为Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
/*建立数据库连接,使用Oracle的一种thin连接方式,@demo指主机名字,demodb为数据库,后面的两个demo为用户名和密码*/
conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oracle","scott","tiger");
}
catch(java.lang.ClassNotFoundException e)  
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
catch(java.sql.SQLException e)
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
catch(Exception e)
{
System.out.println("db(): " + e.getMessage());  
}
return conn;
}

//关闭数据库连接
public void closeConnection()
{
try
{
if(conn != null)
conn.close();
}
catch(java.sql.SQLException e)
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
}

//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql)  
{
rs = null;
try  
{
Connection conn1 = getConnection();
if(conn1 != null)
{
stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
//stmt.close();
}
else  
{
System.out.println("connection is null!\r\n");  
}
}
catch(SQLException ex)  
{
System.out.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}

//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql)  
{
boolean bupdate=false;
try  
{
//建立数据库连接
Connection conn1 = getConnection();
if(conn1 != null)
{
stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)
bupdate=true;
}
}
catch(SQLException ex)  
{
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}

//toChinese方法用于将一个字符串进行中文处理
//否则将会是???这样的字符串
public static String toChinese(String strvalue)  
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}

}
import java.awt.event.*;
import java.awt.*;
import java.applet.*;

public class BeanTest extends Applet implements MouseListener{
    adduser cBean;
    Button b;
    TextField name;
    TextField password;
    TextField email;  
    TextField homepage;
    Button bClose;  
  
    public void init()  
    {
    setLayout(new GridLayout(5,2));
    cBean = new adduser();
    b = new Button("Register");                      
        b.addMouseListener(this);      
        add(new Label("name:"));
        name=new TextField("",20);
        add(name);
        add(new Label("password:"));
        password=new TextField("",20);
        add(password);
        add(new Label("email:"));
        email=new TextField("",30);
        add(email);
        add(new Label("homepage:"));
        homepage=new TextField("",30);
        add(homepage);
        add(b);
        bClose=new Button("close");
        bClose.addMouseListener(this);            
        add(bClose);
    }

    public void destroy()  
    {
        removeAll();
        if(cBean!=null)
        cBean.closeConnection();
        
    }

    public void mousePressed(MouseEvent e)  
    {
    if(e.getSource()==b)
    {
        cBean.setUsername(name.getText());
        cBean.setPassword(password.getText());
        cBean.setEmail(email.getText());
        cBean.setHomepage(homepage.getText());
        if(cBean.checkUser())
        cBean.addNewUser();
        
    }
    else if(e.getSource()==bClose)
    {
    System.out.println("I'm quitting!");
    destroy();
        System.exit(0);
        }
   }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
    }

    public static void main(String args[]) {
    Frame f = new Frame("BeanTest");
    BeanTest bTest = new BeanTest();
    bTest.init();
    bTest.start();

    f.add("Center", bTest);
    f.setSize(300, 300);
    f.show();
    }
    public String getAppletInfo() {
        return "A simple bean test program.";
    }
}                                                              
//导入java类库
import java.sql.*;
import java.lang.*;
//import oracle.jdbc.driver.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db
{
String Username=""; //用户名
String Password=""; //密码
String Email=""; //email
String Homepage=""; //主页

public boolean addNewUser()
{
boolean boadduser=false;
try  
{
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into userinfo1(regtime,username,password,email,homepage)");
sSql=sSql+ " values(SYSDATE,'"+Username+"','"+Password+"','"+Email+"','"+Homepage+"')";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.err.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(executeUpdate(sSql))
boadduser=true;
}
catch(Exception ex)  
{
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}
finally
{
//无论是否出错,都要返回值
return boadduser;
}
}

//checkUser()方法用来检查用户名是否重复  
//如果重复返回一个false
public boolean checkUser()
{
boolean boadduser=false;
try  
{
//构建sql查询语句
String sSql="select * from userinfo1 where username='"+Username+"'";
//调用父类的executeQuery方法
if(executeQuery(sSql).next())
{
//查询出来的记录集不为空
boadduser=false;
}
else
{
boadduser=true;
}
}
catch(Exception ex)  
{
//出错处理
System.err.println("adduser.checkUser: " + ex.getMessage());
}
finally
{
//返回值
return boadduser;
}
}

//属性的set/get方法,同请求的参数一致  
//属性用户名Username的get/set方法
public String getUsername()
{
return Username;
}
public void setUsername(String newUsername)
{
//用户名有可能是中文,需要进行转换
Username =db.toChinese(newUsername);
}

//属性密码Password的get/set方法
public String getPassword()
{
return Password;
}
public void setPassword(String newPassword)
{
Password = newPassword;
}

//属性Email的get/set方法
public String getEmail()
{
return Email;
}
public void setEmail(String newEmail)
{
Email = newEmail;
}

//属性主页Homepage的get/set方法
public String getHomepage()
{
return Homepage;
}
public void setHomepage(String newHomepage)
{
Homepage = newHomepage;
}

}