“商苑面馆:Java 网页版之 Dao层”的版本间的差异
来自CloudWiki
第125行: | 第125行: | ||
}</nowiki> | }</nowiki> | ||
− | [[文件:java7- | + | [[文件:java7-38.png]] |
2019年5月2日 (四) 04:07的版本
Dao层
前期准备
在entity包下建立User类:
package entity; public class User { //成员变量 public String name; public String password; //构造方法 public User(){ } public User(String name,String password ){ this.name=name; this.password=password; } //读方法 public String getname(){ return this.name; } //写方法 public boolean setName(String s){ this.name = s; return true; } //获取用户密码 public String getPwd(){ return this.password; } //写方法 public boolean setPwd(String p){ this.password = p; return true; } }
实现步骤
建立接口UserDao
在包dao下建立抽象接口UserDao
package dao; import entity.User; public interface UserDao { public boolean verify(String name, String pwd)throws Exception ;//验证用户名和密码是否一致 }
建立接口的实现类
接口实现类可以用多种方式实现,ArrayList,LinkedList, MySQL等
这里我们用查询MySQL实现
接口实现类UserDaoSQL
package dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; // 调用数据库,进行查询用户名和密码 public class UserDaoSQL implements UserDao{ public boolean verify(String username, String password) throws Exception { boolean returnValue = false; String sql = "SELECT * FROM user"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DBConnection.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { String userName = rs.getString("username"); String passWord = rs.getString("password"); if (userName.equals(username) && passWord.equals(password)) { // 如果用户名和密码都和数据库的一样,就返回true returnValue = true; break; } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return returnValue; } }
编写测试代码
在UserDaoSQL类的main方法中编写测试代码:
public static void main(String[] args) throws Exception{ //本类的测试代码 // TODO Auto-generated method stub UserDao userSet= new UserDaoSQL(); if(userSet.verify("maxin", "000000")){ System.out.println("密码正确"); }else{ System.out.println("密码错误"); } }