您的位置:首页 > 编程语言 > Java开发

【java】在java中用JDBC-ODBC桥及JDBC驱动程序连接数据库实例

2011-03-23 21:13 656 查看
importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

/**

*@authorYanChengwei

*

*/

publicclassDBConnect{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Connectioncon=null;//连接

Statementstmt=null;//执行语句

ResultSetrst=null;//结果集

try{

/*********用JDBC-ODBC桥连接oracletype1***************/

//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//con=DriverManager.getConnection("jdbc:odbc:Oracledsn","myuser2","myuser2");//Oracledsn是dsn(数据源)的名称

/********用JDBC驱动程序连接oracletype2andtype4***********/

//加载驱动程序

Class.forName("oracle.jdbc.driver.OracleDriver");

//创建连接方法1用JDBCthin驱动程序建立连接type2

con=DriverManager.getConnection(

"jdbc:oracle:thin:@192.168.1.110:1521:ORCL","MYUSER2","myuser2");//注意:这句中的IP不能换成localhost,否则会出现NetworkAdepter异常

//创建连接方法2用JDBCoci驱动程序建立连接type4

//"jdbc:oracle:oci8:@192.168.1.110:1521:ORCL",

//"myuser1","myuser1");

/*******************创建执行语句方法1********************/

stmt=con.createStatement();

rst=stmt.executeQuery("select*frommytable2");

//输出结果

while(rst.next()){

System.out.print(rst.getString("stuNumber")+"");

System.out.print(rst.getString("stuName")+"");

System.out.print(rst.getString("stuAddress")+"");

System.out.print(rst.getString("stuGender")+"");

System.out.println(rst.getString("stuAge")+"");

}

//关闭对象

stmt.close();

con.close();

}catch(ClassNotFoundExceptioncnf){

System.out.println("没找到驱动程序");

cnf.printStackTrace();

}catch(SQLExceptionse){

se.printStackTrace();

}

}

}

java通过jdbc-odbc桥与mysql建立连接

一、打开mysql命令行,输入passwordroot

在命令行,输入createdatabasemysqldata;

然后,在命令行,输入usemysqldata;

在命令行输入:createtablestudent

(idintprimarykey,

namevarchar(10),

markint

);

显示Queryok,则创建成功。

二、添加数据源

打开“控制面板”,到“管理工具”,到“数据源“,但在系统DSN上没有MySqlDriver。必须要安装MySql的ODBC。先打开http://www.mysql.com,打开download,找到MySql
Connector/ODBC5.1Downloads,打开windowsMSIInstaller(x86),点击Download,即可下载MySql的ODBC。

安装完JDBC-ODBC桥之后,在刚才的”系统数据源“上,点击添加时,会显示,MsSQlODBC5。1Driver,选中它,在出出的窗口中输入:数据源名字:mysqldata

Host/ServerName(orIP):localhost

DatabaseName:mysaldata

Port(3306)

点击确定即创建好了。

三、在lomboz-eclipse里面编辑类。

在eclipse,项目MyTest上的JavaResources:src上,点右键,创建一个java类

packagechapter10;

importjava.sql.*;

publicclassMySqlJdbcOdbc{

publicstaticvoidmain(String[]args){

newMySqlJdbcOdbc().launch();

}

publicvoidlaunch(){

Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";

Stringurl="jdbc:odbc:mysqldata";

Stringquery,name;

intmark;

Connectionconn=null;

Statementstatement=null;

ResultSetrs=null;

try{

Class.forName(driver);

}

catch(ClassNotFoundExceptione){

System.out.println("没有找到指定的驱动");

}

try{

conn=DriverManager.getConnection(url);

statement=conn.createStatement();

query="select*fromstudent";

rs=statement.executeQuery(query);

while(rs.next())

{

name=rs.getString("name");

mark=rs.getInt("mark");

System.out.println("姓名:"+name);

System.out.println("成绩:"+mark);

}

}

catch(SQLExceptione)

{

e.printStackTrace();

}

catch(Exceptione)

{

e.printStackTrace();

}

finally{

try{

if(rs!=null)rs.close();

if(statement!=null)statement.close();

if(conn!=null)conn.close();

}

catch(SQLExceptione)

{

e.printStackTrace();

}

}

}

}

运行:runas:javaapplication

