为什么不用文件去存储数据?
在没有接触数据库之前,或多或少总会有些疑惑,存储数据为什么不用文件去存储而是用数据库去存储?因为数据库存储数据是按照一定的规则去存储这些数据,既保证了数据的完整性和有效性,最重要的是保证了数据查询的快速。这就是为什选择用数据库去存储数据的一个原因了。
MySQL的安装
对于刚入门来说,可能安装一个数据库就得折腾好久,特别是用MIS包直装的,因为装到一半时就一直跳不过去。所以我采用了zip压缩包来安装。
首先我们去官网下载zip安装包,可以安装在任意一个系统盘,本人习惯安装在D盘下面,因此在d盘下面新建了个mysql文件夹存放mysql的解压文件。目录结构:D:\mysql\mysql-5.6.33-winx64。如果直接运行目录D:\mysql\mysql-5.6.33-winx64\bin下的mysql.exe文件,然后弹出一个框,闪了一下就不见了,原因是还没有安装mysql服务呢,目前为止只是把压缩包下载下来然后解压到相应目录中。
1、配置my.ini文件。
在D:\mysql\mysql-5.6.33-winx64\(注意这个目录要和你自己的目录,我这里下载的是5.6版本,要是你下载的是5.5版本,这个目录是不一样的)目录下新建一个配置文件,文件名叫my.ini,然后把下面的配置代码复制到在my.ini,代码中的路径要改成自己的文件存放路径。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.6.33-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.6.33-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
主要是更改basedir= 和datadir= 这两处。完了之后以管理员身份运行C:\Windows\System32目录下找到这个cmd.exe,注意一定要以管理员身份运行,不然不能安装成功的。以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,再输入mysqld install回车运行就行了,注意是是mysqld,不是mysql。安装成功了会在cmd界面显示service successful install,表明安装成功。
接下来就是进入服务器了,打开cmd界面,然后输入mysql -uroot -p按回车键即可进入,通过zip包安装的是没有密码的。下面是一些如何去操作数据库的指令
创建一个名称为mydb1的数据库,如果有mydb1数据库则直接使用,如果无则创建mydb1数据库
create database if not exists mydb1;
创建一个使用UTF8字符集的mydb2数据库,注意这里不是UTF-8
create database if not exists mydb2 character set UTF8;
创建一个使用UTF8字符集,并带校对规则的mydb3数据库
create database if not exists mydb3 character set UTF8 collate utf8_general_ci;
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的mydb1数据库的定义信息
show create database mydb1;
删除前面创建的mydb1数据库,如果有mydb1则删除
drop database if exists mydb1;
使用mydb2数据库
use mydb2
查看数据库服务器中的数据库,并把其中mydb3库的字符集修改为GBK
alter database mydb3 character set GBK;
数据库的其他操作和增删改查就得去查看资料了,这里不做过多说明。
JDBC
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。简单的说就是建立程序与数据库连接的一部分。
JDBC开发步骤
1、通过反射注册数据库驱动
2、获取驱动指向数据库连接
3 、创建封装SQL语句的对象
4 、执行SQL语句
5、处理SQL语句返回的结果集
6 、依次由轻到重关闭用过的连接对象
注册驱动
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机)。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
DriverManager类的registerDriver()方法的参数是java.sql.Driver,但java.sql.Driver是一个接口,实现类由mysql驱动来提供,mysql驱动中的java.sql.Driver接口的实现类为com.mysql.jdbc.Driver!
连接数据库
Connection con=DriverManager.getConnection(url,username,password)
其中username和password是登录数据库的用户名和密码,如mysql数据库的用户名和密码分别是:root、123。我们创建string对象url 和username与password等。例如:
String url ="jdbc:mysql://127.0.0.1:3306/guan";
String user="root";
String password="123456";
String sql ="select none,name from guan";
url的格式由三部分组成,每个部分中间使用逗号分隔。
jdbc,这是一个主协议;mysql是要连接数据库的子协议,不同的数据库子协议不同,这里用的是mysql数据库。//127.0.0.1是数据库服务器的所在的地址,这里使用的是本机地址,3306为数据库端口,/guan表示要连接的数据库。
创建连接对象
Statement stmt = con.createStatement();
Statement是用来向数据库发送要执行的SQL语句的!
执行数据库查询语句
String sql = “select * from guan”;
ResultSet rs = stmt.executeQuery(sql);
这条语句将会返回一个结果集。
处理结果集
while(rs.next()){
//以行为单位,获取每个字段的值
int id =rs.getInt("none");
String name =rs.getString("name");
System.out.println(id+"\t"+name);
}
调用rs对象的next()方法,改方法以行为单位,进行一行行读取,如果有值,则返回true,否则返回false。
关闭创建对象
rs.close();
stmt.close();
con.close();
使用完这些对象之后,对这些对象轻重级进行一次关闭。
网友评论