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指令”),返回的数据可按照行操作;