Skip to content

Commit 20c9864

Browse files
committed
update
1 parent 064d1de commit 20c9864

23 files changed

+347
-50
lines changed

.idea/libraries/mysql_connector_java_8_0_27_bin.xml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

book/book.iml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@
3838
<orderEntry type="library" name="book_lib" level="project" />
3939
<orderEntry type="library" name="book_lib (2)" level="project" />
4040
<orderEntry type="library" name="book_lib (3)" level="project" />
41+
<orderEntry type="library" name="mysql-connector-java-8.0.27-bin" level="project" />
42+
<orderEntry type="library" name="druid-1.1.21" level="project" />
4143
</component>
4244
</module>

book/src/main/java/com/atguigu/dao/UserDao.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
import com.atguigu.pojo.User;
44

5+
/**
6+
* 这个接口 有哪些方法 ,是由我们登录界面 需要哪些功能来决定的
7+
* 接口只是规范,不需要写具体的方法
8+
*/
59
public interface UserDao {//接口 列出 注册和登录所需要的功能
610

711
/**
@@ -23,7 +27,7 @@ public interface UserDao {//接口 列出 注册和登录所需要的功能
2327
/**
2428
* 保存用户信息
2529
* @param user
26-
* @return
30+
* @return 返回-1表示操作失败, 其他为 返回操作影响的行数
2731
*/
2832
public int saveUser(User user);
2933

book/src/main/java/com/atguigu/dao/impl/BaseDao.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.atguigu.dao.impl;
22

3+
34
import com.atguigu.utils.JdbcUtils;
45
import org.apache.commons.dbutils.QueryRunner;
56
import org.apache.commons.dbutils.handlers.BeanHandler;
@@ -18,15 +19,25 @@ public abstract class BaseDao {
1819
/**
1920
* update()方法用来执行: Insert\Update\Delete
2021
* 如果返回-1表示执行失败
21-
* @return
22+
* @return 返回影响行数
2223
*/
2324
public int update(String sql,Object...args){
25+
//1.创建连接
2426
Connection connection = JdbcUtils.getConnection();
2527
try {
28+
//调用的是 QueryRunner 里的 update()方法, 这个方法 你传入连接,SQL语句和占位符的值,
29+
//它会自动创建preparedStatement对象,然后进行占位符赋值
30+
//然后执行SQL语句 并返回 影响行数
31+
//相当于是之前的
32+
33+
//2.创建preparedStatement对象
34+
//3.占位符赋值
35+
//4.发送SQL语句,并返回影响行数
2636
return queryRunner.update(connection,sql,args);
2737
} catch (SQLException e) {
2838
e.printStackTrace();
2939
}finally {
40+
//5.回收资源
3041
JdbcUtils.close(connection);
3142
}
3243
return -1;
@@ -42,13 +53,18 @@ public int update(String sql,Object...args){
4253
* @return
4354
*/
4455
public<T> T queryForOne(Class<T>type, String sql,Object...args){
56+
//1.创建连接
4557
Connection connection = JdbcUtils.getConnection();
4658

4759
try {
60+
//2.创建preparedStatement对象
61+
//3.占位符赋值
62+
//4.发送SQL语句 并返回 结果集
4863
return queryRunner.query(connection,sql,new BeanHandler<T>(type),args);
4964
} catch (Exception e) {
5065
e.printStackTrace();
5166
}finally {
67+
//5.回收连接
5268
JdbcUtils.close(connection);
5369
}
5470
return null;
@@ -62,12 +78,16 @@ public<T> T queryForOne(Class<T>type, String sql,Object...args){
6278
* @param sql 执行的sql语句
6379
* @param args sql对应的参数值
6480
* @param <T> 返回类型的泛型
65-
* @return
81+
* @return List<T> 返回List集合 结果集
6682
*/
6783
public<T> List<T> queryForList(Class<T>type, String sql,Object...args){
84+
//1.建立连接
6885
Connection connection = JdbcUtils.getConnection();
6986

7087
try {
88+
//2.创建preparedStatement对象
89+
//3.占位符赋值
90+
//4.执行SQL语句 , 返回结果集
7191
return queryRunner.query(connection,sql,new BeanListHandler<T>(type),args);
7292
} catch (Exception e) {
7393
e.printStackTrace();
@@ -84,8 +104,12 @@ public<T> List<T> queryForList(Class<T>type, String sql,Object...args){
84104
* @return
85105
*/
86106
public Object queryForSingleValue(String sql,Object...args){
107+
//1.创建连接
87108
Connection connection = JdbcUtils.getConnection();
88109
try {
110+
//2.创建preparedStatement对象
111+
//3.占位符赋值
112+
//4.执行SQL语句,返回结果集
89113
return queryRunner.query(connection,sql,new ScalarHandler(),args);
90114
} catch (Exception e) {
91115
e.printStackTrace();

book/src/main/java/com/atguigu/dao/impl/UserDaoImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,24 @@
77
public class UserDaoImpl extends BaseDao implements UserDao {
88

99
@Override
10+
//传入占位符的值 username
1011
public User queryUserByUsername(String username) {
1112
String sql="select `id`,`username`,`password`,`email` from t_user where username=?";
1213
return queryForOne(User.class,sql,username);
1314
}
1415

1516
@Override
17+
//传入占位符的值 username和password 两个参数
1618
public User queryUserByUsernameAndPassword(String username, String password) {
17-
String sql="select `id`,`username`,`password`,`email` from t_user where username=?";
19+
String sql="select `id`,`username`,`password`,`email` from t_user where username=? and password=?";
1820
return queryForOne(User.class,sql,username,password);
1921

2022
}
2123

2224
@Override
25+
// 传入user对象,我们通过 user类的公共 get and set()方法 ,获取到 用户的name,password,email
26+
// 然后通过update()方法,将用户的属性 传到数据库
27+
2328
public int saveUser(User user) {
2429
String sql= " insert into t_user(`username`,`password`,`email`)VALUES(?,?,?);";
2530
return update(sql,user.getUsername(),user.getPassword(),user.getEmail());//Insert语句所以用update()方法
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.atguigu.service;
2+
3+
import com.atguigu.pojo.User;
4+
5+
public interface UserService {
6+
7+
/**
8+
* 注册用户
9+
* @param user
10+
*/
11+
public void registUser(User user);
12+
13+
/**
14+
* 用户登录
15+
* @param user
16+
* @return 登录失败返回 null ,返回有值 则登录成功
17+
*/
18+
public User login(User user);
19+
20+
/**
21+
* 检查用户名是否可以用
22+
* @param username
23+
* @return 返回true表示用户名已存在,返回false表示用户名可用
24+
*/
25+
public boolean existsUsername(String username);
26+
27+
28+
29+
30+
31+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.atguigu.service.impl;
2+
3+
import com.atguigu.dao.UserDao;
4+
import com.atguigu.dao.impl.UserDaoImpl;
5+
import com.atguigu.pojo.User;
6+
import com.atguigu.service.UserService;
7+
8+
public class UserServiceImpl implements UserService {
9+
10+
//UserDao接口的引用 = 实现了该接口的类UserDaoImpl 的对象
11+
// 这里 service层 就开始和 Dao层 开始交互了
12+
// 引用 UseDao 也是为了调用其 方法
13+
private UserDao userDao=new UserDaoImpl();
14+
15+
@Override
16+
public void registUser(User user) {
17+
userDao.saveUser(user);
18+
}
19+
20+
@Override
21+
public User login(User user) {
22+
return userDao.queryUserByUsernameAndPassword(user.getUsername(),user.getPassword());
23+
}
24+
25+
@Override
26+
public boolean existsUsername(String username) {
27+
if(userDao.queryUserByUsername(username)==null){
28+
return false;
29+
}else
30+
return true;
31+
}
32+
}

book/src/main/java/com/atguigu/test/JdbcUtilsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.atguigu.test;
22

3+
34
import com.atguigu.utils.JdbcUtils;
45
import org.junit.Test;
56

book/src/main/java/com/atguigu/test/UserDaoITest.java renamed to book/src/main/java/com/atguigu/test/UserDaoTest.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@
22

33
import com.atguigu.dao.UserDao;
44
import com.atguigu.dao.impl.UserDaoImpl;
5+
import com.atguigu.pojo.User;
56
import org.junit.Test;
67

7-
import static org.junit.Assert.*;
8+
public class UserDaoTest {
89

9-
public class UserDaoITest {
10+
// 接口的引用 = 实现了该接口 的类的对象
11+
UserDao userDao = new UserDaoImpl();
1012

1113
@Test
1214
public void queryUserByUsername() {
13-
UserDao userDao = new UserDaoImpl();
14-
if(userDao.queryUserByUsername("admin123")==null){
15+
16+
if(userDao.queryUserByUsername("admin")==null){
1517
System.out.println("用户名可用");
1618
}else{
1719
System.out.println("用户名已存在");
@@ -20,7 +22,8 @@ public void queryUserByUsername() {
2022

2123
@Test
2224
public void queryUserByUsernameAndPassword() {
23-
if(UserDao.queryUserByUsernameAndPassword("admin","admin")==null){
25+
26+
if( userDao.queryUserByUsernameAndPassword("admin","admin")==null){
2427
System.out.println("用户名或密码错误,登陆失败");
2528
}else {
2629
System.out.println("查询成功");
@@ -30,5 +33,6 @@ public void queryUserByUsernameAndPassword() {
3033

3134
@Test
3235
public void saveUser() {
36+
System.out.println(userDao.saveUser(new User(null,"wzg168","123456","[email protected]")));
3337
}
3438
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.atguigu.test;
2+
3+
import com.atguigu.pojo.User;
4+
import com.atguigu.service.UserService;
5+
import com.atguigu.service.impl.UserServiceImpl;
6+
import org.junit.Test;
7+
8+
import static org.junit.Assert.*;
9+
10+
public class UserServiceTest {
11+
12+
//UserService接口的引用 = 实现了 该接口 的 类UserServiceImpl 的对象
13+
//便于调用 UserService接口里的 方法
14+
UserService userService=new UserServiceImpl();
15+
16+
@Test
17+
public void registUser() {
18+
userService.registUser(new User(null,"bbj168","666666","[email protected]"));
19+
userService.registUser(new User(null,"abc168","666666","[email protected]"));
20+
}
21+
22+
@Test
23+
public void login() {
24+
System.out.println(userService.login(new User(null,"wzg168","123456",null)));
25+
}
26+
27+
@Test
28+
public void existsUsername() {
29+
if(userService.existsUsername("wzg16888")){
30+
System.out.println("用户名已存在");
31+
}else
32+
System.out.println("用户名可用");
33+
}
34+
35+
36+
}

0 commit comments

Comments
 (0)