zoukankan      html  css  js  c++  java
  • baseDao及JDBC

    BaseDao

    package shop.dao;
    //包
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    //基类:数据库操作通用类
    public class BaseDao {
        protected Connection conn;
        protected PreparedStatement ps;
        protected Statement stmt;
        protected ResultSet rs;

        // 获取数据库连接
        public boolean getConnection() {
            // 读出配置信息
            String driver = "oracle.jdbc.driver.OracleDriver";
            String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
            String username ="t03";
            String password = "bdqn";
            // 加载JDBC驱动
            try {
                Class.forName(driver);
                // 与数据库建立连接
                conn = DriverManager.getConnection(url, username, password);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
            return true;
        }

        // 获取数据库连接
        public Connection getConnection2() {
            try {
                // 初始化上下文
                Context cxt = new InitialContext();
                // 获取与逻辑名相关联的数据源对象
                DataSource ds = (DataSource) cxt.lookup("java:comp/env/jdbc/news");
                conn = ds.getConnection();
            } catch (NamingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return conn;
        }

        // 增删改
        public int executeUpdate(String sql, Object[] params) {
            int updateRows = 0;
            getConnection();
            try {
                ps = conn.prepareStatement(sql);
                // 填充占位符
                for (int i = 0; i < params.length; i++) {
                    ps.setObject(i + 1, params[i]);
                }
                updateRows = ps.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return updateRows;
        }

        // 查询
        public ResultSet executeSQL(String sql, Object[] params) {
            getConnection();
            try {
                ps = conn.prepareStatement(sql);
                // 填充占位符
                for (int i = 0; i < params.length; i++) {
                    ps.setObject(i + 1, params[i]);
                }
                rs = ps.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
        }

        // 关闭资源
        public boolean close1() {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return false;
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return false;
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return false;
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return false;
                }
            }
            return true;
        }

    }
    UserDaoImpl

    package shop.dao.impl;

    import java.sql.Date;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    import shop.dao.BaseDao;
    import shop.dao.UserDao;
    import shop.entity.User;

    public class UserDaoImpl extends BaseDao implements UserDao {

        @Override
        public boolean addUser(User user) {
            boolean flag = false;
            try {

                String sql = "insert into SMBMS_USER(userId,name ,loginName ,gender ,birthdate,phone ,userType,loginPwd,addree) " +
                        "VALUES(?,?,?,?,?,?,?,?,?)";
                Object[] paras = {user.getUserId(),user.getName(),user.getLoginName(),user.getGender(),user.getBirthdate(),user.getPhone(),user.getUserType(),user.getLoginPwd(),user.getAddress()};
                int i = this.executeUpdate(sql, paras);
                if (i > 0) {
                    System.out.println("插入成功!!!");
                    flag = true;
                }
            } finally {
                this.close1();

            }
            return flag;
        }

        @Override
        public boolean delUser(User user) {
            boolean flag = false;
            try {
                String sql="delete from smbms_user where userId=?";
                Object[] paras={user.getUserId()};
                int i=this.executeUpdate(sql, paras);
                if (i>0) {
                    System.out.println("删除成功!!!");
                    flag=true;
                }
            } finally  {
                this.close1();
            }
            return flag;
        }

        @Override
        public boolean updateUser(User user) {
            boolean flag = false;
            try {

                String sql = "update SMBMS_USER set name=?,loginName=?,gender=?,birthdate=?,phone=?,userType=?,loginPwd=?,addree=? where userId=? ";
                Object[] paras = {user.getName(),user.getLoginName(),user.getGender(),user.getBirthdate(),user.getPhone(),user.getUserType(),user.getLoginPwd(),user.getAddress(),user.getUserId()};
                int i = this.executeUpdate(sql, paras);
                if (i > 0) {
                    System.out.println("修改成功!!!");
                    flag = true;
                }
            } finally {
                this.close1();

            }
            return flag;
        }
        
        
        @Override
        public List<User> getUsers(String name1) {
            List<User> userList = new ArrayList<User>();
            try {
                String sql = "select userId ,u.name ,u.loginName ,u.gender ,u.birthdate,u.phone ,u.userType,u.addree,u.loginPwd from smbms_user u where u.name like ?";
                
                //String sql ="select u.* from smbms_user u";
                Object[] paras = {"%"+name1+"%"};
                ResultSet rs = this.executeSQL(sql, paras);
                while (rs.next()) {
                    // 在数据库中取值
                    int userid = rs.getInt("userId");
                    String name = rs.getString("name");
                    String loginName = rs.getString("loginName");
                    int gender = rs.getInt("gender");
                    Date birthDate = rs.getDate("birthdate");
                    String phone = rs.getString("phone");
                    int userType = rs.getInt("userType");
                    String loginPwd=rs.getString("loginPwd");
                    String address=rs.getString("addree");
                    // 给user赋值
                    User user = new User();
                    user.setUserId(userid);
                    user.setName(name);
                    user.setLoginName(loginName);
                    user.setGender(gender);
                    user.setBirthdate(birthDate);
                    user.setPhone(phone);
                    user.setUserType(userType);
                    user.setAddress(address);
                    user.setLoginPwd(loginPwd);
                    
                    //System.out.println(userid+"--"+user.getLoginName()+"--"+user.getQuanXian()+"--"+name+"--"+birthDate+"--"+phone+"--"+user.getMygender()+"--"+user.getAddress()+"--"+user.getLoginPwd());
                    // 添加user到userList集合
                    userList.add(user);
                }
            } catch (SQLException e) {

                e.printStackTrace();
            } finally {

                this.close1();
            }
            return userList;
        }


    @Override
    public User getuser(int userId) {
        User user = null;
        try {
            String sql = "select userId ,u.name ,u.loginName ,u.gender ,u.birthdate,u.phone ,u.userType,u.addree,u.loginPwd from smbms_user u where u.userId=?";
            Object[] paras = {userId};
            ResultSet rs = this.executeSQL(sql, paras);
            while (rs.next()) {
                // 在数据库中取值
                String name = rs.getString("name");
                String loginName = rs.getString("loginName");
                int gender = rs.getInt("gender");
                Date birthDate = rs.getDate("birthdate");
                String phone = rs.getString("phone");
                int userType = rs.getInt("userType");
                String loginPwd=rs.getString("loginPwd");
                String address=rs.getString("addree");
                // 给user赋值
                user = new User();
                user.setUserId(userId);
                user.setName(name);
                user.setLoginName(loginName);
                user.setGender(gender);
                user.setBirthdate(birthDate);
                user.setPhone(phone);
                user.setUserType(userType);
                user.setAddress(address);
                user.setLoginPwd(loginPwd);
                
                //System.out.println(userid+"--"+user.getLoginName()+"--"+user.getQuanXian()+"--"+name+"--"+birthDate+"--"+phone+"--"+user.getMygender()+"--"+user.getAddress()+"--"+user.getLoginPwd());
            }
        } catch (SQLException e) {

            e.printStackTrace();
        } finally {

            this.close1();
        }
        return user;
    }
    }


  • 相关阅读:
    算法----(1)冒泡排序
    淘宝爬虫
    爬虫_豆瓣电影top250 (正则表达式)
    爬虫_猫眼电影top100(正则表达式)
    Android 简单调用摄像头
    Android 简单天气预报
    思维模型
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you
    Android studio preview界面无法预览,报错render problem
    Android studio 3.1.2报错,no target device found
  • 原文地址:https://www.cnblogs.com/anshuo/p/5380841.html
Copyright © 2011-2022 走看看