今天完成的任务
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
评论