.实验内容与完成情况:(实验具体步骤和实验截图说明)
(一) MySQL 数据库操作
学生表 Student
Name English Math Computer zhangsan
lisi 根据上面给出的 Student 表,在 MySQL 数据库中完成如下操作:
()在 MySQL 中创建 Student 表,并录入数据;
()用 SQL 语句输出 Student 表中的所有记录;
()查询 zhangsan 的 Computer 成绩;
()修改 lisi 的 Math 成绩, 改为 。
根据上面已经设计出的 Student 表,使用 MySQL 的 JAVA 客户端编程实现以下操作:
(1)向 Student 表中添加如下所示的一条记录:
scofield 源代码:
package com.mysql; import java.sql.*; public class MysqlTest {
static final String driver="com.mysql.jdbc.Driver";
static final String DB="jdbc:mysql://localhost/test1";
static final String user="root";
static final String password="wangli";
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(DB,user,password);
stmt=conn.createStatement();
String sql="insert into Student values('scofied',45,89,100)";
stmt.executeUpdate(sql);
System.out.println("插入成功!"); } catch (SQLException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(stmt!=null) { try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }
} (2) 获取 scofield 的 English 成绩信息
源代码:
package com.mysql; import java.sql.*; public class MysqlTest {
static final String driver="com.mysql.jdbc.Driver";
static final String DB="jdbc:mysql://localhost/test1";
static final String user="root";
static final String password="wangli";
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName(driver);
conn=DriverManager.getConnection(DB,user,password);
stmt=conn.createStatement();
String sql="select Name,English from Student where Name='scofied' "; rs=stmt.executeQuery(sql);
System.out.println("name"+"\t\t"+"English");
while(rs.next()) {
System.out.print(rs.getString()+"\t\t");
System.out.println(rs.getString());
}
System.out.println("输出完成!"); } catch (SQLException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(stmt!=null) { try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
(二) HBase 数据库操作
学生表 Student
name score
English Math Computer
zhangsan
lisi 根据上面给出的学生表 Student 的信息, 执行如下操作:
() 用 Hbase Shell 命令创建学生表 Student;
()用 scan 命令浏览 Student 表的相关信息;
()查询 zhangsan 的 Computer 成绩;
()修改 lisi 的 Math 成绩, 改为 。
.根据上面已经设计出的 Student 表, 用 HBase API 编程实现以下操作:
()添加数据: English: Math: Computer:
scofield 源代码:
package hbase_test;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table; public class HBaseTest {
public static Configuration configuration;
public static Connection connection;
public static Admin admin; public static void main(String[] args) {
configuration=HBaseConfiguration.create();
configuration.set("hbase.rootdir", "hdfs://localhost:9000/hbase");
try {
connection=ConnectionFactory.createConnection(configuration);
admin=connection.getAdmin();
insertRow("Student","scofield","score","English","");
insertRow("Student","scofield","score","Math","");
insertRow("Student","scofield","score","Computer","");
System.out.println("插入成功!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} close();
} public static void insertRow(String tableName, String rowKey, String colFamily, String col, String val) {
try {
Table table = connection.getTable(TableName.valueOf(tableName));
Put put = new Put(rowKey.getBytes());
put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());
table.put(put);
table.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public static void close() { try {
if (admin != null) {
admin.close();
}
if(null!=connection) {
connection.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
(2)获取 scofield 的 English 成绩信息。
源代码:
package hbase_test; import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table; public class HBaseTest2 {
public static Configuration configuration;
public static Connection connection;
public static Admin admin; public static void main(String[] args) {
configuration=HBaseConfiguration.create();
configuration.set("hbase.rootdir", "hdfs://localhost:9000/hbase");
try {
connection=ConnectionFactory.createConnection(configuration);
admin=connection.getAdmin();
getData("Student","scofield","score","English");
System.out.println("输出完成!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} close();
} public static void getData(String tableName, String rowKey, String colFamily, String col) {
try {
Table table = connection.getTable(TableName.valueOf(tableName));
Get get=new Get(rowKey.getBytes());
get.addColumn(colFamily.getBytes(), col.getBytes());
Result result=table.get(get);
showCell(result);
table.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } private static void showCell(Result result) {
Cell[] cells=result.rawCells();
for(Cell cell:cells) {
System.out.println("RowName:"+new String(CellUtil.cloneRow(cell))+" ");
System.out.println("Timetamp:"+cell.getTimestamp()+" ");
System.out.println("column Family"+new String(CellUtil.cloneFamily(cell))+" ");
System.out.println("row Name:"+new String(CellUtil.cloneValue(cell))+" ");
System.out.println("value"+new String(CellUtil.cloneValue(cell))+" "); } } public static void close() { try {
if (admin != null) {
admin.close();
}
if(null!=connection) {
connection.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } } (三) Redis 数据库操作
Student 键值对如下:
zhangsan:{
English:
Math:
Computer:

lisi:{
English:
Math:
Computer:
} . 根据上面给出的键值对, 完成如下操作:
()用 Redis 的哈希结构设计出学生表 Student (键值可以用 student.zhangsan 和 student.lisi来表示两个键值属于同一个表);
() 用 hgetall 命令分别输出 zhangsan 和 lisi 的成绩信息;
() 用 hget 命令查询 zhangsan 的 Computer 成绩;
()修改 lisi 的 Math 成绩, 改为 。
.根据上面已经设计出的学生表 Student, 用 Redis 的 JAVA 客户端编程(jedis),实现如下
操作:
()添加数据: English: Math: Computer:
该数据对应的键值对形式如下:
scofield:{
English:
Math:
Computer: }
(四) MongoDB 数据库操作
Student 文档如下:
{
“name”: “zhangsan”,
“score”: {
“English”: ,
“Math”: ,
“Computer”:
} } {
“name”: “lisi”,
“score”: {
“English”: ,
“Math”: ,
“Computer”:
} } .根据上面给出的文档,完成如下操作:
() 用 MongoDB Shell 设计出 student 集合;
()用 find()方法输出两个学生的信息;
()用 find()方法查询 zhangsan 的所有成绩(只显示 score 列);
()修改 lisi 的 Math 成绩, 改为 。
.根据上面已经设计出的 Student 集合,用 MongoDB 的 Java 客户端编程,实现如下操作:
() 添加数据: English: Math: Computer: 与上述数据对应的文档形式如下:
{
“name”: “scofield”,
“score”: {
“English”: ,
“Math”: ,
“Computer”:
} } 源代码:
package com.mongo; import java.util.ArrayList;
import java.util.List; import org.bson.Document; import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; public class MongoTest {
public static void main(String[] args) {
MongoClient mongoClient=new MongoClient("localhost",);
MongoDatabase mongoDatabase=mongoClient.getDatabase("student");
MongoCollection<Document> collection=mongoDatabase.getCollection("student");
Document document=new Document("name","scofield").append("score",
new Document("English",).append("Math", ).append("Computer",
));
List<Document> documents=new ArrayList<Document>();
documents.add(document);
collection.insertMany(documents);
System.out.println("文档插入成功!");
} }
实验截图: (2)获取 scofield 的所有成绩成绩信息(只显示 score 列)
源代码: package com.mongo; import org.bson.Document; import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase; public class MongoTest2 { public static void main(String[] args) {
MongoClient mongoClient=new MongoClient("localhost",);
MongoDatabase mongoDatabase=mongoClient.getDatabase("student");
MongoCollection<Document> collection=mongoDatabase.getCollection("student");
MongoCursor<Document> cursor=collection.find(new Document("name","scofield")).
projection(new Document("score",).append("_id", )).iterator();
while(cursor.hasNext())
System.out.println(cursor.next().toJson());
}
}

linux中mysql,mongodb,redis,hbase数据库操作的更多相关文章

  1. Scrapy连接到各类数据库(SQLite,Mysql,Mongodb,Redis)

    如何使用scrapy连接到(SQLite,Mysql,Mongodb,Redis)数据库,并把爬取的数据存储到相应的数据库中. 一.SQLite 1.修改pipelines.py文件加入如下代码 # ...

  2. 数据库们~MySQL~MongoDB~Redis

    mysql基础 mysql进阶 python操作mysql MongoDB Redis

  3. Linux中python3,django,redis以及mariab的安装

    1. Linux中python3,django,redis以及mariab的安装 2. CentOS下编译安装python3 编译安装python3.6的步骤 1.下载python3源码包 wget ...

  4. linux中MySQL主从配置(Django实现主从读写分离)

    一 linux中MySQL主从配置原理(主从分离,主从同步) mysql主从配置的流程大体如图: 1)master会将变动记录到二进制日志里面: 2)master有一个I/O线程将二进制日志发送到sl ...

  5. 转载-清除Linux中MySQL的使用痕迹~/.mysql_history

    原文地址:清除Linux中MySQL的使用痕迹~/.mysql_history 作者:RogerZhuo 原贴:http://bbs.chinaunix.net/thread-3676498-1-1. ...

  6. 回顾:Linux环境 Mysql新建用户和数据库并授权

    回顾:Linux环境 Mysql新建用户和数据库并授权 一.新建用户 //登录Mysql @>mysql -u root -p @>密码 //创建用户 mysql> insert i ...

  7. hbase数据库操作

    .实验内容与完成情况:(实验具体步骤和实验截图说明) (一)编程实现以下指定功能,并用 Hadoop 提供的 HBase Shell 命令完成相同任务: () 列出 HBase 所有的表的相关信息,例 ...

  8. Python交互数据库(Mysql | Mongodb | Redis)

    数据库 Mysql Mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品 MyS ...

  9. Linux中mysql的操作

    一.mysql服务操作 二.数据库操作 三.数据表操作 四.修改表结构 五.数据备份和恢复 六.卸载数据库

随机推荐

  1. JAVA语法规则总结

    单继承多实现 抽象类  抽象方法 使用关键字:abstract修饰的方法就是抽象方法; 抽象方法的形式:只有方法的声明,没有方法体; 抽象方法一般存在于父类中,相当于强制要求子类必须重写该方法,相当于 ...

  2. PCL—关键点检测(NARF)低层次点云处理

    博客转载自:http://www.cnblogs.com/ironstark/p/5051533.html 关键点检测本质上来说,并不是一个独立的部分,它往往和特征描述联系在一起,再将特征描述和识别. ...

  3. Java Collection.RP

    在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结 ...

  4. Business Trip to Taian

    工作必备 电脑.电源(下载好小助手.VPN.个人证书) 手机.充电器 重要参考书籍 生活用品 衣服,夏天体恤为主,别忘了加件外套 被罩.床单和枕巾 牙刷牙膏肥皂之类的必带,中号浴巾一条 拖鞋要不要? ...

  5. java 字符流 字节流

    java对文本文档进行操作(拷贝.显示)出现乱码一般来说,可以从两个方面入手. 1.文本文件本身的编码格式. 2.java代码中处理文本文件的编码格式. 这里要注意的一点是,我们可以看出copyFil ...

  6. Cactus在jexus上安装

    在成功安装完Mono和jexus后(强烈建议Mono 4.2.1以上,jexus 5.6.1 以上,本人测试环境就是Mono 4.2.1和jexus 5.6.1) 第一步: 先配置jexus安装目录下 ...

  7. Aspose.Words CookieBook

    Aspose.Words.dll  版本 13.1.0.0 [原创]Aspose.Words组件介绍及使用—基本介绍与DOM概述 插入分页符 DocumentBuilder builder = new ...

  8. code manager tools myeclipse10 svn插件安装及使用

    一.下载: 1.在线安装地址:http://subclipse.tigris.org/update_1.6.x 2.安装包下载地址:http://subclipse.tigris.org/servle ...

  9. nginx: [emerg] directive "location" has no opening "{" in /usr/local/nginx//conf/nginx.conf:75

    1.报错:[emerg]directive "location" has no opening "{" in ..... 解决方法: 由于对应行或者附近行的“{ ...

  10. Python中logging模块的基本用法

    在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 ...