“商苑面馆:Java 网页版之 Dao层”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(以“代码与命令行版的Dao层基本一致: *商苑面馆:Java命令行版之 Dao层(MySQL实现)”替换内容)
 
第1行: 第1行:
==Dao层==
+
代码与命令行版的Dao层基本一致:
[[文件:Java8-1.png]]
 
  
==前期准备==
+
*[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]]
在entity包下建立User类:
 
 
 
<nowiki>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;
 
}
 
}</nowiki>
 
==实现步骤==
 
 
 
===建立接口UserDao===
 
在包dao下建立抽象接口UserDao
 
 
 
<nowiki>package dao;
 
 
 
 
 
import entity.User;
 
public interface UserDao {
 
public boolean verify(String name, String pwd)throws Exception ;//验证用户名和密码是否一致
 
 
 
}</nowiki>
 
===建立接口的实现类===
 
接口实现类可以用多种方式实现,ArrayList,LinkedList, MySQL等
 
 
 
这里我们用查询MySQL实现
 
 
 
====接口实现类UserDaoSQL====
 
<nowiki>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;
 
 
}
 
}
 
 
 
</nowiki>
 
===编写测试代码===
 
在UserDaoSQL类的main方法中编写测试代码:
 
 
 
<nowiki>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("密码错误");
 
    }
 
    }</nowiki>
 
 
 
[[文件:java7-38.png]]
 

2019年5月20日 (一) 06:51的最新版本

代码与命令行版的Dao层基本一致: