最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建。
说明:本文使用的JDBC框架是基于JAVA SE 1.8 & MySQL & Eclipse
工具下载:
MySQL V5.5(x64) 64位
MySQL V5.5(x86) 32位
要根据你电脑的情况选择相应的MySQL版本。我的电脑是64位,所以本篇文章是使用64位讲解的,如果有同学在使用32位版本的时候出现问题的可以随时联系我。
一.安装配置MySQL
1.首先打开运行mysql-5.5.29-winx64.msi(就是上面的MySQL V5.5),你会进入到安装界面:
2.接下来。。。next->next。。。一直点击next,当你看到这样的界面:
这个是选择MySQL的安装目录。我的习惯是开发工具一般都选择默认的路径。当然你想使用其他路径也行,不过还是要提醒一点,路径不要包含中文。
继续next。
这个是MySQL服务的端口号,我们最好不要修改,不过要记住这个值3306。
然后next。。。欢迎你来到坑前!(我没让你踩呢,不急)
这个界面是设置我们MySQL系统的字符集。默认是让我们选择字符集”Latin1”,我就问你你知道这个是什么字符集吗。。。那你不要怪我孤陋寡闻,我第一次就是直接默认过去,最后发现,我的数据库不能使用中文!会出现乱码。然后也是折腾了好久才解决。
我们何不一开始就把问题解决呢对吧。这里我们选择第三项,然后选择字符集”gbk”,这个不用解释了吧。。。见下图:
继续next。看到设置管理员账号信息界面了吧:
选中第一个,然后输入密码(建议记性不好的同学使用密码”123456”。。。=。=)。设置好密码之后,你登陆MySQL的账号就是:
userName:root
password:***(你的密码)*
接下来嘛。。。等。。。wait。。。
不过相信我这个过程不会持续很久。Done:
3.接下来,检查下MySQL是否正确安装:
“我的电脑”->”管理”->”服务”。查看MySQL服务是否启动:
如果你发现你的MySQL尚未启动,可以在”运行”中使用”net start mysql”启动服务。然后在任务管理器中查看MySQL的运行状态:
二.使用MySQL数据库
我们已经成功安装好了MySQL数据库,那接下来就来热热身如何?
要使用MySQL数据库第一步当然是要进行身份验证,进入命令行界面,输入下面的指令(如果你使安装的时候使用的是默认的安装路径,一般是这个目录,如果使用了自定义目录就进入相应的目录就好了),进入MySQL安装目录下的bin文件夹(存放MySQL的开发工具):
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
接下来进行身份验证,指令如下:
mysql -u你的用户名 -p你的密码
如果登陆成功,会看到如下这样的界面:
好了,现在可以使用MySQL数据库了。
接下来进行如下操作:
1.创建数据库TestJDBC:CREATE DATABASE TestJDBC;
2.使用TestJDBC数据库:USE TestJDBC;
3.创建UserInfo数据表(包含属性userName(char(10))、password(varchar(15))):CREATE TABLE UserInfo(userName char(10), password varchar(15));
4.插入数据:
INSERT INTO UserInfo VALUES('小炫', '111111');
INSERT INTO UserInfo VALUES('小铭杰JJ', '222222');
INSERT INTO UserInfo VALUES('小航', '333333');
不知道你有没有留意到我们的SQL语句都是以”;”结尾的,这显然不是SQL语法,我们在用DOS下操作MySQL时要求每一条语句后要带”;”。
操作过程如下(前方高能!!!)
CREATE DATABASE TestJDBC;
USE TestJDBC;
CREATE TABLE UserInfo(userName char(10), password varchar(15));
DESC UserInfo; (查看表结构)
INSERT INTO UserInfo VALUES('小炫', '111111');
INSERT INTO UserInfo VALUES('小铭杰JJ', '222222');
INSERT INTO UserInfo VALUES('小航', '333333');
现在,我们创建了一个TestJDBC数据库,里面有一张数据表,里面包含三条数据:
SELECT * FROM UserInfo
三.使用JAVA连接、操作数据库
准备工作都搞定了,接下来进入正题啦。回到我们的老本行:使用JAVA操作数据库。
首先我们用一张图看清楚JDBC:
Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的。简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。
我们现在对照下上图,至今我们所做的工作已经把最底层的数据库搭建好了,要在JAVA程序中使用数据库,还需要:
* JDBC驱动器
* JDBC API
* JAVA 程序(这个是废话吗 -.-|||)
开始的开始,我们先在eclipse下创建一个JAVA项目(这个。。。不需要截图了吧。。。)
JDBC驱动器
就是我们之前下载好的JDBC驱动(MySQL):mysql-connector-java-5.1.7-bin.jar。
其实这个是一个由MySQL数据库提供的用来给JAVA连接MySQL数据库的第三方库,我们只要把这个库导入到我们的工程中去就好了。
1.新建用户环境变量:
变量名:CLASSPATH
变量值:;目录:mysql-connector-java-5.1.7-bin.jar
我是把jar文件直接放在c盘下,你当然可以放在其他地方,但还是那句,不要放在路径含有中文字符的目录。
2.把jar导入JAVA工程:
“工程名”->”Build Path”->Configure Build Path
“Add Library”->选中jar文件
添加成功之后,你会在你的项目视图中看到这个jar:
JDBC API
关于JDBC API嘛。上课老师已经讲得很清楚了。我这里就随便复习下。
要使用JDBC,有几个重要的类需要知道:
//重要的类:
java.sql.Connection; //数据库连接实例
java.sql.DriverManager; //数据库驱动管理类,调用其静态方法getConnection并传入数据库的URL获得数据库连接实例
java.sql.Statement; //操作数据库要用到的类,主要用于执行SQL语句
java.sql.ResultSet; //数据库查询结果集
JAVA程序
下面以MySQL为例,简单讲解下JAVA程序操作数据库的方法。
使用JDBC的步骤如下:
说明:
***JAVA工程已导入JDBC驱动器(jar);
考虑到数据库安全,我把我数据库的登陆信息封装起来放到了Values.java下:*
Values.java:
public class Values
{
public static String DRIVER_MYSQL = "com.mysql.jdbc.Driver"; //MySQL JDBC驱动字符串
public static String URL = "jdbc:mysql://localhost:3306/数据库名?"
+ "user=用户名&password=密码&useUnicode=true&characterEncoding=UTF8";//数据库Url,用来标识要连接的数据库,其中数据库名、用户名、密码是根据你自己的数据库情况设定
}
1.在JAVA程序中加载JDBC驱动
Class.forName(Values.DRIVER_MYSQL);
2.创建数据库连接对象
Connection connection = DriverManager.getConnection(Values.URL);
3.创建Statement对象
Statement statement = connection.createStatement();
4.调用Statement对象相应的方法操作数据库
下面是我用于测试数据的Demo:
TestJDBC.java:
public class TestJDBC
{
private Statement statement;
public TestJDBC() {
try
{
Class.forName(Values.DRIVER_MYSQL); //加载JDBC驱动
System.out.println("Driver Load Success.");
Connection connection = DriverManager.getConnection(Values.URL); //创建数据库连接对象
statement = connection.createStatement(); //创建Statement对象
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 根据sql查询数据库,返回一个结果集
* 输 入:SQL语句
* 返回值:ResultSet 查询结果
*/
public ResultSet query(String sql) {
ResultSet result = null;
try
{
result = statement.executeQuery(sql);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
/*
* 打印UserInfo表的数据
* 输 入:结果集(数据表)
* 返回值:空
*/
public void printUserInfo(ResultSet result) {
try
{
while(result.next()) {
System.out.println("userNname:" + result.getString(1)
+ ", password:" + result.getString(2));
}
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 执行数据操作
* 输 入:SQL语句
* 返回值:空
*/
public void executeSql(String sql) {
try
{
statement.execute(sql);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
String sql = "SELECT * FROM UserInfo";
TestJDBC db = new TestJDBC();
ResultSet result = db.query(sql);
db.printUserInfo(result);
}
}
看看上面我们做了什么,首先我们把操作JDBC的准备工作放在了构造方法中,一旦我们创建了TestJDBC对象,就获得了数据库连接和一个对应的Statement对象。然后是在类中定义了三个方法:
* ResultSet query(String sql)
* void executeSql(String sql)
* void printUserInfo(ResultSet result)
这几个方法都是封装了JDBC API之后用来操作数据库用的,具体的功能在代码上已经注释好。在主函数中,我们首先创建了一个TestJDBC对象,之后执行查询语句,获得UserInfo表的所有数据并打印出来。运行程序,得到下面的结果:
现在我们在主函数中加入插入数据的代码:
public static void main(String[] args)
{
// TODO Auto-generated method stub
String sql = "SELECT * FROM UserInfo";
TestJDBC db = new TestJDBC();
db.executeSql("INSERT INTO UserInfo VALUES('小明', '666666')"); //插入一条数据
ResultSet result = db.query(sql);
db.printUserInfo(result);
}
运行程序,得到下面的结果:
说明我们插入数据成功!
四.MySQL可视化工具MySQL-Front:使用图形界面操作MySQL
前面我们一直是在指令操作MySQL,对于单单的插入删除查询数据的操作还是可以接受的,但如果要我们使用指令来用T-SQL编写SQL程序。。。我的天!调试会死人的吧。所以我们还是要掌握下MySQL-Front的使用方法的,我确信你会更倾向于图形操作。
首先是安装MySQL-Front,这个就更简单了,直接下一步,下一步。。。
安装好之后运行MySQL-Front,要先进行一些配置,这里就不是可以随便改的了,这些配置要根据我们的MySQL数据库来配置,如果我们没有另外定义Host和端口号的话,你只要这样设置就好了:
数据库呢,就选择我们之前建好的数据库就好了,当然在里面你也可以新建数据库的。
打开,进入我们的MySQL数据库。打开”testjdbc”我们可以看到我们之前创建的数据库,
查看数据表的结构
查看数据表当前数据
现在我们来执行一条插入语句:
INSERT INTO UserInfo VALUES('小B', '555555')
点击运行,接下来再看下数据表数据:
新的数据已经插入到数据表(可能你不会一下子就看到新的数据,这个时候我们只要刷新一下。什么!还没看到!那肯定是你的SQL语句有错了。)
最后我们回到之前的JAVA Demo,运行程序,结果如下:
天啊!不知不觉就完成了JDBC的搭建和测试了!
YEAH!是不是很nice!
Demo下载地址:JdbcForMySQLDemo