Java(JDBC)连接MySQL数据库
工具:
eclipse、MySQL 5.7
MySQL驱动程序文件 mysql-connector-java-5.1.8-bin.jar下载地址
步骤:
一、下载并安装MySQL,做好配置环境变量等准备工作
二、创建Java Project,鼠标选中项目工程,右键点击 Build Path,选择 Configure Build Path,会跳 出 一 个 属 性 框 图 。 选 择 Java Build Path 下 的 Libraries , 查 看 是 否 有mysql-connector-java-5.1.8-bin.jar。如果没有,点击Add External JARs,浏览到JDBC的MySQL驱动的 jar 包,点击确定,将其导入到项目中。
三、写加载驱动程序代码(如下)及信息管理系统的代码。
代码:
import java.sql.*;
public class DbProcess {
// Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息
Connection connection = null;
// 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。
ResultSet rs = null;
// mysql数据库url, MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
String userMySql = "root";
String passwordMySql = "root";
String urlMySql = "jdbc:mysql://localhost:3306/InfoDb?user=" + userMySql + "&password=" + passwordMySql
+ "&useUnicode=true&characterEncoding=UTF-8";
// sqlserver数据库url
// String urlSqlServer =
// "jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=InfoDb";
public DbProcess() {
try {
// mysql数据库设置驱动程序类型
Class.forName("com.mysql.jdbc.Driver");
System.out.println("mysql数据库驱动加载成功");
// sqlserver数据库设置驱动程序类型
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// System.out.println("sqlserver数据库驱动加载成功");
} catch (java.lang.ClassNotFoundException e) {
e.printStackTrace();
}
}
public void connect() {
try {
// mysql数据库
connection = DriverManager.getConnection(urlMySql);
// sqlserver数据库
// connection = DriverManager.getConnection(urlSqlServer);
if (connection != null) {
System.out.println("数据库连接成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void disconnect() {
try {
if (connection != null) {
connection.close();
connection = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql) {
try {
System.out.println("executeQuery(). sql = " + sql);
// prepareStatement(String sql) 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
PreparedStatement pstm = connection.prepareStatement(sql);
// 执行查询
rs = pstm.executeQuery();
} catch (SQLException ex) {
ex.printStackTrace();
}
return rs;
}
// 插入
// executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。
// executeUpdate用于执行 INSERT、UPDATE 或 DELETE 语句
// 以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。
// 执行增、删、改语句的方法
public int executeUpdate(String sql) {
int count = 0;
connect();
try {
Statement stmt = connection.createStatement();
count = stmt.executeUpdate(sql);
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
disconnect();
return count;
}
}
参考:
Connection类,PreparedStatement类
http://tool.oschina.net/apidocs/apidoc?api=jdk-zh