①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。如果不清楚可以看看数组的语法结构。
希望可以帮到你。
1、你这个到时一个接口,通常程序写dao是写成接口,daoImpl是其实现,面向接口编程。
2、不用getter的话是为了不让你从外部通过这个类使用setter来的值(setter、getter对应写和读),当然可以用别的方法用到其值,不过不推荐,会破坏了封装性。
3、返回注释代码的话是一个无限递归报错,jdbcTemplate.queryForInt返回一个count(*)的结果
4、大括号是一个数组例如
Object[] o=new Object[]{"",""};
String[] str={"1","2"};
1.dao是常用于java数据库操作的用于封装数据库操作的那已层,绝大多数都是一个类
2.setter和getter是标准的bean类中的方法,在dao中不需要
3.用了//return getMatchCount(userName, password);会出错,应该会出现指针指向异常错误
4.new Object[]{userName,password}里的大括号中的{userName,password}是数组的成员,这是声明并初始化数组的写法
代码不完整,应该要实现接口
public class UserDaoImpl implements UserDao {
这样的Dao才是接口。
2、这个是数据访问,不需要get/set对齐。
3、是调用自己了。
4、传递查询的参数,看前面的SQL语句,里面定义了两个参数。