“Java任务:修改用户密码”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
实现思路
第22行: 第22行:
 
}
 
}
 
</nowiki>
 
</nowiki>
 
==任务实现==
 
 
===实现思路===
 
===实现思路===
 
*我们之前已经定义了一个UserDao接口。
 
*我们之前已经定义了一个UserDao接口。
 
*现在我们用MYSQL数据库来实现这个接口。
 
*现在我们用MYSQL数据库来实现这个接口。
 +
==任务实现==
 +
===程序代码===
 +
<nowiki>package dao;
  
===程序代码===
+
import java.sql.*;
1、UserDao中的密码修改方法
 
  
[[文件:java7-3.png]]
+
import entity.User;
  
2、主类
+
public class UserDaoSQL {
 +
// JDBC 驱动名及数据库 URL
 +
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
 +
static final String DB_URL = "jdbc:mysql://localhost:3306/cloud";
 +
// 数据库的用户名与密码,需要根据自己的设置
 +
static final String USER = "root";
 +
    static final String PASS = "000000";
 +
 +
    public UserDaoSQL(){
 +
 
 +
    }
 +
    /**
 +
  * 连接数据库
 +
  * @param 值为空
 +
  * @return Connection 建立的数据库连接
 +
  */
 +
private static Connection getConn() {   
 +
   
 +
    Connection conn = null;     
 +
        try {
 +
            Class.forName(JDBC_DRIVER); //classLoader,加载对应驱动
 +
            conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS);
 +
            System.out.println("MySQL连接成功!");
 +
        } catch (ClassNotFoundException e) {
 +
        System.out.println(e.getMessage());
 +
        } catch (SQLException e) {
 +
        System.out.println(e.getMessage());
 +
        }
 +
        return conn;
 +
  }
 +
  /**
 +
  * 向数据库中添加用户
 +
  * @param user,要添加的用户
 +
  * @return 返回值为空
 +
  */
 +
public void addUser(User user){//添加用户
 +
Connection conn = getConn();
 +
       
 +
        String sql = "insert into user (name,password) values(?,?)";
 +
        PreparedStatement pstmt;
 +
        try {
 +
            pstmt = (PreparedStatement) conn.prepareStatement(sql);
 +
            pstmt.setString(1, user.getName());
 +
            pstmt.setString(2, user.getPassword());  //pstmt.setInt(2, user.getAge()); pstmt.setDate 
 +
                       
 +
            pstmt.executeUpdate();
 +
            pstmt.close();
 +
            conn.close();
 +
        } catch (SQLException e) {
 +
        System.out.println(e.getMessage());
 +
        }
 +
       
 +
}
 +
 +
/**
 +
  * 向数据库中查询所有用户
 +
  * @param 值为空
 +
  * @return 值为空
 +
  */
 +
  public void queryUser( ){//查询用户  
 +
  Connection conn = getConn();
 +
      String sql = "select * from user";
 +
      PreparedStatement pstmt;
 +
      try {
 +
            pstmt = (PreparedStatement)conn.prepareStatement(sql);
 +
            ResultSet rs = pstmt.executeQuery();//执行查询
 +
            int col = rs.getMetaData().getColumnCount();//获取字段数
 +
            System.out.println("============================");
 +
            while (rs.next()) {
 +
                for (int i = 1; i <= col; i++) {
 +
                    System.out.print(rs.getString(i) + "\t");
 +
                    if ((i == 2) && (rs.getString(i).length() < 8)) {//此行仅仅是为了显示更好看,可以删去
 +
                        System.out.print("\t");
 +
                    }
 +
                }
 +
                System.out.println("");
 +
            }
 +
            System.out.println("============================");
 +
        } catch (SQLException e) {
 +
        System.out.println(e.getMessage());
 +
        }
 +
  }
 +
  /**
 +
  * 验证用户名是否存在
 +
  * @param name,用户名
 +
  * @return 布尔值
 +
  */
 +
  public boolean hasUser(String name){//查询某个用户是否存在
 +
  boolean success=false;//标记验证是否成功
 +
    try {
 +
    Connection con = getConn();    
 +
    String sql = "select * from user where name=? ";
 +
    PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);    
 +
            pstmt.setString(1, name);
 +
           
 +
            ResultSet rs = pstmt.executeQuery();//执行查询   
 +
   
 +
    if(rs.next()) { 
 +
    //System.out.println("欢迎" + rs.getString("name"));
 +
    success=true;
 +
    }
 +
    pstmt.close();
 +
            con.close();
 +
           
 +
    }catch (SQLException e) {
 +
            System.out.println(e.getMessage());
 +
        }
 +
       
 +
    return success; 
 +
  }
 +
/**
 +
  * 验证用户名和密码是否正确
 +
  * @param usename,用户名
 +
  * @param password,密码
 +
  * @return 建立的数据库连接
 +
  */
 +
public  boolean verify(String username, String password) {
 +
    boolean success=false;//标记验证是否成功
 +
    try {
 +
    Connection con = getConn();
 +
   
 +
    String sql = "select * from user where name=? and password=?";
 +
    PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);
 +
   
 +
            pstmt.setString(1, username);
 +
            pstmt.setString(2, password); 
 +
            ResultSet rs = pstmt.executeQuery();//执行查询   
 +
   
 +
    if(rs.next()) { 
 +
    //System.out.println("欢迎" + rs.getString("name"));
 +
    success=true;
 +
    }
 +
    pstmt.close();
 +
            con.close();
 +
           
 +
    }catch (SQLException e) {
 +
            System.out.println(e.getMessage());
 +
        }
 +
       
 +
    return success;       
 +
   
 +
    }
 +
public static void main(String[] args) {
 +
getConn();
 +
UserDaoSQL uds =new UserDaoSQL();
 +
    uds.verify("ma","123456");
 +
    User u1=new User("zhangyi","456");//这里可能会遇到构造方法参数不符的问题,重新修改一下构造方法
 +
    uds.addUser(u1);
 +
    System.out.println(uds.hasUser(u1.getName()));
 +
    uds.queryUser();
 +
    System.out.println("Goodbye!");
 +
}
 +
}</nowiki>
  
[[文件:java7-4.png]]
 
  
 
返回 [[Java程序设计]]
 
返回 [[Java程序设计]]

2018年5月9日 (三) 14:30的版本

任务描述:修改用户密码

如图7-2所示,用户登录成功后还可以根据需要选择自己需要的服务,如修改密码,查询图书等。本节先来完成密码修改,下节内容将完成图书查询。 Java7-2.png

图7-2 修改密码

前情回顾

用户数据接口UserDao

package dao;

import entity.User;

public interface UserDao {
	
	  public void addUser(User u);//添加用户
	 
	  public void queryUser( );//查询用户	  
	  
	  public boolean hasUser(String name);//查询某个用户是否存在
	
	  public boolean verify(String name, String pwd);//验证用户名和密码是否一致
	  
}

实现思路

  • 我们之前已经定义了一个UserDao接口。
  • 现在我们用MYSQL数据库来实现这个接口。

任务实现

程序代码

package dao;

import java.sql.*;

import entity.User;

public class UserDaoSQL {
	// JDBC 驱动名及数据库 URL
	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
	static final String DB_URL = "jdbc:mysql://localhost:3306/cloud";
	// 数据库的用户名与密码,需要根据自己的设置
	static final String USER = "root";
    static final String PASS = "000000";
	
    public UserDaoSQL(){
 	   
    }
    /**
	   * 连接数据库
	   * @param 值为空
	   * @return Connection 建立的数据库连接
	   */
	private static Connection getConn() {     
     
    	Connection conn = null;       
        try {
            Class.forName(JDBC_DRIVER); //classLoader,加载对应驱动
            conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("MySQL连接成功!");
        } catch (ClassNotFoundException e) {
        	System.out.println(e.getMessage());
        } catch (SQLException e) {
        	System.out.println(e.getMessage());
        }
        return conn;
   }
	  /**
	   * 向数据库中添加用户
	   * @param user,要添加的用户
	   * @return 返回值为空
	   */
	public void addUser(User user){//添加用户
		Connection conn = getConn();
        
        String sql = "insert into user (name,password) values(?,?)";
        PreparedStatement pstmt;
        try {
            pstmt = (PreparedStatement) conn.prepareStatement(sql);
            pstmt.setString(1, user.getName());
            pstmt.setString(2, user.getPassword());  //pstmt.setInt(2, user.getAge()); pstmt.setDate  
                        
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();
        } catch (SQLException e) {
        	System.out.println(e.getMessage());
        }
        
	}
	
	 /**
	   * 向数据库中查询所有用户
	   * @param 值为空
	   * @return 值为空
	   */
	  public void queryUser( ){//查询用户	  
		  Connection conn = getConn();
	      String sql = "select * from user";
	      PreparedStatement pstmt;
	      try {
	            pstmt = (PreparedStatement)conn.prepareStatement(sql);
	            ResultSet rs = pstmt.executeQuery();//执行查询
	            int col = rs.getMetaData().getColumnCount();//获取字段数
	            System.out.println("============================");
	            while (rs.next()) {
	                for (int i = 1; i <= col; i++) {
	                    System.out.print(rs.getString(i) + "\t");
	                    if ((i == 2) && (rs.getString(i).length() < 8)) {//此行仅仅是为了显示更好看,可以删去
	                        System.out.print("\t");
	                    }
	                 }
	                System.out.println("");
	            }
	            System.out.println("============================");
	        } catch (SQLException e) {
	        	System.out.println(e.getMessage());
	        }
	  }
	  /**
	   * 验证用户名是否存在
	   * @param name,用户名	 
	   * @return 布尔值
	   */
	  public boolean hasUser(String name){//查询某个用户是否存在
		  boolean success=false;//标记验证是否成功
	    	try { 
	    		Connection con = getConn();	    		
	    		String sql = "select * from user where name=? ";
	    		PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);	    		
	            pstmt.setString(1, name);
	            
	            ResultSet rs = pstmt.executeQuery();//执行查询    		
	    		
	    		if(rs.next()) {  
	    			//System.out.println("欢迎" + rs.getString("name"));
	    			success=true;
	    		} 
	    		pstmt.close();
	            con.close();
	            
	    	 }catch (SQLException e) {
	             System.out.println(e.getMessage());
	         }
	        	 
	    	return success;   
	  }
	/**
	   * 验证用户名和密码是否正确
	   * @param usename,用户名
	   * @param password,密码
	   * @return 建立的数据库连接
	   */
	 public   boolean verify(String username, String password) {
		    boolean success=false;//标记验证是否成功
	    	try { 
	    		Connection con = getConn();
	    		
	    		String sql = "select * from user where name=? and password=?";
	    		PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);
	    		
	            pstmt.setString(1, username);
	            pstmt.setString(2, password);  
	            ResultSet rs = pstmt.executeQuery();//执行查询    		
	    		
	    		if(rs.next()) {  
	    			//System.out.println("欢迎" + rs.getString("name"));
	    			success=true;
	    		} 
	    		pstmt.close();
	            con.close();
	            
	    	 }catch (SQLException e) {
	             System.out.println(e.getMessage());
	         }
	        	 
	    	return success;        
	    	
	    }
	 public static void main(String[] args) {
		 getConn();
		 UserDaoSQL uds =new UserDaoSQL();
	     uds.verify("ma","123456");
	     User u1=new User("zhangyi","456");//这里可能会遇到构造方法参数不符的问题,重新修改一下构造方法
	     uds.addUser(u1);
	     System.out.println(uds.hasUser(u1.getName()));
	     uds.queryUser();
	     System.out.println("Goodbye!");
	 }
}


返回 Java程序设计