赞
踩
一、 实验目的
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<String, String> map = new HashMap<String, String>(); map.put("English", "45"); map.put("Math", "89"); map.put("Computer", "100"); jedis.hmset("Student.scofield", map); // 获取 scofield 的 English 成绩信息 List<String> 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)); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。