[java]JDBC连接MySQL

来源:互联网 发布:2017年最火的网络手游 编辑:程序博客网 时间:2024/05/20 23:04

  一、对JDBC连接数据库的步骤

  1.加载数据库驱动

  //加载驱动

  Class.forName(driverClass)

  ----------------------------------

  //加载MySQL驱动

  Class.forName("com.mysql.jdbc.Driver");

  //加载Oracle驱动

  Class.forName("oracle.jdbc.Driver.OracleDriver");

  2.通过DriverManager获取数据库连接

  //获取数据库连接

  DriverManager.getConnection(String url,String user,String pass)

  ---------------------------------------------

  MySQL的URL写法:jdbc:mysql://hostname:port/databasename

  Oracle的URL写法:jdbc:oracle:thin:@hostname:port:databasename

  3.通过Connection对象创建Statement对象,Connection创建Statement的方法:

  createStatement():创建基本的Statement对象

  prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象

  prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象

  4.使用Statement执行SQL语句。

  execute:可以执行任何SQL语句

  executeUpdate:主要用于执行DML和DDL语句。执行DML返回受SQL语句影响的行数,执行DDL返回0

  executeQuery:只能执行查询语句,执行后返回代表查询结果的ResultSet对象

  5.操作结果集

  6.回收数据库资源

  二、例子

  import java.sql.*;

  public class ConnMySQL{

  public static void main(String[] args) throws Exception{

  //加载MySQL驱动

  Class.forName("com.mysql.jdbc.Driver");

  //获取数据库连接

  Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_cyw","root","root");

  //通过Connection对象创建Statement对象

  Statement stmt = conn.createStatement();

  //

  ResultSet rs = stmt.executeQuery("select * from t_student");

  while(rs.next()){

  System.out.println(rs.getInt(1) + "\t"

  + rs.getString(2) + "\t"

  + rs.getString(3));

  }

  //关闭数据库资源

  if(rs != null){

  rs.close();

  }

  if(stmt != null){

  stmt.close(); sducc1122

  }

  if(conn != null){

  conn.close();

  }

  }

  }

  ---------------

  在操作过程中出现问题:

  1.JDBC数据库连接异常

  异常情况:Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

  问题说明:找不到mysql的驱动类

  解决方法:

  在环境变量的CLASSPATH中添加mysql-connector-java-5.1.20-bin.jar就可以了

  本机的路径是:C:\Program Files\MySQL\MySQL Connector J\mysql-connector-java-5.1.20-bin.jar

  2.MySql中文显示乱码http://qidongbailing.com

  mysql> select * from t_student;

  +----+------+-----+

  | ID | NAME | SEX |

  +----+------+-----+

  | 1 | cyw | 鐢? |

  | 2 | ly | 鐢? |

  | 3 | gs | 濂? |

  +----+------+-----+

  3 rows in set (0.00 sec)

  解决方法:

  mysql> set names 'gbk'