四、上面的连接方式是JDBC——ODBC桥,下面的连接方式是,直接由MySql提供的JDBC桥进行数据库的连接方法。这里要用到JDBC桥,到http://www.mysql.com上下载所需要的驱动,找到downloads,在Drivers
andConnectors下面,找到MySqlConnector/J-forconnectingtoMySqlfromJava下载一个压缩包,注意:压缩包要下载.zip,这是为windows设置的JDBC驱动,而.tar.gz是为linux设置的JDBC驱动包。而解压后,在rec/ort/gjt/mm.mysql有一个Driver类文件,即是我们要导入到eclipse里面用的驱动

将下载的压缩包,解包后,如果我们想知道如何使用JDBC连接呢?想到找一下帮助文档。即找到解压开的文件夹,打开docs文件夹,找到其中的HTML文件,打开看,

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;Connectionconn=null;...try{conn=DriverManager.getConnection("jdbc:mysql://localhost/test?"+"user=monty&password=greatsqldb");//DosomethingwiththeConnection...}catch(SQLExceptionex){//handleanyerrorsSystem.out.println("SQLException:"+ex.getMessage());System.out.println("SQLState:"+ex.getSQLState());System.out.println("VendorError:"+ex.getErrorCode());
}


将光标下拉,找到这样的话,Thenameoftheclassthatimplementsjava.sql.DriverinMySqlConnector/Jiscom.mysql.jdbc.Driver.Theorg.gjt.mm.mysql.Driverclassisalsousabletoremainbackward-compatiblewithMM.MySql.Youshouldusethisclassnamewhenregisteringthedriver,orwhenotherwiseconfiguringsoftwareinuseMySqlconnector/J.

TheJDBCURLformatforMySqlConnector/Jisasfollows,withitemsinsquarebracketsbeingoptional:

jdbc:sql://[host][,failoverhost...][:port]/[database]

[?propertyName][=propertyValue][&propertyName2][=propertyValue2]....

Ifthehostnameisnotspecified,itdefaultsto127.0.0.1.iftheportisnotspecified,itdefaultsto3306,thedefaultportnumberforMySqlservers.

找到5。1。1ConnectiongtoMySqlUsingtheDriverManagerInterface

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

publicclassLoadDriver{

publicstaticvoidmain(String[]args){

try{

Clss.forName("com.mysql.jdbc.Driver").newInstance();

}

catch(Exceptione){

//handletheerror.



importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;Connectionconn=null;...try{conn=DriverManager.getConnection("jdbc:mysql://localhost/test?"+"user=monty&password=greatsqldb");//DosomethingwiththeConnection...}catch(SQLExceptionex){//handleanyerrorsSystem.out.println("SQLException:"+ex.getMessage());System.out.println("SQLState:"+ex.getSQLState());System.out.println("VendorError:"+ex.getErrorCode());}


java导入外部jar文件,在工程根目录下,右击property,选择“JavaBuildPath",点击“Addexternaljars“,ok

或者,在工程根目录下,右击,选择“buildpath",在propertiesforMyTest窗口里,找到Libraries标鉴,点击AddExternalJARs,找到e:/安装软件/mysql安装程序夹/mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar,点击打开,Ok。

或者还有一个debug的这个的jar,那是带有调试的信息的,也可以。

importjava.sql.*;

publicclassMySqlJdbc{

publicstaticvoidmain(String[]args){

newMySqlJdbc().launch();

}

publicvoidlaunch(){

//Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";

//Stringurl="jdbc:odbc:mysqldata";

Stringdriver="org.gjt.mm.mysql.Driver";

Stringurl="jdbc:mysql://localhost:3306/mysqldata?user=root;password=root";

Stringquery,name;

intmark;

Connectionconn=null;

Statementstatement=null;

ResultSetrs=null;

try{

Class.forName(driver);

//Class.forName(driver).newInstance();

}

catch(ClassNotFoundExceptione){

System.out.println("没有找到指定的驱动");

}

try{

conn=DriverManager.getConnection(url);

statement=conn.createStatement();

query="select*fromstudent";

rs=statement.executeQuery(query);

//Stringstr="insertintostudentvalues('20021213','12','52')";

//statement.executeUpdate(str);

while(rs.next())

{

name=rs.getString("name");

mark=rs.getInt("mark");

System.out.println("姓名:"+name);

System.out.println("成绩:"+mark);

}

}

catch(SQLExceptione)

{

e.printStackTrace();

}

catch(Exceptione)

{

e.printStackTrace();

}

finally{

try{

if(rs!=null)rs.close();

if(statement!=null)statement.close();

if(conn!=null)conn.close();

}

catch(SQLExceptione)

{

e.printStackTrace();

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: