关于UserDaoImpl.java代码中的一些问题:代码粘贴如下,求大神指导。

packagedao.jdbc;importorg.springframework.jdbc.core.JdbcTemplate;publicclassUserDaoIm... package dao.jdbc;

import org.springframework.jdbc.core.JdbcTemplate;

public class UserDaoImpl {
private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public int getMatchCount(String userName, String password){
String sql = "SELECT COUNT(*) FROM FD_USERS WHERE USERNAME=? AND PASSWORD=?";
//return getMatchCount(userName, password);
return jdbcTemplate.queryForInt(sql,new Object[]{userName,password});
}
}

问题:①dao到底是一个类还是一个接口?我看有的程序写成类有的写成接口,到底哪个好?
②这是书上的一段代码,我想知道怎么只有setter没有getter?
③return的返回值如果是注释的方法会怎样?二者有什么区别?
④还是return返回值:new Object[]{userName,password}里的大括号是什么?以前没见过这么写代码,请大神解释!
展开
 我来答
wo317458719
2013-05-18 · TA获得超过105个赞
知道答主
回答量:35
采纳率:0%
帮助的人:47.9万
展开全部
①dao到底是一个类还是一个接口?我看有的程序写成类有的写成接口,到底哪个好?
答:dao通常是设计模式里面的一个名词,在MVC模式里充当的是数据持久层,也称为模型层(M)。所用持术很多,具体可以找一些设计模式的资料查看,目前市场上最流行的M层的两个技术是ibatis、hibernate框架。要区分类和接口很简,直接看类名前面的关键字“class”是一个类,“interface”是一个接口。到底哪个好就要看项目的设计了,一般大型的项目都用接口,接口方便括展。
②这是书上的一段代码,我想知道怎么只有setter没有getter?
答:如果使用spring管理been,set方法是spring依赖注入所必需的方法,setter用于设置值,getter用于取值。
③return的返回值如果是注释的方法会怎样?二者有什么区别?
答:无意义代码。无需纠结。如果非要说会怎么样,按照代码逻辑,会返回“0”。区别在于,注释那句返回“0”,下面那句执行查询sql返回查询结果。
④还是return返回值:new Object[]{userName,password}里的大括号是什么?以前没见过这么写代码,请大神解释!
答:Object[]是一个Object类型的一维数组,大括号里面是给数组赋的两个初始值,object[0]=userName,object[1]=password。如果不清楚可以看看数组的语法结构。
希望可以帮到你。
追问
关于setter和getter,还有return返回值那块能不能细讲讲?多谢了。
追答

亲,怎么一点程序设计知识都没有吗??建议你买点书来看,《java程序设计》这本书很好,浅显易懂。好,还是给你讲讲吧。

setter和getter其实就是每种程序语言里都有的一个概念,java中叫“方法”,在C,C##或其它程序语言中叫做“函数”。setter就是定义了一个set方法,那getter就是定义一个get方法了。例如:

public class Person{

    public String name;

    public void setName(String _name){

        this.name = _name;

    }

    public String getName(){

        return this.name;

    }

}

上面定义了一个person类,见名知意,我们叫它“对象”,现实意思就是一个人。这个人有一个名字,我们用“name”这个属性来表示。“name”前面的“String”是这个属性的类型,表示它是一个字符串;“String”前面的“public”是用来修饰这个属性的,表示它是公共的,任何“人”都可以访问。

 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式为:

         [修饰符] 返回值类型  方法名( 形式参数列表 ){

                   Java 语句;… … …

        }

语法解释:

形式参数:在方法被调用时用于接收外界输入的数据。

实参:调用方法时实际传给方法的数据。

返回值:方法在执行完毕后返回给调用它的环境的数据。

返回值类型:事先约定的返回值的数据类型,无返回值,必须给出返回类型viod。

Java语言中使用下述形式调用方法:对象名.方法名(实参列表)

实参的数目、数据类型和次序必须和所调用方法声明的形式列表匹配。

return语句中止方法的运行并指定要返回的数据。

写不下了,写个记事本吧。

度逍遥
2013-05-18 · 超过15用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:25.3万
展开全部
1、你这个到时一个接口,通常程序写dao是写成接口,daoImpl是其实现,面向接口编程。
2、不用getter的话是为了不让你从外部通过这个类使用setter来的值(setter、getter对应写和读),当然可以用别的方法用到其值,不过不推荐,会破坏了封装性。
3、返回注释代码的话是一个无限递归报错,jdbcTemplate.queryForInt返回一个count(*)的结果
4、大括号是一个数组例如
Object[] o=new Object[]{"",""};
String[] str={"1","2"};
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Linux00Unix
2013-05-18 · 超过31用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:66.1万
展开全部
1.dao是常用于java数据库操作的用于封装数据库操作的那已层,绝大多数都是一个类
2.setter和getter是标准的bean类中的方法,在dao中不需要
3.用了//return getMatchCount(userName, password);会出错,应该会出现指针指向异常错误
4.new Object[]{userName,password}里的大括号中的{userName,password}是数组的成员,这是声明并初始化数组的写法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-18
展开全部
代码不完整,应该要实现接口
public class UserDaoImpl implements UserDao {

这样的Dao才是接口。

2、这个是数据访问,不需要get/set对齐。

3、是调用自己了。

4、传递查询的参数,看前面的SQL语句,里面定义了两个参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式