Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

时间:2021-04-22 13:05:52

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

  如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,这里就不一一说明,添加jar程序驱动包的方法就不在这里解释,   另一个文章里面有介绍http://taoweiji.blog.51cto.com/4204716/1109629   下面是一个实例去介绍mysql数据库的连接,其它数据库的方法也是差不多的。  

Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

 

  
 
 
  1. /** 
  2.  * @author :陶伟基 ,微博:http://weibo.com/taoandtao 
  3.  * @date :2012/12/11 
  4.  * @place:广州大学华软软件学院 
  5.  */ 
  6. import java.sql.DriverManager; 
  7. import java.sql.ResultSet; 
  8. import java.sql.SQLException; 
  9. import java.sql.Connection; 
  10. import java.sql.Statement; 
  11.  
  12.  
  13. public class MysqlDemo { 
  14.     public static void main(String[] args) throws Exception { 
  15.         Connection conn = null
  16.         String sql; 
  17.         // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值 
  18.         // 避免中文乱码要指定useUnicode和characterEncoding 
  19.         // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定, 
  20.         // 下面语句之前就要先创建javademo数据库 
  21.         String url = "jdbc:mysql://localhost:3306/javademo?" 
  22.                 + "user=root&password=root&useUnicode=true&characterEncoding=UTF8"
  23.  
  24.         try { 
  25.             // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来, 
  26.             // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以 
  27.             Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动 
  28.             // or: 
  29.             // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); 
  30.             // or: 
  31.             // new com.mysql.jdbc.Driver(); 
  32.  
  33.             System.out.println("成功加载MySQL驱动程序"); 
  34.             // 一个Connection代表一个数据库连接 
  35.             conn = DriverManager.getConnection(url); 
  36.             // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等 
  37.             Statement stmt = conn.createStatement(); 
  38.             sql = "create table student(NO char(20),name varchar(20),primary key(NO))"
  39.             int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功 
  40.             if (result != -1) { 
  41.                 System.out.println("创建数据表成功"); 
  42.                 sql = "insert into student(NO,name) values('2012001','陶伟基')"
  43.                 result = stmt.executeUpdate(sql); 
  44.                 sql = "insert into student(NO,name) values('2012002','周小俊')"
  45.                 result = stmt.executeUpdate(sql); 
  46.                 sql = "select * from student"
  47.                 ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值 
  48.                 System.out.println("学号\t姓名"); 
  49.                 while (rs.next()) { 
  50.                     System.out 
  51.                             .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt() 
  52.                 } 
  53.             } 
  54.         } catch (SQLException e) { 
  55.             System.out.println("MySQL操作错误"); 
  56.             e.printStackTrace(); 
  57.         } catch (Exception e) { 
  58.             e.printStackTrace(); 
  59.         } finally { 
  60.             conn.close(); 
  61.         } 
  62.  
  63.     } 
  64.  

本文出自 “5G时代” 博客,请务必保留此出处http://taoweiji.blog.51cto.com/4204716/1109635