背景:
前几天写连接数据库时,因为要执行sql,有的是指向得到所有的执行结果,有的是想根据执行结果获得某一个字段的结果。这时我想通过同一个方法名,不同的参数,获得不同的结果。结果发现java的方法竟然不能对参数设置默认值==,而是可以通过重载来实现这个过程的。(当然不排除我对java不了解的缘故,如果大家有什么方法可以告诉我谢谢~)
重载:可以理解为同一个方法名,不同的参数,大概的实例如下:
def void A(int i){
#使用参数i的方法A
}
def void A(int j,int k){
#使用参数j和k的方法A
}
说明:这样可以通过调用同一个方法名,给予不同的参数,实现不同的效果。
特别备注:如果方法和参数均相同,是只可以存在一个方法的,因为我开始想通过相同参数、相同方法名,返回int和String两种类型的结果,这样是不可以,只能重新定义一个方法名。
附上错误实例:
public int A(String i){
return 一个int类型的结果
}
public String A(String i){
return 一个String类型的结果
}
最后,附上一个我通过重载实现的sql执行的结果,一个是只获得了查询结果,一个是获得了具体字段的内容:
public ResultSet getresult(String sql) {
try {
this.rs = this.stmt.executeQuery(sql);
// System.out.print(this.rs);
// while (rs.next()) {
// long info_id = rs.getLong("info_id");
// System.out.println("\ninfo_id:" + info_id);
// }
return this.rs;
}catch (SQLException e){
System.out.println("SQL中找不到要查找的字段!");
e.printStackTrace();
return this.rs;
}
}
//该方法是直接获得了要找的字段名对应的结果,只取一条,所以会不断的覆盖,取到最后一条,试用与sql结果只有一个的情况,如果是结果是好多行数据,需要用ExcuteSql的方法
public String getresult(String sql,String key){
try {
this.rs = this.stmt.executeQuery(sql);
}catch (SQLException e){
System.out.println("SQL中找不到要查找的字段!");
e.printStackTrace();
}
try{
while(this.rs.next()) {
this.result = this.rs.getString(key);
}
}catch (Exception e){
System.out.println("SQL获取结果异常!");
e.printStackTrace();
}
return this.result;
}
try {
this.rs = this.stmt.executeQuery(sql);
// System.out.print(this.rs);
// while (rs.next()) {
// long info_id = rs.getLong("info_id");
// System.out.println("\ninfo_id:" + info_id);
// }
return this.rs;
}catch (SQLException e){
System.out.println("SQL中找不到要查找的字段!");
e.printStackTrace();
return this.rs;
}
}
//该方法是直接获得了要找的字段名对应的结果,只取一条,所以会不断的覆盖,取到最后一条,试用与sql结果只有一个的情况,如果是结果是好多行数据,需要用ExcuteSql的方法
public String getresult(String sql,String key){
try {
this.rs = this.stmt.executeQuery(sql);
}catch (SQLException e){
System.out.println("SQL中找不到要查找的字段!");
e.printStackTrace();
}
try{
while(this.rs.next()) {
this.result = this.rs.getString(key);
}
}catch (Exception e){
System.out.println("SQL获取结果异常!");
e.printStackTrace();
}
return this.result;
}