在play中如何查看h2 数据库中的数据

      在Activator UI中有大量的temple使用的是H2这个内存数据库,使用这个数据库有很多好处,但是大家搞不清楚如何在play中合理的使用它,在此,我经过研究,把相对合理的使用方法告诉给大家。

       单独使用H2 database想必大家都会,就是从官网下载http://www.h2database.com/html/main.html,然后解压,然后运行解压bin目录中的h2.bat可执行文件,然后出现,如下页面,就可以正常的使用了:

     

   但是,尝试运行过play中的temple你就会发现:大部分使用H2 database作为sample的应用程序都在sbt中添加了如下图的H2 database的依赖,

如果某些sample使用了h2 database,却没有添加此依赖,请自行加上!然后问题来了:sample跑起来之后,没有报错,并且,在应用程序上进行添加、修改等操作都可以,

但是如何查看应用程序添加或修改的数据呢?如何打开如上图所示的H2 database链接的网页呢?我相信刚开始使用play的同学绝对会有此困惑!

其实也很简单,假如我有如下的sample程序:

1、我只需打开sbt或者activator控制台:

2、不要着急运行sample程序,先运行h2的browser指令:h2-browser

之后就会出现h2 database的链接页面了:

注意:数据源信息都复合play中的连接信息哦!,所以直接点链接就可以

3、最后在run sample程序,

 

最后,程序跑起来之后,就可以正常的查看H2 database中的信息啦!

更多精彩内容,请关注我的微信公众账号 互联网技术窝

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在多线程解码网络视频数据,可以使用Qt的QThread类来实现。具体步骤如下: 1. 创建一个QThread对象,并将其moveToThread()到一个新线程。 2. 在新线程创建一个QMediaPlayer对象,用于解码网络视频数据。 3. 将QMediaPlayer对象的setMedia()方法设置为网络视频数据的URL。 4. 在QMediaPlayer对象的stateChanged()信号,判断状态是否为QMediaPlayer::LoadedMedia,如果是则调用QMediaPlayer对象的play()方法开始播放视频数据。 5. 在QMediaPlayer对象的videoOutputChanged()信号,获取QVideoWidget对象,设置其作为QMediaPlayer的视频输出,并将其添加到QWidget。 6. 在新线程启动QCoreApplication::exec()方法,等待事件循环。 具体代码实现如下: ```cpp class VideoDecoder : public QObject { Q_OBJECT public: explicit VideoDecoder(QObject *parent = nullptr) : QObject(parent) {} public slots: void decodeVideo(const QString &url) { QMediaPlayer *player = new QMediaPlayer; QVideoWidget *videoWidget = new QVideoWidget; player->setMedia(QUrl(url)); player->setVideoOutput(videoWidget); connect(player, &QMediaPlayer::stateChanged, this, [player]() { if (player->state() == QMediaPlayer::LoadedMedia) { player->play(); } }); connect(player, &QMediaPlayer::videoOutputChanged, this, [videoWidget](QVideoWidget *vw) { videoWidget = vw; videoWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); videoWidget->setStyleSheet("background-color:black;"); videoWidget->show(); }); QThread *thread = new QThread; connect(thread, &QThread::started, player, &QMediaPlayer::play); connect(thread, &QThread::finished, player, &QMediaPlayer::stop); connect(thread, &QThread::finished, thread, &QThread::deleteLater); connect(thread, &QThread::destroyed, player, &QMediaPlayer::deleteLater); player->moveToThread(thread); thread->start(); QCoreApplication::exec(); } }; ``` 在主线程,创建VideoDecoder对象,调用其decodeVideo()方法,传入网络视频数据的URL即可在新线程解码网络视频数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜刚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值