MySQL: ubuntu10.10 下与 JDBC 操作

如果您写好JDBC连接MySQL的Java文件,之后敲java命令运行代码,报异常: 

[java]  view plain copy print ?
  1. Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  
 

原因是找不到驱动,ok?! 这篇文章适合您。

  

1. 下载MySQL的驱动

 

mysql-connector-java-5.1.16.tar.gz

 

到官方网站下载吧!

 

2. 解压

 

[c-sharp]  view plain copy print ?
  1. tar -zxvf mysql-connector-java-5.1.16.tar.gz  
 

 

解压之后文件夹中存在文件mysql-connector-java-5.1.16-bin.jar

名字太长,可以修改文件名:

 

[c-sharp]  view plain copy print ?
  1. mv mysql-connector-java-5.1.16-bin.jar mysql-connector.jar  
 

 

3. jdk与该驱动

 

如果你不使用eclipse的话,使用一般Java编辑器可以copy该mysql-connector.jar文件到:

 

[c-sharp]  view plain copy print ?
  1. /home/mark/android/Java/jdk1.6.0_24/jre/lib/ext  
 

 

就是你的jdk安装目录下面的/Java/jdk1.6.0_24/jre/lib/ext

 

4. Eclipse与该驱动


如果使用eclips的话,在新建工程中右键选择Build Path / Add External Archives选择mysql-connector.jar文件即可。

 

5. 测试源代码

 

[java]  view plain copy print ?
  1. package net.mark;  
  2. import java.sql.Connection;  
  3. import java.sql.DriverManager;  
  4. import java.sql.ResultSet;  
  5. import java.sql.SQLException;  
  6. import java.sql.Statement;  
  7. public class ShowInfo {  
  8.     private static final String SQLEXCEPTION =   
  9.         "jdbc:mysql://127.0.0.1:3306/mydb?mytable=root&password=";  
  10.       
  11.     private static final String SQL = "jdbc:mysql://127.0.0.1/mydb?";  
  12.     private static final String USER = "root";  
  13.     private static final String PASSWORD = "";  
  14.     public static void main(String[] args) throws Exception {  
  15.         System.out.println("userId info:");  
  16.         getInfoFromDatabase(SQL, USER, PASSWORD, 1);  
  17.         System.out.println("==================================");  
  18.         System.out.println("userName info:");  
  19.         getInfoFromDatabase(SQL, USER, PASSWORD, 2);  
  20.           
  21.         // 报异常信息:Access denied for user ''@'localhost' to database 'mydb'  
  22.         getInfoFromDatabase(SQLEXCEPTION, 1);  
  23.     }  
  24.     /** 
  25.      * 获取数据库中表的数据信息 
  26.      *  
  27.      * @param sql 
  28.      *            sql语句 
  29.      * @param user 
  30.      *            用户名 
  31.      * @param password 
  32.      *            用户密码 
  33.      * @param columnIndex 
  34.      *            行、列索引.1 代表获得userId,2 代表获得userName 
  35.      */  
  36.     public static void getInfoFromDatabase(String sql, String user, String password, int columnIndex) {  
  37.         Connection conn = null;  
  38.         Statement statement = null;  
  39.         ResultSet result = null;  
  40.         try {  
  41.             //Class.forName("com.mysql.jdbc.Driver").newInstance();  
  42.             Class.forName("com.mysql.jdbc.Driver");//加载类Driver  
  43.             conn = DriverManager.getConnection(sql, user, password);  
  44.             statement = conn.createStatement();  
  45.             result = statement.executeQuery("select * from mytable");  
  46.             while (result.next()) {  
  47.                 System.out.println("userName= " + result.getString(columnIndex));  
  48.             }  
  49.         } catch (ClassNotFoundException e) {  
  50.             e.printStackTrace();  
  51.         } catch (SQLException e) {  
  52.             e.printStackTrace();  
  53.         } finally {  
  54.             try {  
  55.                 if (result != null) {  
  56.                     result.close();  
  57.                     result = null;  
  58.                 }  
  59.                 if (statement != null) {  
  60.                     statement.close();  
  61.                     statement = null;  
  62.                 }  
  63.                 if (conn != null) {  
  64.                     conn.close();  
  65.                     conn = null;  
  66.                 }  
  67.             } catch (SQLException e) {  
  68.                 e.printStackTrace();  
  69.             }  
  70.         }  
  71.     }  
  72.     /** 
  73.      * 获取数据库中表的数据信息,重载方法 
  74.      *  
  75.      * @param sql 
  76.      *            sql语句 
  77.      * @param columnIndex 
  78.      *            行、列索引.1 代表获得userId,2 代表获得userName 
  79.      */  
  80.     public static void getInfoFromDatabase(String sql, int columnIndex) {  
  81.         Connection conn = null;  
  82.         Statement statement = null;  
  83.         ResultSet result = null;  
  84.         try {  
  85.             //Class.forName("com.mysql.jdbc.Driver").newInstance();  
  86.             Class.forName("com.mysql.jdbc.Driver");  
  87.             conn = DriverManager.getConnection(sql);  
  88.             statement = conn.createStatement();  
  89.             result = statement.executeQuery("select * from mytable");  
  90.             while (result.next()) {  
  91.                 System.out.println("userName= " + result.getString(columnIndex));  
  92.             }  
  93.         } catch (ClassNotFoundException e) {  
  94.             e.printStackTrace();  
  95.         } catch (SQLException e) {  
  96.             e.printStackTrace();  
  97.         } finally {  
  98.             try {  
  99.                 if (result != null) {  
  100.                     result.close();  
  101.                     result = null;  
  102.                 }  
  103.                 if (statement != null) {  
  104.                     statement.close();  
  105.                     statement = null;  
  106.                 }  
  107.                 if (conn != null) {  
  108.                     conn.close();  
  109.                     conn = null;  
  110.                 }  
  111.             } catch (SQLException e) {  
  112.                 e.printStackTrace();  
  113.             }  
  114.         }  
  115.     }  
  116. }  
 

 

6. 使用Eclipse看数据库

 

<1> 显示视图

 

window -- show view -- other

 

 

选择 Data Source Explorer和SQL Results

 

<2>在Data Source Explorer下面的Database Connections右键选择New...

 

 

<3> 选择MySQL数据库,Name任意取

 

<4> Next,填写数据库名称、用户名以及密码

 

 

这里数据库名称为mydb,用户root,密码为空。如果你的密码不为空的话,必须写!

 

<5> 上面图中,选择下载的MySQL的JDBC驱动。连接成功之后,显示如下:

 

 

<6> 显示表中数据。在表mytable右键Data选择Sample Contents

 

 

在SQL Results视图可以看到上述内容。

 

7. 遇到麻烦

运行代码报如下异常:
[java]  view plain copy print ?
  1. Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'mydb'  
 
上面代码部分,有注释。换一个重载的方法即可!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值