主题:[原创]数据库编程之旅第二讲―――JDBC连接
数据库编程之旅第二讲―――JDBC连接
当数据库服务器建立之后,怎么从数据库里把表中的数据抓出来呢?我们总不能直接从数据库中把数据抓出来吧,呵呵。SUN的工程师想了一个办法,做出了一个接口,该接口可以把数据库抓出来,我们再从此接口中把数据给抓出来,并给该接口起了一个名字,号称JDBC。
[img]c://jjj.bmp[/img]
使用该接口是一个过程,不是简单的一个函数就可以完成,需要如下步骤:
!!!!!!注意,一定要先把mySql的驱动加载到classpath的路径上,其中驱动一定要和版本一致,否则就上当了。如果是Jcreator,注意设置,在此不在阐述,如果是Jbulider,也有其自己的加载方式。
第一步:加载驱动―――》建立数据库连接环境(数据连接上下文)
Class.forName("com.mysql.jdbc.Driver");
第二步:建立连接―――》让应用程序与数据库牵线(建立连接)
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/PersonDBA","flagxu","abcd");
第三步:生成操作数据库的对象―――》使应用程序可以执行SQL语句。
Statement stmt=con.createStatement();
第四步:查找数据库数据―――》执行SELECT语句
ResultSet rs=stmt.executeQuery("select * from Person");
第五步:获取记录集数据的结构――》通过结构得到数据表的情况
ResultSetMetaData metaData = rs.getMetaData();
第六步:得到表的表头
for(int column = 0; column < metaData.getColumnCount(); column++)
{
System.out.print(metaData.getColumnName(column+1)+"\t");
}
第七步:从记录集中抓出表的数据。
for (int i = 1; i <= metaData.getColumnCount(); i++)
{
String str8859=rs.getObject(i).toString();
String strGB2312=new String(str8859.getBytes("ISO-8859-1"),"GB2312");
System.out.print(strGB2312+"\t");
}
数据格式解释:通过JDBC抓到数据时,JDBC自动把数据转换为ISO-8859-1,由于该格式不能正常的在系统上显示,所以我们可以把该格式转换为可以显示的格式,就是GB2312.
第八步:运行结果
[img]c://hhhhh.bmp[/img]
完整代码:
import java.sql.*;
import java.io.*;
public class JavaJdbc
{
Connection con=null;//连接对象
Statement stmt=null;//执行SQL语句的对象
ResultSet rs=null;// 返回的结果集的对象
ResultSetMetaData metaData; //结果集结构对象
public JavaJdbc()
{
try
{//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//建立连接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/PersonDBA","flagxu","abcd");
//生成执行sql语句的对象
stmt=con.createStatement();
//抓出数据
rs=stmt.executeQuery("select * from Person");
//找出数据的结构
metaData = rs.getMetaData();
//打印表头
for(int column = 0; column < metaData.getColumnCount(); column++)
{
System.out.print(metaData.getColumnName(column+1)+"\t");
}
System.out.println("");
//打印出表中的数据
while(rs.next())
{
for (int i = 1; i <= metaData.getColumnCount(); i++)
{
String str8859=rs.getObject(i).toString();
String strGB2312=new String(str8859.getBytes("ISO-8859-1"),"GB2312");
System.out.print(strGB2312+"\t");
}
System.out.println("");
}
stmt.close(); //must close
con.close();
}
catch(SQLException e){}
catch(ClassNotFoundException e){}
catch(IOException e){}
}
public static void main(String args[])
{
JavaJdbc jdbcDB=new JavaJdbc();
}
}
总结:我们在此连接的仅仅是MySql数据库,其它数据库的连接方式一样,不一样的是驱动和数据库的端口号及其数据库本身的标识。希望大家可以举一反三。熟练应用,且听下次分解。
当数据库服务器建立之后,怎么从数据库里把表中的数据抓出来呢?我们总不能直接从数据库中把数据抓出来吧,呵呵。SUN的工程师想了一个办法,做出了一个接口,该接口可以把数据库抓出来,我们再从此接口中把数据给抓出来,并给该接口起了一个名字,号称JDBC。
[img]c://jjj.bmp[/img]
使用该接口是一个过程,不是简单的一个函数就可以完成,需要如下步骤:
!!!!!!注意,一定要先把mySql的驱动加载到classpath的路径上,其中驱动一定要和版本一致,否则就上当了。如果是Jcreator,注意设置,在此不在阐述,如果是Jbulider,也有其自己的加载方式。
第一步:加载驱动―――》建立数据库连接环境(数据连接上下文)
Class.forName("com.mysql.jdbc.Driver");
第二步:建立连接―――》让应用程序与数据库牵线(建立连接)
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/PersonDBA","flagxu","abcd");
第三步:生成操作数据库的对象―――》使应用程序可以执行SQL语句。
Statement stmt=con.createStatement();
第四步:查找数据库数据―――》执行SELECT语句
ResultSet rs=stmt.executeQuery("select * from Person");
第五步:获取记录集数据的结构――》通过结构得到数据表的情况
ResultSetMetaData metaData = rs.getMetaData();
第六步:得到表的表头
for(int column = 0; column < metaData.getColumnCount(); column++)
{
System.out.print(metaData.getColumnName(column+1)+"\t");
}
第七步:从记录集中抓出表的数据。
for (int i = 1; i <= metaData.getColumnCount(); i++)
{
String str8859=rs.getObject(i).toString();
String strGB2312=new String(str8859.getBytes("ISO-8859-1"),"GB2312");
System.out.print(strGB2312+"\t");
}
数据格式解释:通过JDBC抓到数据时,JDBC自动把数据转换为ISO-8859-1,由于该格式不能正常的在系统上显示,所以我们可以把该格式转换为可以显示的格式,就是GB2312.
第八步:运行结果
[img]c://hhhhh.bmp[/img]
完整代码:
import java.sql.*;
import java.io.*;
public class JavaJdbc
{
Connection con=null;//连接对象
Statement stmt=null;//执行SQL语句的对象
ResultSet rs=null;// 返回的结果集的对象
ResultSetMetaData metaData; //结果集结构对象
public JavaJdbc()
{
try
{//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//建立连接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/PersonDBA","flagxu","abcd");
//生成执行sql语句的对象
stmt=con.createStatement();
//抓出数据
rs=stmt.executeQuery("select * from Person");
//找出数据的结构
metaData = rs.getMetaData();
//打印表头
for(int column = 0; column < metaData.getColumnCount(); column++)
{
System.out.print(metaData.getColumnName(column+1)+"\t");
}
System.out.println("");
//打印出表中的数据
while(rs.next())
{
for (int i = 1; i <= metaData.getColumnCount(); i++)
{
String str8859=rs.getObject(i).toString();
String strGB2312=new String(str8859.getBytes("ISO-8859-1"),"GB2312");
System.out.print(strGB2312+"\t");
}
System.out.println("");
}
stmt.close(); //must close
con.close();
}
catch(SQLException e){}
catch(ClassNotFoundException e){}
catch(IOException e){}
}
public static void main(String args[])
{
JavaJdbc jdbcDB=new JavaJdbc();
}
}
总结:我们在此连接的仅仅是MySql数据库,其它数据库的连接方式一样,不一样的是驱动和数据库的端口号及其数据库本身的标识。希望大家可以举一反三。熟练应用,且听下次分解。