jdbc操作元数据

package cn.code.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

public class NumberFour {
    @Test
    /**
     * 操作元数据
     * */
     public void fun(){
         String url="jdbc:mysql://localhost:3306/mydb1";
         String driverclassname="com.mysql.jdbc.Driver";
         String user="root";
         String password="123";
         Connection con=null;
         Statement s=null;
         ResultSet r=null;
         try{
             con=DriverManager.getConnection(url, user, password);
             s= con.createStatement();//s =con.createStatement(int,int);这个方法用来控制结果集的三大属性是否可滚动、是否敏感、是否可更新
             String sql="select * from stu";
             r=s.executeQuery(sql);
             //获取元数据
             ResultSetMetaData rmd = r.getMetaData();
             //获取列数
             int count = rmd.getColumnCount();
             //遍历行
             while(r.next()){
                 for(int i =1;i<=count;i++){//遍历列
                    Object o = r.getObject(i);//获取每行第i列数据
                    System.out.print(o);
                     if(i<count){
                         System.out.print(",");
                     }
                 }
                 System.out.println();
             }
         }catch(SQLException e){
             throw new RuntimeException(e);
         }finally{
             if(r!=null)
                try {
                    r.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             if(s!=null)
                try {
                    s.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();
                }
         }
             
     }
}

 

package cn.code.data;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

public class selectData {
    @Test
    public void fun() throws SQLException {
        Connection con =null;
        Statement s =null;
        ResultSet r =null;
        try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","123");
        s = con.createStatement();
        String sql="SELECT * FROM stu";
        r = s.executeQuery(sql);
        r.last();//把光标移动到最后一个行
        System.out.println(r.getRow());//显示当前光标所在行、间接获取到结果集行数
        r.beforeFirst();//光标返回首行之前一行,默认行;
        int cell = r.getMetaData().getColumnCount();//r.getMetaData()获取元数据ResultSetMetaData,获取列数;
            while(r.next()){
                for(int i=1;i<=cell;i++){      //遍历结果集
                    System.out.print(r.getString(i));
                    if(i<cell){System.out.print(",");}
                }
                System.out.println();
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            //关闭资源,倒关
            if(r!=null)r.close();
            if(s!=null)s.close();
            if(con!=null)con.close();//这个必须关
        }
        
    }
    
}

 

转载于:https://www.cnblogs.com/wangyinxu/p/7402111.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值