java简单的注册问题

在写一个注册dao类时,需要编写普通注册的方法和快速注册的方法,由于学java不久,不知道怎么写这两个方法。普通注册和快速注册的区别是插入字段数的不同,如果写这两个方法,那参数和返回类型不都一样吗?在同一个类中,可以写一样的方法吗?不知道怎么实现,哪位高手能帮一下小弟啊,指点指点一下迷津。

你的问题很奇怪,什么叫“在同一个类中,可以写一样的方法吗?”是想说重载么?同名不同参是可以的。其实大家的回答应该已经很明确了,借用你的写法大概改一下代码看看是否你要的是这种效果吧。
[code="java"]
public void speedaddUser(String name, String password) throws SQLException{
...
}

public boolean addUser(User user) throws SQLException{
...
}
[/code]
或者用一个方法也可以。
[code="java"]
public void addUser(User user, boolean isQuick) throws SQLException{
StringBuilder sql = new StringBuilder("insert into user(");
if (isQuick) {
sql.append("name, password) values(?, ?)");
... // 直接把sql语句填入值提交就可以了。
}
... // 根据user填入的项拼装sql语句然后提交
}
[/code]

我这里稍微多两句嘴:
1. 因为user对象中可能有多项内容,所以用StringBuilder的append来连接字符串,这样比用String的+能快一些;
2. 一般判断我们都放在service层中,dao里就不需要判断,那么出问题基本就是抛异常,只要throws SQLException,然后在service层中catch一下就可以了。不需要根据返回值判断。

写两个方法吧

这个思路很简单啊,你可以去这样实现,开来你java基础还需要补一下哦。
首先,同一个类中是不能出现完全相同的两个方法(也就是方法名相同,参数个数和参数类型相同,方法返回类型相同),但是同一个类中可以以出现方法名相同的两个方法,但是这两个方法的参数,返回类型要不同,你可以去看一下方法的重载。

你可以写一个方法,你方法中传入一个SQL语句不就行了,因为你的注册和快速注册,插入的字段数量不同,写的sql语句也就不同.

private boolen userRegist(String sql){
try{
Class.forname("sun.jdbc.odbc.JdbcOdbcDriver");

connection cnn = DriverManage.getConnection("jdbc:odbc:数据库名称","用户名","密码");
Statement stmt = cnn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
cnn.close();
return true
}
catch(Exception ex)
{
return false;
}

}
可以参照一下.

注册不能传入一个用户对象,你两个注册时sql语句不一样.
比如:
注册:
String sql1= insert into User(user_id,user_name,user_age,user_psw) values(1,'admin',20,'123')
快速注册:
string sql2 = insert into user(user_name,user_psw) values ('admin','123')

在不同的注册中,你分别传入上面的两个sql语句.

其实这个问题很简单,不用那么麻烦的

同一个类,同一个方法 就可以实现的

你把用户名、密码等相关信息封装到一个对象中,这个对象中有一个标志位flag来标识是否是快速注册

public class addUserDAO{

public String addNewUser(User user){

User us=new User();

us.setName(user.getName());
us.setPassword(user.getPassword());
//如果用户选择的是快速注册,下面内容部执行。
if(!flag){
如果选择的不是快速注册,插入用户其他信息。
}

us.insert();

}

}

}