使用MySQL实例进行应用开发

切换到 sdbadmin 用户

部署 SequoiaDB 巨杉数据库和 SequoiaSQL-MySQL 实例的操作系统用户为 sdbadmin 。

su - sdbadmin

用户 sdbadmin 的密码为 sdbadmin

查看巨杉数据库版本
查看 SequoiaDB 巨杉数据库引擎版本:

sequoiadb --version

查看服务状态

查看 SequoiaDB 巨杉数据库引擎节点列表:sdblist

操作截图:

图片描述

Note:

如果显示的节点数量与预期不符,请稍等初始化完成并重试该步骤。
C: 编目节点,S:协调节点,D:数据节点

查看 MySQL 实例是否已经启动
/opt/sequoiasql/mysql/bin/sdb_sql_ctl status

操作截图:

图片描述

Note:

如果 PID 显示为空,请稍等初始化完成并重试该步骤

使用 MySQL shell 进行操作

1)登录 MySQL shell;

/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root
copy
2)查看 MySQL 存储引擎,确认默认存储引擎为 SequoiaDB;

SHOW ENGINES;

3)创建数据库;

CREATE DATABASE company;
USE company;

4)创建包含自增主键字段的 employee 表;

CREATE TABLE employee
(
empno INT AUTO_INCREMENT PRIMARY KEY,
ename VARCHAR(128),
age INT
);

基本数据操作

SequoiaDB 巨杉数据库的 MySQL 实例支持完整的 CRUD 数据基本操作,本小节仅写入部分测试数据。

1)写入测试数据;

INSERT INTO employee VALUES (10001, 'Georgi', 48);
INSERT INTO employee VALUES (10002, 'Bezalel', 21);
INSERT INTO employee VALUES (10003, 'Parto', 33);
INSERT INTO employee VALUES (10004, 'Chirstian', 40);
INSERT INTO employee VALUES (10005, 'Kyoichi', 23);
INSERT INTO employee VALUES (10006, 'Anneke', 19);
copy
2)退出 MySQL Shell;\q

Java 语言操作 MySQL 实例中的数据

本节内容主要用来演示 Java 语言操作 SequoiaSQL-MySQL 实例中的数据,为相关开发人员提供参考。源码已经放置在 /home/sdbadmin/source 目录下。

1)进入源码放置目录;

cd /home/sdbadmin/source/mysql
copy
2)查看 java 文件,一共5个文件;

ls -trl

MySQLConnection.java 连接数据库类
Insert.java 写入数据类
Select.java 查询数据类
Update.java 更新数据类
Delete.java 删除数据类
3)对 java 文件进行编译;
javac -d . *.java

写入数据

本小节介绍如何使用 MySQL 的 JAVA 驱动连接 SequoiaSQL-MySQL 实例并写入数据。

1)运行 Insert 类的代码;

java -cp .:../mysql-connector-java-5.1.48.jar
com.sequoiadb.mysql.Insert

2)Insert 类代码如下:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Insert {
    private static String url = "jdbc:mysql://127.0.0.1:3306/company?useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static String username = "root";
    private static String password = "";
    public static void main(String[] args) throws SQLException {
        insert();
    }

    public static void insert() throws SQLException {
        MySQLConnection mysqlConnection = new MySQLConnection(url, username, password);

        Connection connection = mysqlConnection.getConnection();
        String sql = "INSERT INTO employee VALUES";
        PreparedStatement psmt = connection.prepareStatement("");
        StringBuffer sb = new StringBuffer();
        sb.append("(").append(20001).append(",").append("'Quincy'").append(",").append(30).append("),");
        sb.append("(").append(20002).append(",").append("'Newton'").append(",").append(31).append("),");
        sb.append("(").append(20003).append(",").append("'Dan'").append(",").append(32).append("),");

        sb.deleteCharAt(sb.length() - 1);
        sql = sql + sb.toString();
        System.out.println(sql);
        psmt.addBatch(sql);
        psmt.executeBatch();
        connection.close();
    }
}

查询数据

本小节介绍如何使用 MySQL 的 JAVA 驱动连接 SequoiaSQL-MySQL 实例并查询数据。

1)运行 Select 类的代码;

java -cp .:../mysql-connector-java-5.1.48.jar com.sequoiadb.mysql.Select
copy
2)Select 类代码如下:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Select {
    private static String url = "jdbc:mysql://127.0.0.1:3306/company?useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static String username = "root";
    private static String password = "";

    public static void main(String[] args) throws SQLException {
        select();
    }

    public static void select() throws SQLException {
        MySQLConnection mysqlConnection = new MySQLConnection(url, username, password);

        Connection connection = mysqlConnection.getConnection();
        String sql = "select * from employee";
        PreparedStatement psmt = connection.prepareStatement(sql);
        ResultSet rs = psmt.executeQuery();
        System.out.println("----------------------------------------------------------------------");
        System.out.println("empno  \t ename \t age ");
        System.out.println("----------------------------------------------------------------------");
        while(rs.next()){
            Integer empno = rs.getInt("empno");
            String ename = rs.getString("ename");
            String age = rs.getString("age");

            System.out.println(empno + "\t" + ename + "\t" + age );
        }
        connection.close();
    }
}

更新数据

本小节介绍如何使用 MySQL 的 JAVA 驱动连接 SequoiaSQL-MySQL 实例并更新数据。

1)运行 Update 类代码;

java -cp .:../mysql-connector-java-5.1.48.jar com.sequoiadb.mysql.Update

2)查询确认10001雇员的年龄已经被更改为 49;

java -cp .:../mysql-connector-java-5.1.48.jar
com.sequoiadb.mysql.Select

3)Update 类代码如下:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Update {
    private static String url = "jdbc:mysql://127.0.0.1:3306/company?useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static String username = "root";
    private static String password = "";

    public static void main(String[] args) throws SQLException {
        update();
    }

    public static void update() throws SQLException {
        MySQLConnection mysqlConnection = new MySQLConnection(url, username, password);

        Connection connection = mysqlConnection.getConnection();
        String sql = "update employee set age = ? where empno = ?";
        PreparedStatement psmt = connection.prepareStatement(sql);
        psmt.setInt(1, 49);
        psmt.setInt(2, 10001);
        psmt.execute();

        connection.close();
    }
}

删除数据

本小节介绍如何使用 MySQL 的 JAVA 驱动连接 SequoiaSQL-MySQL 实例并删除数据。

1)运行 Delete 类的代码;

java -cp .:../mysql-connector-java-5.1.48.jar com.sequoiadb.mysql.Delete

2)查询确认 empno 为 10006 的雇员信息已经被删除;

java -cp .:../mysql-connector-java-5.1.48.jar com.sequoiadb.mysql.Select

3)Delete 类代码如下:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Delete {
    private static String url = "jdbc:mysql://127.0.0.1:3306/company?useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static String username = "root";
    private static String password = "";

    public static void main(String[] args) throws SQLException {
        delete();
    }

    public static void delete() throws SQLException {
        MySQLConnection mysqlConnection = new MySQLConnection(url, username, password);

        Connection connection = mysqlConnection.getConnection();
        String sql = "delete from employee where empno = ?";
        PreparedStatement psmt = connection.prepareStatement(sql);
        psmt.setInt(1, 10006);
        psmt.execute();
        connection.close();
    }
}

总结

SequoiaSQL-MySQL 实例完全兼容 MySQL 语法,使用 MySQL 的驱动即可完成对 MySQL 实例的数据操作。应用从原生 MySQL 切换到 SequoiaDB 巨杉数据库可以做到平滑迁移,无需修改代码。

全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
07-15 11:43
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务