千锋20200402

在千锋“逆战”学习第45天

      每日一句:人呐,眼光放得长远一些,看到的东西也会多一些,生活也就会过得更有意义一点。
      今天学习了ThreadLocal、三层架构设计、工具类型封装和泛型工具、Apache的DbUtils。
      明天继续努力。

课堂案例

public class User {
    private int id;
    private String username;
    private String password;
    private String sex;
    private String email;
    private String address;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public User() {
    }

    public User(int id, String username, String password, String sex, String email, String address) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.sex = sex;
        this.email = email;
        this.address = address;
    }
}

/**
 * 连接池工具类
 */
public class DBUtils {
    private static DruidDataSource dataSource;

    static {
        Properties properties = new Properties();
        InputStream is = DBUtils.class.getResourceAsStream("/dbaddpool.properties");
        try {
            properties.load(is);
            dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 返回一个数据源
    public static DataSource getDataSource(){
        return dataSource;
    }
}
public class UserDaoImpl implements UserDao {

    //1.创建QueryRunner对象,并传递一个数据源对象
    private QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
    @Override
    public int insert(User user) {
        Object[] params={user.getId(),user.getUsername(),user.getPassword(),user.getSex(),user.getEmail(),user.getAddress()};
        try {
            return queryRunner.update("insert into user (id,username,password,sex,email,address) values(?,?,?,?,?,?)",params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int update(User user) {
        Object[] params={user.getUsername(),user.getPassword(),user.getSex(),user.getEmail(),user.getAddress(),user.getId()};
        try {
            return queryRunner.update("update user set username=?,password=?,sex=?,email=?,address=? where id = ?",params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int delete(int id) {
        try {
            return queryRunner.update("delete from user where id = ?",id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public User select(int id) {
        try {
            //把查询到的记录封装成 指定对象
            return queryRunner.query("select * from user where id = ?", new BeanHandler<>(User.class), id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 查询所有
     * @return
     */
    @Override
    public List<User> selectAll() {
        try {
            return queryRunner.query("select * from user;",new BeanListHandler<>(User.class));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 统计当前表中有多少条数据
     * count(*)
     * @return
     */
    public long selectCount() {
        try {
            return  queryRunner.query("select count(*) from user;", new ScalarHandler<>());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}
public class UserServiceImpl implements UserService {
    @Override
    public int add(User user) {
        UserDao userDao = new UserDaoImpl();

        return userDao.insert(user);
    }
}
public class Test {
    public static void main(String[] args) {
//        UserSerivce userSerivce = new UserServiceImpl();
//        User user = new User(4,"六六","1234","女","[email protected]","北京市");
//        System.out.println(userSerivce.add(user));
//        User user = new User(3,"七七","1234","女","[email protected]","北京市");
//        UserDao userDao = new UserDaoImpl();
//        System.out.println(userDao.update(user));

//        System.out.println(userDao.delete(4));
        UserDao userDao = new UserDaoImpl();
        User users = userDao.select(1);
        System.out.println(users);
        System.out.println("查询多个:");
        List<User> userslist = userDao.selectAll();
        userslist.forEach(System.out::println);

        long i = userDao.selectCount();
        System.out.println("有"+i+"名用户");
    }

}

发布了62 篇原创文章 · 获赞 0 · 访问量 1991

猜你喜欢

转载自blog.csdn.net/qq_41841482/article/details/105277387