在千锋“逆战”学习第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+"名用户");
}
}