zoukankan      html  css  js  c++  java
  • Jsp第六次作业JDBC

    UsersDao

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    /*
     完成对数据库的增删改查(crud操作)
     */
    public class UsersDao {
        
        
        
        // 1.提供添加方法
        public boolean insert(User user) {
            Connection con = null;
            Statement stmt = null;
            try {
    //1.获取连接对象
                con=JDBCUtils.getCon();
    //2.获取执行sql语句的对象
                stmt=con.createStatement();
    //3.执行sql语句(添加信息语句)
                java.util.Date birthday=user.getBirthDay();
                String sqlBirthDay=String.format("%tF",birthday);//把日期类型转换成字符串类型
                String sql="insert into users(id,name,password,email,birthday)"+"values("
                        +user.getId()+",'"
                        +user.getUsername()+"','"
                        +user.getPassword()+"','"
                        +user.getEmail()+"','"
                        +sqlBirthDay+"'"//user.getBirthDay()替换成sqlBirthDay
                        +")";
                int row = stmt.executeUpdate(sql);
                if(row>0){
                    //插入成功
                    return true;
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils.realse(null, stmt, con);
            }
    
            return false;
        }
        
        
        
        //2.提供查询所有的方法
        public List<User>findAllUser(){
            Connection con= null;
            Statement stmt = null;
            ResultSet rs = null;
            try{
                //1.获取连接对象
                con = JDBCUtils.getCon();
                //2.获取执行sql语句的对象
                stmt = con.createStatement();
                //3.执行sql语句(查询语句)
                String sql ="select * from users";
                rs = stmt.executeQuery(sql);
                //4.遍历rs
                List<User> list = new ArrayList<User>();
                while(rs.next()){
                    //一行数据对应一个对象,获取每一行的对象,就设置给一个user对象
                    User user = new User();
                    user.setId(rs.getInt("id"));
                    user.setUsername(rs.getString("name"));
                    user.setPassword(rs.getString("password"));
                    user.setEmail(rs.getString("email"));
                    java.sql.Date birthday = rs.getDate("birthday");
                    user.setBirthDay(birthday);//子类把值传递给父类
                    //把对象添加到集合中
                    list.add(user);                
                }
                return list;
                    
            }catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils.realse(rs, stmt, con);
            }        
        //    return null;
        }
        
        
        
        //3.根据id,来查询记录
        public User findUserById(int id){
            Connection con= null;
            PreparedStatement stmt = null;
            ResultSet rs = null;
            try{
                //1.获取连接对象
                con = JDBCUtils.getCon();
                //2.获取执行sql语句的对象
                String sql ="select * from users where id=?";
                stmt = con.prepareStatement(sql);
                //3.执行sql语句,给id赋值
                stmt.setInt(1, id);
            
                rs = stmt.executeQuery();
                //4.遍历rs
                
                if(rs.next()){
                    //一行数据对应一个对象,获取每一行的对象,就设置给一个user对象
                    User user = new User();
                    user.setId(rs.getInt("id"));
                    user.setUsername(rs.getString("name"));
                    user.setPassword(rs.getString("password"));
                    user.setEmail(rs.getString("email"));
                    java.sql.Date birthday = rs.getDate("birthday");
                    user.setBirthDay(birthday);//子类把值传递给父类
                    return user;            
                }
                
            }catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils.realse(rs, stmt, con);
            }        
            return null;            
        }
        
    
        
        //4.提供一个修改方法,根据id值修改记录
        public boolean update(User user){
        Connection con = null;
        PreparedStatement stmt = null;
        try {
    //1.获取连接对象
            con=JDBCUtils.getCon();
    //2.获取执行sql语句的对象
            String sql="update users set name =?,password=? where id=?";
            stmt = con.prepareStatement(sql);//2.的sql语句*
    //3.执行sql语句(给占位符赋值)
            
            stmt.setString(1, user.getUsername());
            stmt.setString(2, user.getPassword());
            stmt.setInt(3, user.getId());
                    
            int row = stmt.executeUpdate();//应该()里无sql,因为在2.里已经传了sql语句*
            if(row>0){
                //插入成功
                return true;
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            JDBCUtils.realse(null, stmt, con);
        }
        return false;
        }
        
        
        //5.删除方法
        public boolean delete (int id){
            Connection con = null;
            PreparedStatement stmt = null;
            try {
        //1.获取连接对象
                con=JDBCUtils.getCon();
        //2.获取执行sql语句的对象
                String sql="delete from users where id=?";
                stmt = con.prepareStatement(sql);//2.的sql语句*
        //3.执行sql语句(给占位符赋值)
                
                stmt.setInt(1,id);
                        
                int row = stmt.executeUpdate();//应该()里无sql,因为在2.里已经传了sql语句*
                if(row>0){
                    //插入成功
                    return true;
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils.realse(null, stmt, con);
            }
            return false;
            
        }
    }

    JDBCUtils

    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    
    public class JDBCUtils {
    //获取连接对象的方法
        public static Connection getCon() throws Exception{
            //1.加载数据库驱动
                    Class.forName("com.mysql.jdbc.Driver");
                    //2.通过DriverManager获取数据库连接
                    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "root");
                    return con;
                    //3.通过Connection対象获取Statement対象                
        }
        
    //关闭连接,释放资源
        public static void realse(ResultSet rs,Statement stmt,Connection con){
            if(rs!=null){
                try{
                    rs.close();
                }catch (SQLException e){
                    //TODO Auto-generated catch block
                    e.printStackTrace();
                    }
                rs=null;
                }
            if(stmt!=null){
                try{
                    stmt.close();
                }catch (SQLException e){
                    //TODO Auto-generated catch block
                    e.printStackTrace();
                    }
                stmt=null;
                }
            if(con!=null){
                try{
                    con.close();
                }catch (SQLException e){
                    e.printStackTrace();
                    }
                con=null;
                }
        }
    }

    User

    import java.util.Date;
    
    public class User {
    private int id;
    private String username;
    private String password;
    private String email;
    private Date birthDay;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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 getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public Date getBirthDay() {
        return birthDay;
    }
    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }
    
    }

    JdbcInsertTest

    import java.util.Date;
    
    public class JdbcInsertTest {
    public static void main(String[] args){
        //测试1插入信息代码
        UsersDao dao= new UsersDao();
        User user= new User();
        user.setId(6);
        user.setUsername("gjm");
        user.setPassword("789");
        user.setEmail("gjm@qq.com");
        user.setBirthDay(new Date(1998-07-17));
        boolean flag=dao.insert(user);
        System.out.print(flag);
    
    }
    }

    FindAllUserTest

    import java.util.List;
    
    public class FindAllUserTest {
        public static void main(String[] args){
            //测试2查询所有信息条数代码
            UsersDao dao= new UsersDao();
            List<User> list =dao.findAllUser();    
            System.out.println(list.size());
    }
    }

    FindUserByIdTest

    public class FindUserByIdTest {
        public static void main(String[] args){
            //测试3查询id=?的名字代码
            UsersDao dao= new UsersDao();
        User u = dao.findUserById(5);
        System.out.println(u.getUsername());
        }
    }

    UpdateUserTest

    public class UpdateUserTest {
        public static void main(String[] args){
            //测试4修改信息代码
            UsersDao dao= new UsersDao();
            User u = new User();
            u.setId(4);
            u.setUsername("GJM");
            u.setPassword("987");
            boolean flag = dao.update(u);
            System.out.println(flag);
            //true则成功,否则不成功
    }
    }

    DeleteUserTest

    public class DeleteUserTest {
        public static void main(String[] args){
            //测试5删除信息代码
            UsersDao dao= new UsersDao();
            boolean flag = dao.delete(6);
            System.out.println(flag);
        }
    }

     最终表

  • 相关阅读:
    Centos或Windows中部署Zookeeper集群及其简单用法
    Linux中使用sendmail发送邮件,指定任意邮件发送人
    使用log4net将C#日志发送到Elasticsearch
    在Centos6或者7上安装Kafka最新版
    最简单的配置Centos中JAVA的环境变量的方法
    JAVA通过oshi获取系统和硬件信息
    JAVA代码中获取JVM信息
    使用JavaCV播放视频、摄像头、人脸识别
    JAVA中通过JavaCV实现跨平台视频/图像处理-调用摄像头
    Linux中使用Vim快速更换文档中Windows换行符为Linux平台
  • 原文地址:https://www.cnblogs.com/gjm717/p/12728820.html
Copyright © 2011-2022 走看看