fanjialong il y a 12 heures
Parent
commit
75418e8f25

+ 15 - 0
java-base-project10/day23/day23.iml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="demo-jar" level="project" />
+    <orderEntry type="library" name="a-jar" level="project" />
+    <orderEntry type="library" name="dom4j-2.1.1" level="project" />
+  </component>
+</module>

BIN
java-base-project10/day23/lib/a-jar.jar


BIN
java-base-project10/day23/lib/b-jar.jar


BIN
java-base-project10/day23/lib/demo-jar.jar


BIN
java-base-project10/day23/lib/dom4j-2.1.1.jar


BIN
java-base-project10/day23/lib/hamcrest-core-1.3.jar


BIN
java-base-project10/day23/lib/junit-4.12.jar


+ 12 - 0
java-base-project10/day23/resources/employee.properties

@@ -0,0 +1,12 @@
+employee1_id=1
+employee1_name=zhangsan
+employee1_age=10
+employee1_email=123@qq.com
+employee2_id=2
+employee2_name=wangwu
+employee2_age=20
+employee2_email=123@qq.com
+employee3_id=3
+employee3_name=zhaoliu
+employee3_age=17
+employee3_email=123@qq.com

+ 4 - 0
java-base-project10/day23/resources/user.properties

@@ -0,0 +1,4 @@
+# 账号 key=username  value=zhangsan
+username=zhangsan
+# 密码 key=password  value=123
+password=123

+ 6 - 0
java-base-project10/day23/src/com/sf/_01_ai_code/Student.java

@@ -0,0 +1,6 @@
+package com.sf._01_ai_code;
+
+public class Student {
+    private String  name;
+    private Integer age;
+}

+ 15 - 0
java-base-project10/day23/src/com/sf/_01_ai_code/Test.java

@@ -0,0 +1,15 @@
+package com.sf._01_ai_code;
+
+public class Test {
+
+
+    /**
+     * 单独测试新增是否正确单独测试减法是否正确
+     * @param args
+     */
+    public static void main(String[] args) {
+        // 创建一个数组 进行冒泡排序
+//        AUtil.add(1,2);
+//        BUtil.subtract(2,1);
+    }
+}

+ 9 - 0
java-base-project10/day23/src/com/sf/_01_ai_code/Test1.java

@@ -0,0 +1,9 @@
+package com.sf._01_ai_code;
+
+import com.sf.util.BUtil;
+
+public class Test1 {
+    public static void main(String[] args) {
+        BUtil.subtract(1,2);
+    }
+}

+ 25 - 0
java-base-project10/day23/src/com/sf/_02_junit/Test.java

@@ -0,0 +1,25 @@
+package com.sf._02_junit;
+
+public class Test {
+
+    /**
+     * 使用junit 进行测试
+     * 操作步骤
+     * 1 创建出来一个没有返回值成员方法 public void test1(){}
+     * 2 需要再方法的头上贴上junit 的注解@Test
+     * 3 运行方法
+     */
+
+    @org.junit.Test
+    public void testAdd(){
+        UserServiceImpl userService = new UserServiceImpl();
+//        userService.addUser();
+    }
+
+    @org.junit.Test
+    public void testDelete(){
+        UserServiceImpl userService = new UserServiceImpl();
+//        userService.deleteUser();
+    }
+
+}

+ 24 - 0
java-base-project10/day23/src/com/sf/_02_junit/Test1.java

@@ -0,0 +1,24 @@
+package com.sf._02_junit;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class Test1 {
+
+
+    @Before
+    public void before(){
+        System.out.println("在执行测试方法之前执行代码");
+    }
+    @Test
+    public void test(){
+        System.out.println("执行测试方法");
+    }
+
+
+    @After
+    public void after(){
+        System.out.println("在执行测试方法之后要执行的代码");
+    }
+}

+ 68 - 0
java-base-project10/day23/src/com/sf/_02_junit/User.java

