• 第十七章 数据库操作


    数据库基础  和JDBC概论和常用类和接口就不过多的说了  直接来到 数据库的操作 一开始是在数据库中插入了四个类型  两个int  两个varchar类型   再分别插入  名字   序号   号码   性别   然后再在java中操作增删改查 这几个操作  全部代码如下

    package 第十七章;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
     
    import com.mysql.cj.jdbc.Driver;
     
    public class MysqlDemo1 {
        Connection connection;
        public static void main(String[] args) throws SQLException {
            // TODO Auto-generated method stub
            MysqlDemo1 mysqldemo1 = new MysqlDemo1();//new对象 调用方法
            mysqldemo1.getConnection();
            System.out.println("查询人员数据,结果为:");
            mysqldemo1.selectAll();
            System.out.println("新增人员数据,结果为:");
            mysqldemo1.add(11, "lanyangyang"," 17923412644","nan");
            mysqldemo1.add(12, "meiyangyang"," 17977556644","nv");
            mysqldemo1.add(13, "feiyangyang"," 11971236644","nan");
            mysqldemo1.selectAll();
            System.out.println("查询182开头的数据,结果为:");
            mysqldemo1.obscure();//查询课程表中的数据
            System.out.println("修改指定5位置上的电话号码");
            mysqldemo1.update(5,"13124235300");//修改该位置的数据
            mysqldemo1.selectAll();
            System.out.println("查询性别为nan的数据");
            mysqldemo1.man("nan");
            System.out.println("修改指定10位置上的名字");
            mysqldemo1.updatedate(10,"dashuaige");//修改该位置的数据
            mysqldemo1.selectAll();
            System.out.println("查询179开头的数据,结果为:");
            mysqldemo1.obscure1();//查询课程表中的数据
            mysqldemo1.selectAll();
            System.out.println("删除课程11,12,13");
            mysqldemo1.delete("11");//删除指定位置的数据
            mysqldemo1.delete("12");//删除指定位置的数据
            mysqldemo1.delete("13");//删除指定位置的数据
            mysqldemo1.selectAll();
            System.out.println("查询性别为woman的数据");
            mysqldemo1.man("nv");
        }
        public void  woman(String name  ) throws SQLException {//查询性别为女的数据
            PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");
            preparedstatement.setString(1, name);
            ResultSet resultSet =preparedstatement.executeQuery() ;
            while(resultSet.next()) {
                System.out.print(resultSet.getInt("id")+" ");
                System.out.println(resultSet.getString("name"));
                System.out.println(resultSet.getString("tel"));
                System.out.println(resultSet.getString("sex"));
            }
            preparedstatement.close();
        }
        public void delete(String id) throws SQLException {//删除指定位置上的数据   
            PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");
            preparedStatement.setString(1, id);//
            //第四步  :执行SQL语句
            preparedStatement.executeUpdate();
            //第六步关闭接连释放资源
            preparedStatement.close();
        }
        public void obscure1() throws SQLException {//查询号码为179开头的号码
            PreparedStatement preparedstatement=connection.prepareStatement("select*from sudent where tel like'179%';");
            ResultSet resultSet = preparedstatement.executeQuery();//executeQuery只能用来查询    //新增修改删除都是使用另一种e
            //第五步:遍历结果集
            while(resultSet.next()) {
                System.out.print(resultSet.getInt("id")+" ");
                System.out.println(resultSet.getString("name")+" ");
                System.out.println(resultSet.getString("tel")+" ");
                System.out.println(resultSet.getString("sex")+" ");
            }
            preparedstatement.close();
        }
        public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据
            PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=?  where id=? ; ");
            preparedstatement.setString(1, name);
            preparedstatement.setInt(2, id);
            //第四步: 执行SOL语句
            preparedstatement.executeUpdate();
            //第六步: 关闭连接释放资源
            preparedstatement.close();
        }
        public void  man(String name  ) throws SQLException {//查询性别为男的数据
            PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");
            preparedstatement.setString(1, name);
            ResultSet resultSet =preparedstatement.executeQuery() ;
            while(resultSet.next()) {
                System.out.print(resultSet.getInt("id")+" ");
                System.out.println(resultSet.getString("name"));
                System.out.println(resultSet.getString("tel"));
                System.out.println(resultSet.getString("sex"));
            }
            preparedstatement.close();
        }
        public void update(int id,String tel) throws SQLException {//修改指定位置上的号码
            PreparedStatement preparedstatement =connection.prepareStatement("update sudent set tel=?  where id=? ; ");//修改语句
            preparedstatement.setString(1, tel);//tel  电话
            preparedstatement.setInt(2, id);//id  序号
            //第四步: 执行SOL语句
            preparedstatement.executeUpdate();
            //第六步: 关闭连接释放资源
            preparedstatement.close();
        }
        public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据
            PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句
            ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询    //新增修改删除都是使用另一种e
            //第五步:遍历结果集
            while(resultSet.next()) {使用while循环来遍历表中四个类型
                System.out.print(resultSet.getInt("id")+" ");//id  序号
                System.out.println(resultSet.getString("name"));//name  名字
                System.out.println(resultSet.getString("tel"));//tel //电话
                System.out.println(resultSet.getString("sex"));//sex //性别
            }
        }
        public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据
            PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据
            preparedStatement.setInt(1, id);//添加id 序号
            preparedStatement.setString(2,name);//添加name//名字
            preparedStatement.setString(3,tel);//添加电话
            preparedStatement.setString(4,sex);//添加性别
            preparedStatement.executeUpdate();
            //第六步关闭接连释放资源
            preparedStatement.close();
        }
    public void getConnection () throws SQLException{//注册驱动 连接mysql数据库  并遍历出表中的数据
        //第一步注册驱动
        DriverManager.registerDriver(new Driver());//注册驱动
        //第二步获取连接
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器  指定数据库和账号密码
    }
    public void selectAll() throws SQLException {//查询类  查询数据表中的数据
        //第三步:获取statement对象
        PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句
        //第四步:执行SQL语句返回结果集
        ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询    新增修改删除都是使用另一种executeUpdate
        //第五步:遍历结果集
        while(resultSet.next()) {//while循环数据库中的四个类型  id name  tel  sex  分别是 序列  名字  电话号码  和性别
            System.out.print(resultSet.getInt("id")+" ");
            System.out.println(resultSet.getString("name"));
            System.out.println(resultSet.getString("tel"));
            System.out.println(resultSet.getString("sex"));
        }
        //第六步:关闭连接释放资源
        resultSet.close();//关闭连接释放资源
        preparedStatement.close();
        
    }
    public void close() throws SQLException {
        connection.close();//最后关闭连接释放资源
    }
    }

     全部代码如上所示  接下来是详细的讲解

    连接数据库  

    主要是分为六个部分

    第一步注册驱动
    第二步获取连接
    第三步:获取statement对象
    第四步:执行SQL语句返回结果集
    第五步:遍历结果集
    第六步:关闭连接释放资源
    然后呢 代码和注解如下

    public void getConnection () throws SQLException{//注册驱动 连接mysql数据库  并遍历出表中的数据
        //第一步注册驱动
        DriverManager.registerDriver(new Driver());//注册驱动
        //第二步获取连接
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器  指定数据库和账号密码
    }
    public void selectAll() throws SQLException {//查询类  查询数据表中的数据
        //第三步:获取statement对象
        PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句
        //第四步:执行SQL语句返回结果集
        ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询    新增修改删除都是使用另一种executeUpdate
        //第五步:遍历结果集
        while(resultSet.next()) {//while循环数据库中的四个类型  id name  tel  sex  分别是 序列  名字  电话号码  和性别
            System.out.print(resultSet.getInt("id")+" ");
            System.out.println(resultSet.getString("name"));
            System.out.println(resultSet.getString("tel"));
            System.out.println(resultSet.getString("sex"));
        }
        //第六步:关闭连接释放资源
        resultSet.close();//关闭连接释放资源
        preparedStatement.close();
        
    }

    以上代码是 让java连接数据 然后遍历出指定的表中的内容  然后再主函数中new一个对象然后调用该方法就可以输出表中的内容  

    模糊查询 

    再是使用mysql数据库中的模糊查询  达到输入开头的号码如:182来查询号码182开头的号码的员工

    代码如下

    public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据
            PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句
            ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询    //新增修改删除都是使用另一种e
            //第五步:遍历结果集
            while(resultSet.next()) {使用while循环来遍历表中四个类型
                System.out.print(resultSet.getInt("id")+" ");//id  序号
                System.out.println(resultSet.getString("name"));//name  名字
                System.out.println(resultSet.getString("tel"));//tel //电话
                System.out.println(resultSet.getString("sex"));//sex //性别
            }
        }
    然后再主函数中调用该方法就可以打印输出了

    增删改

    增删改都是使用mysql数据库中的语句   

    主要如下 代码注解

    删除
    public void delete(String id) throws SQLException {//删除指定位置上的数据   
            PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");
            preparedStatement.setString(1, id);//
            //第四步  :执行SQL语句
            preparedStatement.executeUpdate();
            //第六步关闭接连释放资源
            preparedStatement.close();
        }
    修改
    public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据
            PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=?  where id=? ; ");
            preparedstatement.setString(1, name);
            preparedstatement.setInt(2, id);
            //第四步: 执行SOL语句
            preparedstatement.executeUpdate();
            //第六步: 关闭连接释放资源
            preparedstatement.close();
        }
    添加
    public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据
            PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据
            preparedStatement.setInt(1, id);//添加id 序号
            preparedStatement.setString(2,name);//添加name//名字
            preparedStatement.setString(3,tel);//添加电话
            preparedStatement.setString(4,sex);//添加性别
            preparedStatement.executeUpdate();
            //第六步关闭接连释放资源
            preparedStatement.close();
        }

    然后再在主函数中调用就好了  

  • 相关阅读:
    Jetson Agx Xavier平台V4L2 qeues是否可优化问题
    python代码优化学习
    【owt】vs2022 + v141 : 查看WINDOWSSDKDIR
    水稻旱作节水80% 国稻种芯-157:何登骥苦瓜功能稻降碳90%
    基于Python实现大型家用电器和电子产品在线商店购买数据分析【500010098】
    Ffmpeg分布式视频转码问题总结
    猫耳 WebSocket 跨端优化实践
    jmeter-登录用户数和线程数量的关系的爱恨情愁
    Mysql技术文档--设计表规范式-一次性扫盲
    重庆市5米数字高程(DEM)数据
  • 原文地址:https://blog.csdn.net/2302_76553436/article/details/133950645