Junit单元测试
    1、before(初始化任务)
    2、After(收尾的任务)
    3、Test(测试任务)
    4、ignore(忽略忽视)
    具体案例(Assert.assert断言,断定)

    1. publicclassAdminDaoImplTest{
    2. IAdminDao dao;
    3. @Before
    4. publicvoid before(){
    5. dao =newAdminDaoImpl();
    6. }
    7. @Test
    8. publicvoid findAll(){
    9. List datas = dao.findAll();
    10. Assert.assertNotNull(datas);
    11. //遍历
    12. datas.forEach(e ->System.out.println(e));
    13. }
    14. @Test
    15. publicvoid update(){
    16. AdminEntity admin = dao.getById(11);
    17. //断言,断定 判断实际的结果,是否满足预期
    18. Assert.assertNotNull(admin);
    19. System.out.println(admin);
    20. admin.setAge(25);
    21. admin.setTelphone(“1656789457”);
    22. //调用修改
    23. dao.update(admin);
    24. }
    25. @Test
    26. publicvoid save(){
    27. //准备数据(来自于用户的录入)
    28. AdminEntity admin =newAdminEntity();
    29. admin.setAdminName(“李四”);
    30. admin.setLoginName(“ls”);
    31. admin.setPassword(“123456”);
    32. dao.save(admin);

    XML:extended markup language可扩展标记语言,数据传输的格式(标签、字符、符号)
    HTML:超文本标记语言
    语法;1、标签必须成对出现
    2、见名知意
    image.png
    XML的校验
    两种校验方式:DTD,Schema
    DTD:文档类型定义:用来规范XML的格式!
    特点:1、一个XML中只有一个DTD
    2、
    DOM:document object model
    DOM4J:DOM for java:解析XML
    反射:反省、自省。程序在运行的过程中,反向重新加载的过程、理解反射的概念
    反射核心类:class类对象
    该类对象只加载一次,每个类都
    有一个类对象 作用:class就是类的模板
    三种方式获得class对象
    第一种方式:知道类的全限名
    Class cls = Class.forName(类的全限名);
    第二种方式:知道类,通过class属性来获取
    Class cls = UserBean.class;
    第三种方式:知道对象,通过getClass()来获取
    UserBean user = new UserBean();System.out.println(user.getClass());
    调用无参构造器产生对象,使用了反序列化技术
    操作类的元素:属性、方法、构造、注解、构造器
    1、属性:

    1. Class cls =Class.forName(“com.woniuxy.day22.UserBean”);
    2. Object obj = cls.newInstance();//调用无参构造器
    3. System.out.println(obj);
    4. // Field userName = cls.getField(“userName”);//得到共有的属性
    5. Field userName = cls.getDeclaredField(“userName”);//得到私有属性
    6. System.out.println(userName);
    7. userName.setAccessible(true);//暴力破解(反射针对私有属性)
    8. userName.set(obj,”zs”);
    9. System.out.println(obj);

    2、方法

    1. Class cls =Class.forName(“com.woniuxy.day22.UserBean”);
    2. Object obj = cls.newInstance();// 调用无参构造器
    3. // Method m1 = cls.getMethod(“eat”, null);//共有方法
    4. // // 调用
    5. // m1.invoke(obj, null);
    6. // Method m2 = cls.getMethod(“goHome”, String.class);
    7. // m2.invoke(obj, “自行车”);
    8. Method m3 = cls.getDeclaredMethod(“study”,null);//私有方法
    9. System.out.println(m3);
    10. m3.setAccessible(true);
    11. m3.invoke(obj,null);

    3、构造

    1. Class cls =Class.forName(“com.woniuxy.day22.UserBean”);
    2. // Constructor cons = cls.getConstructor(String.class,Integer.class);//公共的构造器
    3. // Object obj = cons.newInstance(“张三”,20);
    4. // System.out.println(obj);
    5. Constructor cons = cls.getDeclaredConstructor(String.class,Integer.class);
    6. cons.setAccessible(true);//爆破
    7. Object obj = cons.newInstance(“张三”,20);
    8. System.out.println(obj);

    4、注解

    1. Class cls =Class.forName(“com.woniuxy.day22.UserBean”);
    2. Method m = cls.getMethod(“toString”,null);
    3. //得到的注解对象
    4. Override o = m.getAnnotation(Override.class);