@@ -0,0 +1,68 @@
+package com.sf._02_junit;
+
+public class User {
+    private Long id;
+    private String name;
+    private Integer age;
+
+    public User() {
+    }
+
+    public User(Long id, String name, Integer age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    /**
+     * 获取
+     * @return id
+     */
+    public Long getId() {
+        return id;
+    }
+
+    /**
+     * 设置
+     * @param id
+     */
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 设置
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 获取
+     * @return age
+     */
+    public Integer getAge() {
+        return age;
+    }
+
+    /**
+     * 设置
+     * @param age
+     */
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public String toString() {
+        return "User{id = " + id + ", name = " + name + ", age = " + age + "}";
+    }
+}

+ 36 - 0
java-base-project10/day23/src/com/sf/_02_junit/UserServiceImpl.java

@@ -0,0 +1,36 @@
+package com.sf._02_junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * User(id,name,age)
+ * 在UserServcieImpl 定义一个接Map<Long,User>
+ *     key : userId   value: User
+ *
+ *  提供四个方法 addUser 添加用户放到map中
+ *  updateUser(User user) 修改用户信息
+ *  deleteUser(Long id) 删除user
+ *  queryUser(Long id) 查询user
+ *
+ *  使用junit 进行单元测试增删改查
+ */
+public class UserServiceImpl {
+    public Map<Long,User> map = new HashMap<>();
+    public void addUser(User user){
+        map.put(user.getId(),user);
+    }
+
+    public void deleteUser(Long id){
+        map.remove(id);
+    }
+
+    public void updateUser(User user){
+        map.put(user.getId(),user);
+    }
+
+    public User queryUserById(Long id){
+        return map.get(id);
+    }
+
+}

+ 43 - 0
java-base-project10/day23/src/com/sf/_02_junit/UserServiceImplTest.java

@@ -0,0 +1,43 @@
+package com.sf._02_junit;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class UserServiceImplTest {
+    UserServiceImpl userService = new UserServiceImpl();
+
+    @Test
+    public void addUser() {
+        userService.addUser(new User(1L,"zhangsan",10));
+        userService.addUser(new User(2L,"lisi",15));
+        userService.addUser(new User(3L,"wangwu",13));
+        System.out.println(userService.map);
+    }
+
+    @Test
+    public void deleteUser() {
+        userService.addUser(new User(1L,"zhangsan",10));
+        userService.addUser(new User(2L,"lisi",15));
+
+        userService.deleteUser(1L);
+        System.out.println(userService.map);
+    }
+
+    @Test
+    public void updateUser() {
+        userService.addUser(new User(1L,"zhangsan",10));
+        userService.addUser(new User(2L,"lisi",15));
+
+        userService.updateUser(new User(1L,"fanjialong",18));
+        System.out.println(userService.map);
+    }
+
+    @Test
+    public void queryUserById() {
+        userService.addUser(new User(1L,"zhangsan",10));
+        userService.addUser(new User(2L,"lisi",15));
+
+        System.out.println(userService.queryUserById(1L));
+    }
+}

+ 91 - 0
java-base-project10/day23/src/com/sf/_03_properties_config/Employee.java

@@ -0,0 +1,91 @@
+package com.sf._03_properties_config;
+
+public class Employee implements Comparable<Employee>{
+    private Long id;
+    private String name;
+    private Integer age;
+    private String email;
+
+    public Employee() {
+    }
+
+    public Employee(Long id, String name, Integer age, String email) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.email = email;
+    }
+
+    /**
+     * 获取
+     * @return id
+     */
+    public Long getId() {
+        return id;
+    }
+
+    /**
+     * 设置
+     * @param id
+     */
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 设置
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 获取
+     * @return age
+     */
+    public Integer getAge() {
+        return age;
+    }
+
+    /**
+     * 设置
+     * @param age
+     */
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    /**
+     * 获取
+     * @return email
+     */
+    public String getEmail() {
+        return email;
+    }
+
+    /**
+     * 设置
+     * @param email
+     */
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String toString() {
+        return "Employee{id = " + id + ", name = " + name + ", age = " + age + ", email = " + email + "}";
+    }
+
+    @Override
+    public int compareTo(Employee o) {
+        return o.getAge() - this.getAge();
+    }
+}

+ 106 - 0
java-base-project10/day23/src/com/sf/_03_properties_config/Test1.java

