大数据实验一:大数据系统基本实验(第四部分:NoSQL和关系数据库的比较)

一、 实验目的
1)理解 4 种数据库(MySQL、HBase、Redis 和 MongDB)的概念及不同点。
2)熟练使用 4 种数据库操作常用的 shell 命令。
3)熟悉 4 种数据库操作常用的 Java API。
二、 实验平台
1)操作系统:Linux(Ubuntu18.04); 2)Hadoop 版本:2.9.0;
3)MySQL 版本:5.7.28;
4)HBase 版本:1.2.6;
5)Redis 版本:4.0.8;
6)MongDB 版本:3.2.21;
7)JDK 版本:1.8;
8)Java IDE:Eclipse 3.8。
三、 实验内容
1、MySQL 数据库操作

import java.sql.*;

//mysql shell:
//mysql -u root -p  123456
//use Student
//drop table Student
//select * from Student
//insert into Student values ("hhh","12","23","31");

public class mysqltest {
	static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	static final String DB_URL = "jdbc:mysql://localhost:3306/Student?serverTimezone=UTC";
	static final String USER = "root";
	static final String PASS = "123456";

	public static void main(String[] args) {
		Connection conn = null;
		Statement stmt = null;
		try {
			Class.forName(JDBC_DRIVER);
			// 打开连接
			System.out.println("连接数据库");
			conn = DriverManager.getConnection(DB_URL, USER, PASS);
			stmt = conn.createStatement();
			// 删除表
			stmt.executeUpdate("DROP TABLE Student");
			// 创建表
			System.out.println("创建表");
			if (0 == stmt.executeUpdate(
					"CREATE TABLE Student(name varchar(10) not null,English int(4),Math int(4),Computer int(4))")) {
				System.out.println("创建表成功");
			} else {
				System.out.println("创建表失败");
			}
			// 插入一行数据 Name:scofield English:45 Math:89 Computer:100
			stmt.executeUpdate("INSERT INTO Student VALUES('scofield',45,89,100)");
			// 获取 scofield 的 English 成绩信息
			ResultSet rs = stmt.executeQuery("select English from Student where Name='scofield'");
			while (rs.next()) {
				int en_score = rs.getInt("English");
				System.out.println(en_score);
			}
		} catch (SQLException se) {
			// 处理 JDBC 错误
			se.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

2、HBase 数据库操作
见大数据实验一:大数据系统基本实验(第三部分:熟悉常用的 HBase 操作)

3、Redis 数据库操作

import redis.clients.jedis.Jedis;

//redis shell
//redis-cli
//ping
//hgetall "Student.scofield"

public class redistest {
	public static void main(String[] args) {
		// 连接本地的 Redis 服务
		Jedis jedis = new Jedis("localhost");
		System.out.println("连接成功");
		// 查看服务是否运行
		System.out.println("服务正在运行: " + jedis.ping());
		// 添加数据
		Map map = new HashMap();
		map.put("English", "45");
		map.put("Math", "89");
		map.put("Computer", "100");
		jedis.hmset("Student.scofield", map);
		// 获取 scofield 的 English 成绩信息
		List rsmap = jedis.hmget("Student.scofield", "English");
		System.out.println(rsmap);
	}
}

4、MongDB 数据库操作

import static org.junit.Assert.fail;

import java.net.UnknownHostException;
import com.mongodb.*;
import com.mongodb.client.model.Filters;

import java.util.*;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;

//mongo shell
//mongo
//use Student
//db.Student.find()

public class mongdbtest {
	public static void main(String[] args) throws UnknownHostException {
		Mongo mongo = new Mongo("localhost", 27017);
		DB db = mongo.getDB("Student");
		DBCollection collection = db.getCollection("Student");
		// 添加数据
		BasicDBObject bdo = new BasicDBObject();
		bdo.put("name", "scofield");
		List score=new ArrayList();
		score.add(BasicDBObjectBuilder.start().add("English",45).add("Math", 89).add("Computer", 100).get());
		bdo.put("score", score);
		collection.insert(bdo);
		//获取 scofield 的所有成绩信息(只显示 score 列)
		BasicDBObject query=new BasicDBObject();
		query.put("_id",false);
		query.put("name", false);
		System.out.println(collection.findOne(new BasicDBObject("name","scofield"),query));
	}
}

你可能感兴趣的:(大数据,大数据,java)