JDBC之与数据库MySQL的连接以及增删改查等操作

必须的准备工作

一、MySQL的安装。可以参考博文:http://blog.csdn.net/jueblog/article/details/9499245
二、下载 jdbc 驱动。可以从在官网上下载,或者点击 http://download.csdn.net/detail/oyuntaolianwu/5822697 下载
三、在 Eclipse 的 Java 工程中新建一个 lib 文件夹,将所准备的 JAR 包复制进去。
四、右键该 JAR 包:Build Path –> Add to Build Path

连接的理论知识

需要用到 Java.sql.*; 中的几个相关类:

Connection类

负责建立与指定URL(包含数据库IP地址、库名、用户名和密码的信息)的连接;
Connection conn = DriverManager.getConnection(url,user,password);

DriverManager.getConnection(url);
利用驱动管理器类获取指定URL连接
[java][/java] view plaincopy

  1. String url = “jdbc:mysql://localhost:3306/test”;    //连接URL为   jdbc:mysql//服务器地址/数据库名

Statement类

stmt = conn.createStatment();
语句对象,用来向数据库发送一条SQL语句
rs = stmt.executeQuery(sql)  //返回记录集对象,用于查询
int count = stmt.executeUpdate(sql) //执行一条增删改语句,返回int
stmt.execute(sql) //增删改都可以,返回布尔值(执行成功or失败)

ResultSet类

记录集对象,存储executeQuery()方法返回的记录集合。用相关的rs.getString(“列名”) rs.getInt(“列名”)等方法获取指定列的值。

连接测试

Java代码如下:
[java][/java] view plaincopy

  1. package com.sql;
  2. import java.sql.*;
  3. public class JDBC0726_Base {
  4.     Connection connection;
  5.     Statement statement;
  6.     ResultSet rSet;
  7.     //返回一个与特定数据库的连接
  8.     public Connection getConnection() {
  9.         try {
  10.             //连接URL为   jdbc:mysql//服务器地址/数据库名  ,后面的2个参数分别是登陆用户名和密码
  11.             connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”, “root”, “yongqiang”);
  12.         } catch (SQLException e) {
  13.             // TODO Auto-generated catch block
  14.             e.printStackTrace();
  15.         }
  16.         return connection;
  17.     }
  18.     public static void main(String[] args) {
  19.         JDBC0726_Base jDao = new JDBC0726_Base();
  20.         System.out.println(jDao.getConnection());
  21.     }
  22. }

如果输出相应的对象地址,而不是异常,则证明连接成功。

如输出:com.mysql.jdbc.JDBC4Connection@200bde

用 Java  对SQL进行相关操作

【注】以下操作需要依托于上面的 getConnection() 方法

非查询类SQL语句

[java][/java] view plaincopy

  1. //非查询类
  2. public int Update(String sql) {
  3.     getConnection();
  4.     int count =0;
  5.     try {
  6.         statement = connection.createStatement();
  7.         count = statement.executeUpdate(sql);
  8.     } catch (SQLException e) {
  9.         // TODO Auto-generated catch block
  10.         e.printStackTrace();
  11.     } finally{
  12.         try {
  13.             if (statement != null) {
  14.                 statement.close();
  15.                 statement = null;
  16.             }
  17.             if (connection != null) {
  18.                 connection.close();
  19.                 connection = null;
  20.             }
  21.         } catch (SQLException e2) {
  22.             // TODO: handle exception
  23.         }
  24.     }
  25.     return count;
  26. }

应用:

[java][/java] view plaincopy

  1. System.out.println(jDao.Update(“INSERT INTO t_user(username,password,sex) values(‘hehe’,’131′,’n’);”));

输出值为 1 则证明添加成功。

查询类 SQL 并返回多条记录

