查看“Java 桌面版之Model层”的源代码
←
Java 桌面版之Model层
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==Model层的作用== *M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 [[文件:Java8-1.png]] ===客户端功能=== [[文件:Java2-36.png]] ==客户端Model层的编写== ===新建类UserService=== 新建包service,在其中新建此类。 <nowiki>package service; import dao.*; import entity.*; //import exception.UserException; public class UserService { /** * 用户集类(用于存储用户 */ private UserDao userset = null; public UserService() { //这里根据实际情况,选择数据的实现类 //userset = new UserDaoArray(); userset = new UserDaoSQL(); } }</nowiki> ===添加用户功能:addUser=== <nowiki>/** * 用于向用户集添加用户 */ public void addUser(User user){ userset.addUser(user); System.out.println("用户 "+user.getName() +" 注册成功"); System.out.println(); } </nowiki> ===用户登陆验证功能:login()=== <nowiki>/** * 登录验证,判断用户名与密码是否一致 * * @param uid 用户输入的登录账号 * @param pwd 用户输入的登录密码 * @return 登录信息有效:返回用户对象,否则返回NULL */ public boolean login(String name, String pwd) { //用户名为空,密码为空 //try{ if(userset.search(name)==null){ //throw new UserException("用户 "+name+":该用户不存在"); System.out.println("用户 "+name+":该用户不存在"); return false; }else if(!userset.verify(name, pwd)){ //throw new UserException("用户 "+name+":用户名或密码错误"); System.out.println("用户 "+name+":用户名或密码错误"); return false; } System.out.println("用户 "+name+" 登陆成功!"); //}catch(UserException e){ //System.out.println(e.toString()); //return false; //} return true; }</nowiki> ===在main方法中编写测试代码=== <nowiki>public static void main(String[] args) { UserService us = new UserService(); User u1 = new User("王建","000000"); us.addUser(u1);; us.login("李建", "111111"); us.login("王建", "111111"); us.login("王建", "000000"); }</nowiki> ==与View层、Dao层联调联试== 在View层UserInfo类内部,进行如下操作 ===创建和绑定事件监听器=== 共有两个监听器:一个是登陆按钮的监听器,一个是重置按钮的监听器。 这两个监听器都以UserInfo类的内部类存在,都在UserInfo类里面。 LoginAction: <nowiki>private class LoginAction implements ActionListener{ public LoginAction(){ } @Override public void actionPerformed(ActionEvent e) { // 获取用户输入的账号和密码 String uid = txtUserID.getText(); String pwd = new String(txtPassword.getPassword()); JOptionPane.showMessageDialog(null, uid+","+pwd, "信息", JOptionPane.INFORMATION_MESSAGE); } }</nowiki> ResetAction: <nowiki>private class ResetAction implements ActionListener{ public ResetAction(){ } @Override public void actionPerformed(ActionEvent e) { txtUserID.setText(""); txtPassword.setText(""); txtUserID.requestFocus(); } }</nowiki> 在UserInfo类的构造方法中,为两个按钮绑定事件监听器: <nowiki>btnLogon.addActionListener(new LoginAction()); btnReset.addActionListener(new ResetAction());</nowiki> [[文件:java9-41.png]] 测试:右击类UserInfo ,RUN AS -> JAVA APPLICATION: [[文件:Java8-6.png]] 点击登陆时,如图: [[文件:java9-42.png]] ===加入对service层的调用=== 在UserInfo的事件监听器LoginAction中,加入对service层的调用: <nowiki>private class LoginAction implements ActionListener{ public LoginAction(){ } @Override public void actionPerformed(ActionEvent e) { // 获取用户输入的账号和密码 String uid = txtUserID.getText(); String pwd = new String(txtPassword.getPassword()); // 判断用户输入的账号和密码是否存在 UserService us = new UserService(); boolean success = us.login(uid, pwd); // 用户编号不存在 if (success == false) { JOptionPane.showMessageDialog(null, "登陆账号或密码不正确", "警告信息", JOptionPane.WARNING_MESSAGE); // 增加用户体验,选中文本框中的字,并获得焦点 txtUserID.requestFocus(); txtUserID.selectAll(); } else JOptionPane.showMessageDialog(null, "登陆成功", "信息", JOptionPane.INFORMATION_MESSAGE); } }</nowiki> 测试:右击类UserInfo ,RUN AS -> JAVA APPLICATION: [[文件:Java8-6.png]] 登录成功时,弹出成功界面,如图: [[文件:java8-12.png]] 失败时,弹出失败界面,如图: [[文件:java8-12.png]] ==完整代码== <nowiki>package service; import dao.*; import entity.*; //import exception.UserException; public class UserService { /** * 用户集类(用于存储用户 */ private UserDao userset = null; public UserService() { userset = new UserDaoSQL(); } /** * 用于向用户集添加用户 */ public void addUser(User user){ userset.addUser(user); System.out.println("用户 "+user.getName() +" 注册成功"); System.out.println(); } /** * 登录验证,判断用户名与密码是否一致 * * @param uid 用户输入的登录账号 * @param pwd 用户输入的登录密码 * @return 登录信息有效:返回用户对象,否则返回NULL */ public boolean login(String name, String pwd) { //用户名为空,密码为空 //try{ if(userset.search(name)==null){ //throw new UserException("用户 "+name+":该用户不存在"); System.out.println("用户 "+name+":该用户不存在"); return false; }else if(!userset.verify(name, pwd)){ //throw new UserException("用户 "+name+":用户名或密码错误"); System.out.println("用户 "+name+":用户名或密码错误"); return false; } System.out.println("用户 "+name+" 登陆成功!"); //}catch(UserException e){ //System.out.println(e.toString()); //return false; //} return true; } public static void main(String[] args) { UserService us = new UserService(); User u1 = new User("王建","000000"); us.addUser(u1);; us.login("李建", "111111"); us.login("王建", "111111"); us.login("王建", "000000"); } } </nowiki>
返回至
Java 桌面版之Model层
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息