2014/10/12 Eclipse下JDBC连接MySQL数据库与示例

JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。

一、JDBC基础知识        

        JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。

        JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。

      优点如下:

  • 操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数;
  • 可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可;
  • 通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;
  • 面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。

二、JDBC连接数据库的流程及其原理

         1、在开发环境中加载指定数据库的驱动程序:

               在后面示例中:我使用的数据库是mysql(具体可以到:http://dev.mysql.com/downloads/windows/installer/),所以驱动也要去下载最新的驱动程序(我下载的是:mysql-connector-java-5.0.8.zip)开发环境我用的是Eclipse luna。

         2、在Java程序中加载驱动程序:

               在Java程序中,可以通过 “Class.forName(“指定数据库的驱动程序”)” 方式来加载添加到开发环境中的驱动程序,例如加载MySQL的数据驱动程序的代码为: String driver=“com.mysql.jdbc.Driver”;

                        Class.forName(driver);

         3、创建数据连接对象:

               通过DriverManager类创建数据库连接对象ConnectionDriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBC Connection 对象。如:Connection connection =  DriverManager.geiConnection(“连接数据库的URL", "用户名", "密码”)。其中,URL=协议名+IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库时所使用的用户名和密码。具体示例创建MySQL的数据库连接代码如下:

                String url="jdbc:mysql://127.0.0.1:3306/db_database25";
String user="root";
String password="18822";

                Connection conn=DriverManager.getConnection(url, user, password);

         4、创建Statement对象:

              Statement 类的主要是用于执行静态 SQL 语句并返回它所生成结果的对象。通过Connection 对象的 createStatement()方法可以创建一个Statement对象。例如:Statement statament = connection.createStatement(); 具体示例创建Statement对象代码如下:

               Statement statement=conn.createStatement();

         5、调用Statement对象的相关方法执行相对应的 SQL 语句:

               通过execuUpdate()方法用来数据的更新,包括插入和删除等操作;

               通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到 ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:

                 String sql="select * from tb_category";

                  ResultSet rs = statement.executeQuery(sql );

                  while(rs.next()){

                     ..................................... 

                   }

          6、关闭数据库连接:

            使用完数据库或者不需要访问数据库时,通过Connection的close() 方法及时关闭数据连接。conn.close();

三、2014/10/12我的实践示例: 

         实验环境:window 7,   mysql  5.6(workbench 6.1),   eclipse luna (4.4.0)

         实验步骤:

                         1下载驱动程序:

                                                前往mysql官网(http://dev.mysql.com/downloads/connector/)下载驱动程序,我这选择的是(Connector/J),如下图所示,按照我圈了的步骤去下载,解压下载到的压缩包(mysql-connector-java-5.0.8.zip),注意哦,我们最终需要的是:mysql-connector-java-5.0.8-bin文件啊!!!!!


                                                                          

                                                                           

                                                                           

                                                                            

             

                         2 附加数据库:

                                             我这里采用以前的数据库db_database25,但是还没有附加哦。如下图所示:按照图中所示步骤进行,附加成功都会在Schemas中看到我附加的数据库名,然后可以通过一个简单的查询语句来进一步检查(select * from db_database25.tb_category)。

                                                                            

                                                                           

                                                                           

                                                                           

                         3 在Eclipse下创建项目并添加mysql驱动程序:

                                                   我这新建了一个java项目,命名为:trainSysTest,然后再把下载到的mysql驱动程序(mysql-connector-java-5.0.8-bin)添加到工程的build path中,添加如下图所示:

                                                                          




具体代码:

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


public class MysqlConntest1 {
public static void main(String[] args){
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://127.0.0.1:3306/db_database25";
String user="root";
String password="18822";
try {
Class.forName(driver);//加载驱动程序
   Connection conn=DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println("Successed connecting to the database!");
Statement statement=conn.createStatement();
String sql="select * from tb_category";
ResultSet rs=statement.executeQuery(sql);
System.out.println("-----------------------");
System.out.println("执行结果如下所示:");
System.out.println("------------------------");
while(rs.next()){
int id=rs.getInt("id");
String name1=rs.getString("name");
String des=rs.getString("description");
String time=rs.getString("createtime");
System.out.println(id+""+name1+""+des+""+time+"");
//System.out.println(name1+""+des+""+time+"");
}
rs.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值