商苑面馆:Java命令行版之 Dao层(MySQL实现)

来自CloudWiki
Cloud17讨论 | 贡献2019年5月9日 (四) 03:49的版本 建立接口的实现类
跳转至: 导航搜索

Dao层

Java8-1.png

前期准备

在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 addUser(User u);//抽象方法1:增加用户,接口的实现类必须实现这个方法
	
	public boolean verify(String name, String pwd);//验证用户名和密码是否一致 

	public User search(String s);//抽象方法2:搜索商品,接口的实现类必须实现这个方法
	  
	public String toString(); //抽象方法3:展示所有商品,接口的实现类必须实现这个方法
	
		
}

建立接口的实现类

接口实现类可以用多种方式实现,ArrayList,LinkedList, MySQL等

这里我们用MySQL实现

建立接口实现类UserDaoMySQL

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;
import entity.User;

public class UserDaoSQL implements UserDao{
	Connection con=null;
	public UserDaoSQL(){
		con = getConn();
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
	}

}


编写连接方法getConn

这个方法的作用主要是进行数据库的初始连接:

private static Connection getConn() {
    	// JDBC 驱动名及数据库 URL
       final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       final String DB_URL = "jdbc:mysql://localhost:3306/cloud";
     
        // 数据库的用户名与密码,需要根据自己的设置
       final String USER = "root";
       final String PASS = "000000";
       
    	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;
        
    }

添加第1个方法:verify

 
	public boolean verify(String username, String password) {
    	try { 
    		Connection con = this.con;
    		Statement stmt = null;  
    		ResultSet rs = null;       
    		stmt = con.createStatement();
    		String sql = "SELECT * FROM user WHERE " + "name='" + username + 
                   "' and password='" + password + "'";
    		rs = stmt.executeQuery(sql);
    		if(rs.next()) { 
    			System.out.println("欢迎" + rs.getString("name"));
    			return true;
    		} else {  
    			System.out.println("用户名或密码错误!"); 
    		}
    	 }	catch (SQLException e) {
             	System.out.println(e.getMessage());
         }
    	return false;
    }

编写测试代码

在UserDaoArray类的main方法中编写测试代码:

User u1 = new User("ma","123456");
		UserDao userset =new UserDaoSQL();
		userset.verify(u1.getname(),u1.getPwd());
		

Java7-35.png