用java程序连接虚拟机中的SequoiaDB-Mysql实例

工具及其版本:

  • 虚拟机软件:VMWare

  • 虚拟机操作系统:ubantu 16.04.7

  • 数据库:SequoiaDB v5

  • 开发工具:IDEA 2020.2.4

  • 数据库远程连接:Navicat

设置虚拟机网络

在虚拟机处于关机状态下,在VMWare中选中目标虚拟机,右键并选择设置,进入设置界面

在虚拟机设置界面中,完成如下设置。使用NAT模式连接网络,点击确定

主机与虚拟机通信

确保主机和虚拟机可以ping通,这一步骤网上的教程很多,有问题的话可以查一查具体解决方法。

在主机的cmd中,用ipconfig/all命令查找ip地址,图中的IPv4一栏就是ip地址

在虚拟机的终端内,用ping + ip地址的命令与主机连接(按ctrl + C停止)

 在虚拟机终端内,用ifconfig命令查询ip地址。显示内容的第二行(inet地址)就是虚拟机的ip地址

 在主机的cmd内,同样用ping + IP地址的命令与虚拟机取得连接

在navicat中连接到虚拟机中的数据库

在确保主机与虚拟机可以通信之后,在navicat中新建连接。

巨杉数据库有许多实例可以进行连接,这里用的是Mysql实例;

 这里的连接名可以随便取一个,主机一栏要填写上面查询到的虚拟机的ip地址,用户名和密码则是数据库的用户名与密码,设置的话可以在mysql上进行设置,具体设置方式可以参考Mysql的用户和密码的设置。

 点击连接测试后,如果显示如下的连接成功,就说明虚拟机的数据库可以被主机连接到了。

 navicat工具中可以看到可视化的数据图表,方便后面写java不断的测试和调试。

在Java程序中连接到SequoiaDB的Mysql实例 

    import java.io.FileInputStream;
    import java.nio.file.Path;
    import java.sql.*;
    import java.io.*;
    import java.util.ArrayList;

    //属性
    String databaseName="fileManager";//数据库名
    String user = "root";//数据库用户账号
    String pwd = "passwd";//数据库密码
    String URL = "jdbc:mysql://192.168.88.130:3306/"+databaseName+"?useSSL=false&serverTimezone=UTC";//这里的ip地址需要设置成虚拟机的ip地址
    String DRIVER = "com.mysql.cj.jdbc.Driver";
    
    //上传文件功能
    public String upload(String filetype, String name ,long size, String date,String path){
        FileInputStream fis = null;
        try{
            //拿到指定路径下的本地文件
            fis = new FileInputStream(path);
        }
        catch (IOException e){
            e.printStackTrace();
        }


        Connection connection = null;
        Statement statement = null;
        //连接数据库
        try {
            //启动JDBC驱动
            Class.forName(DRIVER);
            //连接数据库
            connection = DriverManager.getConnection(URL, user, pwd);
            statement = connection.createStatement();
            //mysql语句
            String insert = "INSERT INTO "+filetype+ " (name,size,date,file) VALUES (?,?,?,?);";

            //创建执行器
            PreparedStatement ps = connection.prepareStatement(insert);
            ps.setString(1,name);
            ps.setLong(2,size);
            ps.setString(3,date);
            ps.setBlob(4,fis);
            //插入数据
            ps.executeUpdate();
            ps.close();
            connection.close();

            fis.close();
        }
        //下面是异常处理
        catch (SQLException | ClassNotFoundException | IOException e) {
            e.printStackTrace();
        }
        finally {
            try {
                if (statement != null)statement.close();
                if(connection!=null)connection.close();
            }
            catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

        return "上传成功";
    }

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值