[java][/java] view plaincopy

  1. //执行一条查询类SQL,返回多条记录集
  2. public void Qurty(String sql) {
  3.     getConnection();
  4.     try {
  5.         statement = connection.createStatement();
  6.         rSet = statement.executeQuery(sql);
  7.         System.out.println(“id\t” + “realName\t”+”school\t”);
  8.         while (rSet.next()) {
  9.             System.out.println(rSet.getRow()+ “—-” + rSet.getString(“id”) + “\t” + rSet.getString(“realName”) + “\t” + rSet.getString(“school”) + “\t”);
  10.         }
  11.     } catch (SQLException e) {
  12.         // TODO Auto-generated catch block
  13.         e.printStackTrace();
  14.     } finally{
  15.         try {
  16.             if (statement != null) {
  17.                 statement.close();
  18.                 statement = null;
  19.             }
  20.             if (rSet != null) {
  21.                 rSet.close();
  22.                 rSet = null;
  23.             }
  24.         } catch (SQLException e2) {
  25.             // TODO: handle exception
  26.         }
  27.     }
  28. }

应用举例:

[java][/java] view plaincopy

  1. jDao.Qurty(“SELECT * FROM t_user WHERE sex=’女’;”);
  2. System.out.println(“—————————–“);
  3. jDao.Qurty(“SELECT * FROM t_user;”);
  4. System.out.println(“—————————–“);

查询类 SQL 并返回一条记录

[java][/java] view plaincopy

  1. //执行一条查询类SQL,返回单条记录集
  2. public void QurtyByUnique(String sql) {
  3.     getConnection();
  4.     try {
  5.         statement = connection.createStatement();
  6.         rSet = statement.executeQuery(sql);
  7.         System.out.println(“id\t” + “realName\t”+”school\t”);
  8.         if (rSet.next()) {
  9.             System.out.println(rSet.getInt(“id”) + “\t” + rSet.getString(“realName”) + “\t” + rSet.getString(“school”) + “\t”);
  10.         }
  11.     } catch (SQLException e) {
  12.         // TODO Auto-generated catch block
  13.         e.printStackTrace();
  14.     } finally{
  15.         try {
  16.             if (statement != null) {
  17.                 statement.close();
  18.                 statement = null;
  19.             }
  20.             if (rSet != null) {
  21.                 rSet.close();
  22.                 rSet = null;
  23.             }
  24.         } catch (SQLException e2) {
  25.             // TODO: handle exception
  26.         }
  27.     }
  28. }

应用举例:

[java][/java] view plaincopy

  1. jDao.QurtyByUnique(“SELECT * FROM t_user WHERE sex=’女’;”);
  2. System.out.println(“—————————–“);
  3. jDao.QurtyByUnique(“SELECT * FROM t_user;”);
  4. System.out.println(“—————————–“);

输出表单所有数据

[java][/java] view plaincopy

  1. public void QurtyTest(String sql) {
  2.     getConnection();
  3.     try {
  4.         statement = connection.createStatement();
  5.         rSet = statement.executeQuery(sql);
  6.         while (rSet.next()) {
  7.             System.out.print(rSet.getRow()+ “—-” );
  8.             for (int i = 1; i < 14; i++) {
  9.                 System.out.print(rSet.getString(i) +”\t”);
  10.             }
  11.             System.out.println();
  12.         }
  13.     } catch (SQLException e) {
  14.         // TODO Auto-generated catch block
  15.         e.printStackTrace();
  16.     } finally{
  17.         try {
  18.             if (statement != null) {
  19.                 statement.close();
  20.                 statement = null;
  21.             }
  22.             if (rSet != null) {
  23.                 rSet.close();
  24.                 rSet = null;
  25.             }
  26.         } catch (SQLException e2) {
  27.             // TODO: handle exception
  28.         }
  29.     }
  30. }<span style=”font-family: Arial, Helvetica, sans-serif;”>  </span>

应用举例

[java][/java] view plaincopy

  1. jDao.QurtyTest(“SELECT * FROM t_user;”);

标签