现在的位置: 首页 > 综合 > 正文

JDBC链接mysql数据库

2014年09月05日 ⁄ 综合 ⁄ 共 3069字 ⁄ 字号 评论关闭

今天用JDBC链接mysql数据库,看着教程折腾了半个多小时(看来看着明白,丢下书自己操作就难了啊~!!!),出了各种bug最后终于链接成功了,现在将今天所写的链接代码与方法分享。

一、JDBC基础知识(来自百科)        

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

1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;

2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以JDBC不受数据库供应商的限制。

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

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

        缺点如下:

  • 访问数据记录的速度受到一定程度的影响;
  • 更改数据源困难:JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦
二、JDBC连接mysql流程
1、在开发环境中加载mysql驱动,这里需要数据库mysql和mysql连接器(也就是jar文件,如mysql-connector-java-5.1.18-bin.jar),所用开发环境为myeclipse,之后还要把jar导入项目中
2、在java程序中加载驱动,有两种方法
    1)Class.forName("com.mysql.jdbc.Driver");
    2)  Class.forName("com.mysql.jdbc.Driver").newInstance();
3、创建链接对象:通过DriverManager类创建数据库连接对象Connection。
    Connection ce = DriverManager.getConnection(“连接数据库的URL",
"用户名", "密码”)
    具体mysql例子,
    Connection ce = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test","root"
,"root" );
    或者
    Connection ce= DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=root");
4、创建Statement对象:Statement 类的主要是用于执行静态 SQL 语句并返回它所
生成结果的对象。
    Statement sm = ce.createStatement();
5、调用Statement对象的相关方法来执行sql语句。executeQuery(String)方法可执行SELECT查询。要想更新数据库中的数据,可使用executeUpdate(String SQL)方法。该方法将返回受更新语句影响的行数。
使用示例代码如下:
           ResultSet rs = statement.executeQuery( "select * from mytable" );
之后用next()方法将指针指向下一行,然后将数据一一取出。
6、关闭数据库各个链接close(),顺序后打开的先关闭。
三、一个简单的实例
在此之前,说一下将mysql连接器的jar文件添加至myeclipse中:在MyEclips中创建项目并在项目中添加MySQL驱动程序,可以使java项目也可以是javaweb项目。创建成功后将mysql驱动程序包添加到工程中bulid path中, 具体步骤如下



已经添加,在工程文件中则用这样的文件

package com.wxk.test;

import java.sql.*;

public class JDBC_Test {
	/*各个链接的声明*/
	Connection ce = null;
	Statement st = null;
	ResultSet rs = null;
	
	public static void main(String[] args) {
		new JDBC_Test().query();
	}
	
	/* 查询数据库,输出符合要求的记录的情况*/  
	public void query() {  
		
        try {  
        	ce= DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=xiaokang123"); //先要获取连接,即连接到数据库  
            String sql = "select * from users";     // 查询数据的sql语句  
            st = (Statement) ce.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量    
            rs = st.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集  
            System.out.println("最后的查询结果为:"); 
            while(rs.next()) {
            	int userId = rs.getInt(1);
            	String userName = rs.getString(2);
            	String passwd = rs.getString(3);
            	String mail = rs.getString(4);
            	int grade = rs.getInt(5);
            	System.out.println("userId:"+userId+" userName:"+userName+" passwd:"+passwd+" mail:"+mail+" grade:"+grade);
            }
        } catch(Exception e) {
        	e.printStackTrace();
        }finally {
        	close();
        }
	}
	
	/*关闭各个链接,注意后打开的先关*/
	public void close() {
		try {
			
        	if(rs != null) {
    			rs.close();
    			rs = null;
    		}
        	if(st != null) {
        		st.close();
        		st = null;
        	}
        	if(ce != null) {
        		ce.close();
        		ce = null;
        	}
		} catch (Exception e) {
			// TODO: handle exception
			
			e.printStackTrace();
		}
	}
}

这里就写了select用executeQuery()方法执行sql语句。其他的语句也类似。


抱歉!评论已关闭.