码迷,mamicode.com
首页 > 数据库 > 详细

JDBC面向接口编程

时间:2017-08-25 15:56:26      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:this   als   form   完成   input   resource   exception   ati   find   

//参考项目day14_1

//定义dao接口类、

package cn.code.dao;

import cn.code.domain.User;

public interface UserDao {
    public void add(User form);
    public User find(String username);
}

//给出工厂类

package cn.code.dao;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class UserDaoFactory {
    static Properties props =null;
    static String impclassname =null;
    static{
        props = new Properties();
        InputStream in = UserDaoFactory.class.getClassLoader().getResourceAsStream("UserDao.properties");
        try {
            props.load(in);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        impclassname = props.getProperty("cn.code.dao.UserDao");
    }
    public static UserDao getUserdaoimp(){
            try {
                Class clazz = Class.forName(impclassname);
                try {
                    return (UserDao)clazz.newInstance();
                } catch (InstantiationException e) {
                    throw new RuntimeException(e);
                } catch (IllegalAccessException e) {
                    throw new RuntimeException(e);
                }
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
    }
}

//工厂类配置文件

cn.code.dao.UserDao=cn.code.dao.UserDaoImp

//实现类

package cn.code.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import cn.code.DBUtils1.DBUtils1;
import cn.code.domain.User;

public class UserDaoImp implements UserDao {
    @Override
    public void add(User form) {
        Connection con = DBUtils1.getConnection();
        PreparedStatement ps =null;
        String sql = "INSERT INTO user values(?,?)";
        try {
             ps = con.prepareStatement(sql);
            ps.setString(1,form.getUsername());
            ps.setString(2,form.getPassword());
            ps.executeUpdate();
        } catch (SQLException e) {
            throw new RuntimeException();
        }finally{
            if(ps!=null)
                try {
                    ps.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            if(con!=null)
                try {
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }

    }

    @Override
    public User find(String username) {
        Connection con = DBUtils1.getConnection();
        String sql = "select * from user where username=?";
        try {
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1,username);
            ResultSet rs = ps.executeQuery();
            if(rs==null){
                return null;
            }
            if(rs.next()){
                User user = new User();
                user.setUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
                return user;
            }else{
                return null;
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        
    }
    

}

//service层

package cn.code.service;

import cn.code.dao.UserDao;
import cn.code.dao.UserDaoFactory;
import cn.code.domain.User;

public class UserService {
    private UserDao userDaoImp = UserDaoFactory.getUserdaoimp();
    public void regist(User user)throws UserException{
        /**
         * 使用用户名去查询,如果返回null,完成添加
         * 如果返回布市null,抛出异常!
         * */
        User u = userDaoImp.find(user.getUsername());
        if(u!=null)throw new UserException("用户名"+user.getUsername()+"已经被注册!");
        userDaoImp.add(user);
        
    }
    public User login(User user) throws UserException {
        User u = userDaoImp.find(user.getUsername());
        if(u==null)throw new UserException("用户名不存在!");
        if(!u.getPassword().equals(user.getPassword())){
            throw new UserException("密码错误");
        }
        return u;
    }
}

//domain层

package cn.code.domain;
/*
 * 实体类
 * */
public class User {
    private String username;
    private String password;
    private String verifyCode;
    
    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password
                + ", verifyCode=" + verifyCode + "]";
    }

    public User(String username, String password, String verifyCode) {
        super();
        this.username = username;
        this.password = password;
        this.verifyCode = verifyCode;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getVerifyCode() {
        return verifyCode;
    }

    public void setVerifyCode(String verifyCode) {
        this.verifyCode = verifyCode;
    }

    public User() {
    }
    
}

 

JDBC面向接口编程

标签:this   als   form   完成   input   resource   exception   ati   find   

原文地址:http://www.cnblogs.com/wangyinxu/p/7428105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!