MVC学习笔记

MVC核心思想:
       将业务/数据/界面分离,各司其职,从而降低了耦合性。

MVC设计思想示意图:
在这里插入图片描述

MVC思想小例子 ——登陆功能

1.控制台模拟前端 —— View

// 控制台模拟前端
public class Demo01 {
	MyController con = new MyController();
	@Test
	// -> 登录
	public void loginTest() {
		// 0.填写用户名/密码 - 前端
		// 1.获得用户名/密码 ->  对象
		Scanner console = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String name = console.nextLine();
		System.out.println("请输入密码:");
		String password = console.nextLine();
		// 封装成对象,输入封装成User很简单,代码不再展示
		User user = new User(name, password);
		// 将对象交给控制器 -> 登录操作
		User loginUser = con.login(user);
		// 4.结果显示 - 前端
		System.out.println(loginUser.getName() + " 欢迎登录!");
	}
}

2.Controller

//控制器
public class MyController {
	public User login(User user) {
		// 调用数据库的操作,将参数传给数据库
		UserDAO ud = new UserDAO();
		User loginUser = ud.findUserByUserAndPwd(user.getName(), user.getPassword());
		if (loginUser == null) {
			// 实际开发中,是自定义的异常
			throw new RuntimeException("用户名/密码错误");
		}
		return loginUser;
	}
}

**3.操作数据库的UserDAO **

// 操作数据库 DAO: Data Access Object
public class UserDAO {
	// 2.获得数据库连接
	// 3.操作增/查 -> 对象
	public User findUserByUserAndPwd(String username, String password) {
		Connection conn = C3P0Utils.getConnection();
		String sql = "select * from user_bao where username=? and password=?";
		try {
			PreparedStatement stmt = conn.prepareStatement(sql);
			stmt.setString(1, username);
			stmt.setString(2, password);
			
			ResultSet rs = stmt.executeQuery();
			if (rs.next()) {
				// 将查询结果封装成对象
				User user = new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				return user;
			}
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
}

4.module——就是前面的User类(JavaBean),不再详细阐述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值