发表于: 2017-04-29 07:42:03
2 1368
今天完成的事情:
1、编写dao,编写接口和实现类
2、在eclipse 中用JUnit4来进行单元测试
3、Spring 基本概念学习,Spring和 Junit的配置
明天计划的事情:
20、编写单元测试代码,再写接口和实现类。把之前dao层设计和单元测试总结下
用Spring 写个简单HelloWorld学习
遇到的问题:
Spring的框架,java的架构,概念模糊,大量看相关的资料
收获:
一、DAO设计模式
1、先新建一个DBUtils工具类(启动关闭数据库)。
2、新建一个属性文件new-->file , db-config.properties,存放改配置信息(url; username;password;driver)方便修改。
3、例如新建Person类,这个Person类就是领域模型
4、定义PersonDao接口:专门对Person类进行操作(例如增删改查)。
5、定义PeronDaoImpl实现类 ,实现上面的PeronDao接口。
(在PeronDaoImpl实现类里面引用:`import com.su.dao.PersonDao;` 通过调用com.su.dao这个包,来调用里面PersonDao这个类)
参考:(http://www.cnblogs.com/smyhvae/p/4059514.html)
二、过程记录的些小问题
1、@Test中:assertEquals(expResult, result,0.0);的意思
expResult 你期望的结果,即你预测程序运行后出现的结果
result 实际运行后得到的结果。
0.0 两个结果间的允许误差
如果两个结果在误差范围内者通过
2、java.sql.ResultSet 这个包的作用?
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
3、getString(key ) 意思?
在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。
JAVA面向对象编程中的封闭性和安全性。即用private来修饰,其他类则不能对该变量访问。要操作这些域变量,set和get方法,例如Person类中有name私有域变量,定义setname()、getname()方法,对name操作。可不用直接对Person类中的域变量操作,而是通过set和get方法间接地操作这些变量。
4、java中定义private string name 变量,name这个变量在数据库事char类型。在java用String?
因为数据库中char类型,对应Java中String
5、java中 String 需要大写, int不需要大写?
String类不是基本类型而是对象类型,要用大写。int是基本类型。Java中有8种基本数据类型,即boolean、byte、short、char、int、flaot、long、double,基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中。
6、为什么用@Override
帮助自己检查是否正确的复写了父类中已有的方法;告诉读代码的人,这是一个复写的方法
7、 public void add(Person p)throws SQLException; throw用法?
throw抛出异常。
Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。
8、Spring框架作用
可以管理web层,业务层, dao层,持久层,可以配置各个层的组件(bean),并且维护各个bean 之间的关系。
9、java 三层架构
展示层(web层):
web层通常会使用MVC模式进行构建,经常使用的mvc框架包括spring mvc,struts等。
业务层
一般应用中会有一层service抽象,实现核心业务逻辑,事务控制也在这一层实现。
持久层
对数据库的数据进行处理,主要就是数据库操作,常见的技术就是JDBC 、 hibernate 、 mybatis这些数据持久层操作的技术和框架。
用来固化数据,如常说的DAO层,操作数据库将数据入库。
评论