@@ -0,0 +1,106 @@
+package com.sf._03_properties_config;
+
+import org.junit.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+
+public class Test1 {
+    /**
+     * 通过类加载器方式去加载配置文件
+     * @param args
+     */
+    public static void main(String[] args) throws IOException {
+        // 通过类加载器加载配置文件
+        /**
+         * Thread.currentThread()  获取当前线程
+         * getContextClassLoader()  获取当前的这个类加载器 classLoader
+         * getResourceAsStream()   通过类加载器上resources 目录找到配置, 把配置文件信息加载输入流中
+         *
+         * 类加载器大家不需要知道是什么
+         * 他里面提供方法可以让我们去resources 中加载信息不需要去写具体盘符路径
+         */
+        InputStream inputStream = Thread.currentThread().
+                getContextClassLoader().
+                getResourceAsStream("employee.properties");
+        Properties properties = new Properties();
+        // 加载
+        properties.load(inputStream);
+        System.out.println(properties.getProperty("id"));
+        inputStream.close();
+    }
+
+
+    /**
+     * 1 employee.properties 文件中
+     * employee1_id=1
+     * employee1_name=zhangsan
+     * employee1_age=10
+     * employee1_email=123@qq.com
+     *
+     * employee2_id=2
+     * employee2_name=wangwu
+     * employee2_age=20
+     * employee2_email=123@qq.com
+     *
+     * employee3_id=3
+     * employee3_name=zhaoliu
+     * employee3_age=17
+     * employee3_email=123@qq.com
+     *
+     * 要求把配置文件当中属性存储到一个List<Employee> 集合中
+     * 要求1 从大到小排序   最大年龄是employee   最小年龄employee
+     *
+     *
+     */
+    @Test
+    public void test1() throws IOException {
+        InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("employee.properties");
+        //加载配置文件
+        Properties p = new Properties();
+        p.load(inputStream);
+
+        List<Employee> employees = new ArrayList<>();
+        Employee employee1 = new Employee();
+        // 从配置文件中获取属性并且设置
+        employee1.setId(Long.valueOf(p.getProperty("employee1_id")));
+        employee1.setName(p.getProperty("employee1_name"));
+        employee1.setEmail(p.getProperty("employee1_email"));
+        employee1.setAge(Integer.valueOf(p.getProperty("employee1_age")));
+        // 把employee 添加结合中
+        employees.add(employee1);
+
+        Employee employee2 = new Employee();
+        // 从配置文件中获取属性并且设置
+        employee2.setId(Long.valueOf(p.getProperty("employee2_id")));
+        employee2.setName(p.getProperty("employee2_name"));
+        employee2.setEmail(p.getProperty("employee2_email"));
+        employee2.setAge(Integer.valueOf(p.getProperty("employee2_age")));
+        // 把employee 添加结合中
+        employees.add(employee2);
+
+        Employee employee3 = new Employee();
+        // 从配置文件中获取属性并且设置
+        employee3.setId(Long.valueOf(p.getProperty("employee3_id")));
+        employee3.setName(p.getProperty("employee3_name"));
+        employee3.setEmail(p.getProperty("employee3_email"));
+        employee3.setAge(Integer.valueOf(p.getProperty("employee3_age")));
+        // 把employee 添加结合中
+        employees.add(employee3);
+
+
+
+        // 调用工具类排序
+        Collections.sort(employees);
+        for (Employee employee : employees) {
+            System.out.println(employee);
+        }
+        // 关闭资源
+        inputStream.close();
+
+    }
+}

+ 84 - 0
java-base-project10/day23/src/com/sf/_03_properties_config/TestProperties.java

@@ -0,0 +1,84 @@
+package com.sf._03_properties_config;
+
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Properties;
+import java.util.Scanner;
+
+public class TestProperties {
+
+    public static void main(String[] args) throws IOException {
+        Scanner scanner = null;
+        FileInputStream fileInputStream = null;
+        // 1. 初始化Scanner,确保控制台输入流正常
+        scanner = new Scanner(System.in);
+        System.out.println("请录入用户名:");
+        String name = scanner.nextLine(); // 改用nextLine(),兼容含空格的输入
+        System.out.println("请输入密码:");
+        String password = scanner.nextLine();
+
+        // 2. 加载配置文件(建议用相对路径,避免硬编码绝对路径)
+        Properties properties = new Properties();
+        // 方式1:相对路径(推荐,需确保resources目录在classpath下)
+        // fileInputStream = new FileInputStream("src/main/resources/user.properties");
+        // 方式2:保留绝对路径(需确认路径正确)
+        File configFile = new File("D:\\ideaproject\\java0913\\java-base-project10\\day23\\resources\\user.properties");
+
+        fileInputStream = new FileInputStream(configFile);
+        properties.load(fileInputStream);
+
+        // 3. 获取配置文件中的账号密码
+        String username = properties.getProperty("username");
+        String passwd = properties.getProperty("password");
+
+        // 4. 校验(增加空值判断,避免NullPointerException)
+        if (username == null || passwd == null) {
+            System.out.println("配置文件中未配置username或password!");
+        } else if (name.equals(username) && password.equals(passwd)) {
+            System.out.println("登录成功");
+        } else {
+            System.out.println("登录失败");
+        }
+    }
+    /**
+     * 加载user.properties 文件属性信息
+     * 并且获取到配置文件相关属性
+     * <p>
+     * 在控制台当中录入账号和密码
+     * 如果控制当中录入账号和密码 和配置文件当中账号和密码是一样就表示登录成功
+     * 否则就表示登录失败
+     */
+
+    /**
+     * 创建一个Employee id name age email
+     * 在配置文件中配置employee_id=1  employee_name=zhangsan  employee_age=10  employee_email=xxx
+     *
+     * 要求把配置文件属性设置到employee中并且打印出来
+     *
+     */
+    @Test
+    public void test() throws IOException {
+        FileInputStream fileInputStream = new FileInputStream(new File("D:\\idea1project\\java0913\\java-base-project10\\day23\\resources\\employee.properties"));
+
+        // 创建Properties 加载属性文件
+        Properties properties = new Properties();
+        properties.load(fileInputStream);
+
+        String id = properties.getProperty("id");
+        String name = properties.getProperty("name");
+        String age = properties.getProperty("age");
+        String email = properties.getProperty("email");
+        // 把配置文件属性值设置对象中
+        Employee employee = new Employee();
+        employee.setId(Long.parseLong(id));
+        employee.setName(name);
+        employee.setAge(Integer.valueOf(age));
+        employee.setEmail(email);
+        System.out.println(employee);
+        // 关闭资源
+        fileInputStream.close();
+    }
+}