java对mysql数据库的操作详解

Mysql数据库操作

一、连接上mysql服务

  • 加载数据库驱动,实例化动态库对象:class.forname(“驱动包名称”);

  • 数据库的驱动下载:JDBC下载

  • 连接数据库:DriverManager.getConnection(url,username,password);

  • 创建数据库连接的Statement对象:(Connection对象).createStatement();

二、操作数据库

  • 无返回类操作:使用(Statement对象).executeUpdate(“操作指令”);

  • 返回数据类操作:使用(Statement对象).executeQuery(“操作指令”),数据保存在ResultSet类的对象中;

  • 返回的数据操作:

    • 数据库(表)列表操作:(ResultSet对象).next()一次切一行的脚标,(Statement对象).getSting()获取当前行的字符串。可使用(ResultSet对象).absolute(行数)直接切换脚本行数位置;

    • 数据库数据段操作:

      • 行操作:使用(ResultSet对象).next()移动操作脚标来操作某行数据。

      • 列操作:使用(ResultSet对象).getString(列数)来获取所取列数的数据字符串形式。使用(ResultSet对象).getMetaData()将一行数据转换成列表属性数据操作模式的数据类型ResultSetMetaData。针对一行的数据操作,以及数据的属性数据和表属性数据的操作有如下方法使用:

        • 获取数据库列表
        
        ResultSet rs=Statement.executeQuery("show database");//每个数据库名称保存在一行中
        
        while(rs.next()){
        
            SystemOutPrintln(rs.getString());//获取每行的数据,并打印出来
        
        }
        
        • 获取数据库中的表的列表
        
        DatabaseMetaData meta=Connection.getMetaData();
        
        ResultSet rs=meta.getTables(null,null,null,new Sting[]{"table"});
        
        while(rs.next()){
        
            rs.getString(3);    //表名
        
            rs.getString(2);    //表用户
        • 获取数据库表的数据段
        
        public void tabledatePrint() throws SQLException{
        
            ResultSetMetaData rsd=(ResultSetMetaData) this.tabledate.getMetaData();
        
            int colnum=rsd.getColumnCount();    //每行的列数长度
        
            String tablehead="";
        
            String tablerowdate="";
        
            int flag=1;
        
            while(this.tabledate.next()){
        
                tablehead="";
        
                tablerowdate="";
        
                for(int x=1;x<=colnum;x++){
        
                    String coldate=this.tabledate.getString(x);     //列数据
        
                    //int coltype=rsd.getColumnType(x);
        
                    if(flag==1){
        
                        String colname=rsd.getColumnName(x);    //列名称
        
                        tablehead+=colname+"    ";
        
                    }
        
                    tablerowdate+=coldate+" ";
        
                }
        
                if(flag==1){
        
                    System.out.println(rsd.getCatalogName(1)+" 数据库的 "+rsd.getTableName(1)+" 信息如下:");
        
                    System.out.println(tablehead);
        
                    flag=0;
        
                }
        
                System.out.println(tablerowdate);
        
            }
        
        }
        

        上面代码中的rsd.getCatalogName(1)为数据库名称,rsd.getTableName(1)为数据表的名称,rsd.getColumnName(x)为第x列的名称。

        • 其他数据库的操作

        rs.last(),rs.getRow():当前数据段的行数长度;

        rs.getRow():是获取当前行数编号,从1开始;

        rs.beforefirst():将操作脚标恢复到初始位置;

        rs.adsolute(int row):将脚标移动到row行,负数为倒数行数;

三、总结

在操作数据库的时候,可以使用cmd形式来操作,和指令形式一样的操作方法,只是区分有无返回数据两种具体是操作方法;

Statement.executeUpdate(“cmd指令”);

ResultSet Statement.executeQuery(“cmd指令”),返回的数据可按照行操作;


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值