发表于: 2017-08-18 23:40:30

1 1058


今天完成的任务

1.整理昨天的小课堂,投稿到修真院在简书的专栏

====>《Maven的生命周期是什么》http://www.jianshu.com/p/2d81b35d17ad


2.Try..catch部分忘记了,重新学习一下

简单说一下吧

    1)java里面的异常分为两个大类:error和exception,而exception又分为runtimeException(运行期异常)和checkedException(可检测异常)。try...catch只能处理可检测异常。

    2)异常里面一共有5个关键词:try、catch、finally、throws、throw。try用于捕获可能出现的异常,一旦异常出现直接跳到catch,运行catch{}里面的代码则是应对影长发生时采取的措施(要么是处理异常的代码,要么是把异常的类型和发生的线程、代码位置往外抛)。finally{}部分的代码则是无论是否发生异常都会进行的,所以非常适合用来关闭结果集、关闭语句、关闭数据库连接。还有一点要注意的是,若是抛出异常,那么finally{}外面的代码不会运行,结合这一点,就能理解为什么把关闭数据库的操作放在finally{}里了。throw是放在异常捕捉块里也就是try{}里面,负责往外抛出异常,throws放在方法声明部分,负责接住throw抛出的异常并继续向外抛出异常。

    3)关键词可以使用的搭配有try+catch、try+catch+finally、try+finally。另外,还可以使用try+catch+catch+...+catch+finally的方式捕获多个异常,顺序由上往下。

    4)try{}和catch{}内定义的变量只能在块内使用(表达不太准确,一时想不出怎么表达更合适一些)

    5)try...catch这东西比较高级,毕竟是要用在checkedException可检测异常上的,这对程序猿的要求较高了。按我现在知道的,在代码连接数据库和读取资源、文件的部分是会出现异常的,可以使用try...catch捕获。另外,我还想到了使用JDBC连接数据库的时候IDE经常提示要捕获SQLException。


3.准备提交任务1的审核,今天写的代码是用注解,完成了接口和并通过单元测试,就差一个main方法了。

使用mybatis进行crud可以不用写实现类,而使用mybatis的注解可以少写一个XML文件,下面是部分代码展示:

接口,写了7个方法:

public interface Dao {
      //查询所有数据
      @Select("select * from student")
      public List<Student> getAllStudent();
      //按Id查询
      @Select("select * from student where id=#{id}")
      public Student getStudentById(long id);
      //按姓名查询
      @Select("select * from student where name=#{name}")
      public Student getStudentByName(String name);
      //删除指定Id,返回布尔类型
      @Delete("delete from student where id=#{id}")
      public boolean deleteById(long id);
      //通过Id修改姓名,返回布尔类型
      @Update("update student set name=#{name} where id=#{id}")
      public boolean updateStudentNameById(@Param("name")String name,@Param("id")long id);
      //增加学生信息,返回Id
      @Insert("insert into student(id,name,qq,major,entrytime,gra_school,id_jnshu,daily_url,desire,brother,msg_source,create_at,update_at)" +
                  "values(#{id},#{name},#{qq},#{major},#{entrytime},#{gra_school},#{id_jnshu},#{daily_url},#{desire},#{brother},#{msg_source},#{create_at},#{update_at})")
      public long addStudent(Student student);
      //清空表单信息
      @Update("truncate table student")
      public void clearTable();
}

单元测试中的部分代码,修改数据要求返回true/fault,所以用了断言:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:ApplicationContext.xml")

public class DaoTest {


      @Resource
      private Dao dao;
      //查询所有数据
      @Test
      public void testGetAllStudent(){
            List<Student> list = dao.getAllStudent();
            for(Student student:list){
                  System.out.println(student);
            }

      }


      //新增信息,返回ID
      @Test
      public void testAddStudent(){
            Student student = new Student();
            student.setId(1);
            student.setName("猴子");
            student.setQq(2153);
            student.setMajor("变戏法");
            student.setEntrytime("1001-01-01");
            student.setGra_school("花果山");
            student.setId_jnshu(998);
            student.setDaily_url("wangzuozhuan");
            student.setDesire("不取经");
            student.setBrother("没有");
            student.setMsg_source("传说");
            student.setCreate_at(12313456);
            student.setUpdate_at(12313467);
            dao.addStudent(student);
            System.out.println("新增的数据ID为:"+student.getId());
      }
      //根据ID修改姓名
      @Test
      public void testUpdateStudentNameById(){
            String name = "孙大圣";
            long id = 1;
            boolean b = dao.updateStudentNameById(name, id);
            assertTrue(b);
      }
}

单元测试的结果

最后一个修改数据失败了,是因为表单原来是空的,编写的单元测试为了省时间,也只插入一条数据,到delete的时候就已经把数据删掉了,所以修改失败。单独测修改的时候是成功的,所以单元测试算是全部通过了。


写完的感觉就是采用Spring+mybatis+注解操作数据库代码非常少非常简单


遇到的问题

远程服务器的SVN无法访问,已经开了端口和防火墙,不知道怎么回事


收获

前三天在看书和准备小课堂,代码的东西有点忘了,今天重新重新复习了捕获异常的部分和代码


明天的计划

把注解的main方法写出来

用XML的方法在写一个CRUD


进度

任务开始时间2018.08.08

预计提交时间2018.08.18

延期风险 有,已经延期了,明天把另一个方法写完,再把剩下的东西一起整理整理,估计20号才能提交审核

禅道    http://task.ptteng.com/zentao/my-task.html


返回列表 返回列表
评论

    分享到