1.准备环境

2.1 开发工具

IDEA2019  微信开发者工具 PostMan SQLYog

2.2 开发环境

Java+mysql+JavaScript+json

2. 简介

前后端分离,在微信开发者工具中写页面以及跳转,在数据库中写入音乐类型 专辑名称 演唱者 以及音乐的url ,通过Java 将数据库中的数据获取出来封装成 json 通过url进行传值,在前端进行解析展示出来

3.代码

sql:创建数据库 表 插入数据

/*
SQLyog Ultimate v13.1.1 (64 bit)
MySQL - 5.7.29 : Database - wyy_music
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`wyy_music` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `wyy_music`;/*Table structure for table `tb_music` */DROP TABLE IF EXISTS `tb_music`;CREATE TABLE `tb_music` (`music_id` int(11) NOT NULL AUTO_INCREMENT,`music_name` varchar(255) NOT NULL,`music_album_name` varchar(255) NOT NULL,`music_album_picUrl` varchar(255) NOT NULL,`music_mp3Url` varchar(255) NOT NULL,`music_artist_name` varchar(255) NOT NULL,`sheet_id` int(11) DEFAULT NULL,PRIMARY KEY (`music_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `tb_music` */insert  into `tb_music`(`music_id`,`music_name`,`music_album_name`,`music_album_picUrl`,`music_mp3Url`,`music_artist_name`,`sheet_id`) values
(1,'光年之外','光年之外','https://imgessl.kugou.com/stdmusic/20161229/20161229233400375274.jpg','https://webfs.ali.kugou.com/202109271010/183cab94955d96aee0120d1d4677540d/KGTX/CLTX001/f87095bff0de7c636c3a3b8aac702d76.mp3','G.E.M.邓紫棋',1),
(2,'夜空中最亮的星','世界','https://imgessl.kugou.com/stdmusic/20150719/20150719010047203836.jpg','https://webfs.tx.kugou.com/202109271011/8ac45da301d093ccdd58111ad91371eb/G202/M04/1B/13/aocBAF55G0-ADd0HAD2Y88Efqbw072.mp3','逃跑计划',1),
(3,'只要平凡','只要平凡','https://y.qq.com/music/photo_new/T002R300x300M000000K7srf1rZtOX.jpg?max_age=2592000','https://webfs.ali.kugou.com/202109271009/ac5e4c1b2e0e14cc1fc06d6ef8bbd286/KGTX/CLTX001/38aead7ed546b0736791ebb25c3a3951.mp3','张杰/张碧晨',2),
(4,'你要跳舞吗','生命因你而火热','https://imgessl.kugou.com/stdmusic/20160407/20160407002744966139.jpg','https://webfs.ali.kugou.com/202109271014/fd2f5cee5791b2ed79bd65490c5af5a7/KGTX/CLTX001/58ffa0221ed9397e7ad9b889cdbe1a4a.mp3','新裤子乐队',2);/*Table structure for table `tb_sheet` */DROP TABLE IF EXISTS `tb_sheet`;CREATE TABLE `tb_sheet` (`id` int(11) NOT NULL AUTO_INCREMENT,`sheet_name` varchar(255) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;/*Data for the table `tb_sheet` */insert  into `tb_sheet`(`id`,`sheet_name`) values
(1,'热歌榜'),
(2,'新歌榜'),
(3,'原创榜'),
(6,'抖音榜');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

文件结构

     

我是通过druid连接的数据库

druid.properties配置文件

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/wyy_music?useSSL=false
username=root
password=1234initialSize=5
maxActive=20
maxWait=2000

JdbcUtil

package com.java.util;import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;import javax.sql.DataSource;
import java.io.InputStream;
import java.util.Properties;//使用DBUtils的工具类
public class JdbcUtil {//声明DataSource对象private static DataSource dataSource;//静态代码块static {try {//读取db.properties文件InputStream resourceAsStream = JdbcUtil.class.getResourceAsStream("/druid.properties");//创建Properties对象Properties properties = new Properties();//加载流对象properties.load(resourceAsStream);//创建数据源对象dataSource = DruidDataSourceFactory.createDataSource(properties);} catch (Exception e) {e.printStackTrace();}}//获取DButils中核心类对象QueryRunner对象public static QueryRunner getQueryRunner(){return new QueryRunner(dataSource);//此时已经连接上数据库了}}

实体类层 pojo

Music类

package com.java.pojo;import java.io.Serializable;//实体类
public class Music implements Serializable {private Integer musicId;private String musicName;private String musicAlbumName;private String musicAlbumPicurl;private String musicMp3url;private String musicArtistName;private String sheetId;public Integer getMusicId() {return musicId;}public void setMusicId(Integer musicId) {this.musicId = musicId;}public String getMusicName() {return musicName;}public void setMusicName(String musicName) {this.musicName = musicName;}public String getMusicAlbumName() {return musicAlbumName;}public void setMusicAlbumName(String musicAlbumName) {this.musicAlbumName = musicAlbumName;}public String getMusicAlbumPicurl() {return musicAlbumPicurl;}public void setMusicAlbumPicurl(String musicAlbumPicurl) {this.musicAlbumPicurl = musicAlbumPicurl;}public String getMusicMp3url() {return musicMp3url;}public void setMusicMp3url(String musicMp3url) {this.musicMp3url = musicMp3url;}public String getMusicArtistName() {return musicArtistName;}public void setMusicArtistName(String musicArtistName) {this.musicArtistName = musicArtistName;}public String getSheetId() {return sheetId;}public void setSheetId(String sheetId) {this.sheetId = sheetId;}@Overridepublic String toString() {return "Music{" +"musicId=" + musicId +", musicName='" + musicName + '\'' +", musicAlbumName='" + musicAlbumName + '\'' +", musicAlbumPicurl='" + musicAlbumPicurl + '\'' +", musicMp3url='" + musicMp3url + '\'' +", musicArtistName='" + musicArtistName + '\'' +", sheetId='" + sheetId + '\'' +'}';}
}

sheet类

package com.java.pojo;public class Sheet {private Integer id;private String sheetName;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getSheetName() {return sheetName;}public void setSheetName(String sheetName) {this.sheetName = sheetName;}@Overridepublic String toString() {return "Sheet{" +"id=" + id +", sheetName='" + sheetName + '\'' +'}';}
}

dao层

package com.java.dao;import com.java.pojo.Music;import java.util.List;public interface MusicDao {public List<Music> findAll();public Music findById(String musicId);public List<Music> findByMusicName(String musicName);
}
package com.java.dao;import com.java.pojo.Sheet;import java.util.List;public interface SheetDao {public List<Sheet> getSheet();public void insertSheet(String sheetName);
}

dao层实现类

package com.java.dao.impl;import com.java.dao.MusicDao;
import com.java.pojo.Music;
import com.java.util.JdbcUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;public class MusicDaoImpl implements MusicDao {@Overridepublic List<Music> findAll() {String sql = "select music_id musicId,music_name musicName,music_album_name musicAlbumName," +"music_album_picUrl musicAlbumPicurl,music_mp3Url musicMp3url," +"music_artist_name musicArtistName,sheet_id sheetId from tb_music";QueryRunner queryRunner = JdbcUtil.getQueryRunner();List<Music> musicList = null;try {musicList = queryRunner.query(sql, new BeanListHandler<Music>(Music.class));} catch (SQLException e) {e.printStackTrace();}return musicList;}@Overridepublic Music findById(String musicId) {String sql = "select music_id musicId,music_name musicName,music_album_name musicAlbumName," +"music_album_picUrl musicAlbumPicurl,music_mp3Url musicMp3url," +"music_artist_name musicArtistName,sheet_id sheetId from tb_music where music_id = ?";QueryRunner queryRunner = JdbcUtil.getQueryRunner();Music music = null;try {music = queryRunner.query(sql, new BeanHandler<Music>(Music.class), musicId);} catch (SQLException e) {e.printStackTrace();}return music;}@Overridepublic List<Music> findByMusicName(String musicName) {String sql = "select music_id musicId,music_name musicName,music_album_name musicAlbumName," +"music_album_picUrl musicAlbumPicurl,music_mp3Url musicMp3url," +"music_artist_name musicArtistName,sheet_id sheetId from tb_music where music_name like ?";QueryRunner queryRunner = JdbcUtil.getQueryRunner();List<Music> musicList = null;try {musicList = queryRunner.query(sql, new BeanListHandler<Music>(Music.class), "%" + musicName + "%");} catch (SQLException e) {e.printStackTrace();}return musicList;}
}
package com.java.dao.impl;import com.java.dao.SheetDao;
import com.java.pojo.Sheet;
import com.java.util.JdbcUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;public class SheetDaoImpl implements SheetDao {@Overridepublic List<Sheet> getSheet() {String sql = "select id,sheet_name sheetName from tb_sheet";QueryRunner queryRunner = JdbcUtil.getQueryRunner();List<Sheet> query = null;try {query = queryRunner.query(sql, new BeanListHandler<Sheet>(Sheet.class));} catch (SQLException e) {e.printStackTrace();}return query;}@Overridepublic void insertSheet(String sheetName) {String sql = "insert into tb_sheet(sheet_name) values (?)";QueryRunner queryRunner = JdbcUtil.getQueryRunner();try {int update = queryRunner.update(sql,sheetName);} catch (SQLException e) {e.printStackTrace();}}
}

service层

package com.java.service;import com.java.pojo.Music;import java.util.List;public interface MusicService {public List<Music> findAll();public Music findById(String musicId);public List<Music> findByMusicName(String musicName);public Music nextSong(String musicId);public Music lastSong(String musicId);
}
package com.java.service;import com.java.pojo.Sheet;import java.util.List;public interface SheetService {public List<Sheet> getSheet();public void addSheet(String sheetName);
}
package com.java.service.impl;import com.java.dao.MusicDao;
import com.java.dao.impl.MusicDaoImpl;
import com.java.pojo.Music;
import com.java.service.MusicService;import java.util.List;public class MusicServiceImpl implements MusicService {@Overridepublic List<Music> findAll() {MusicDao musicDao = new MusicDaoImpl();List<Music> musicList = musicDao.findAll();return musicList;}@Overridepublic Music findById(String musicId) {MusicDao musicDao = new MusicDaoImpl();Music music = musicDao.findById(musicId);return music;}@Overridepublic List<Music> findByMusicName(String musicName) {MusicDao musicDao = new MusicDaoImpl();List<Music> musicNameList = musicDao.findByMusicName(musicName);return musicNameList;}@Overridepublic Music nextSong(String musicId) {MusicDao musicDao = new MusicDaoImpl();List<Music> musicList = musicDao.findAll();if (musicList.size()>0){int currentIndex = 0;for (int i = 0; i < musicList.size(); i++) {if (musicList.get(i).getMusicId().equals(Integer.parseInt(musicId))){currentIndex = i;break;}}int nextSongIndex = currentIndex == musicList.size() -1 ? 0 : currentIndex+1;return musicList.get(nextSongIndex);}else {throw new RuntimeException("歌曲列表不存在");}}@Overridepublic Music lastSong(String musicId) {MusicDao musicDao = new MusicDaoImpl();List<Music> musicList = musicDao.findAll();if (musicList.size()>0){int currentIndex = 0;for (int i = 0; i < musicList.size(); i++) {if (musicList.get(i).getMusicId().equals(Integer.parseInt(musicId))){currentIndex = i;break;}}int lastSongIndex = currentIndex == 0 ? musicList.size()-1 : currentIndex-1;return musicList.get(lastSongIndex);}else {throw new RuntimeException("歌曲列表不存在");}}
}
package com.java.service.impl;import com.java.dao.SheetDao;
import com.java.dao.impl.SheetDaoImpl;
import com.java.pojo.Sheet;
import com.java.service.SheetService;import java.util.List;public class SheetServiceImpl implements SheetService {@Overridepublic List<Sheet> getSheet() {SheetDao sheetDao = new SheetDaoImpl();List<Sheet> sheet = sheetDao.getSheet();return sheet;}@Overridepublic void addSheet(String sheetName) {SheetDao sheetDao = new SheetDaoImpl();sheetDao.insertSheet(sheetName);}
}

web层

package com.java.web;import com.java.service.SheetService;
import com.java.service.impl.SheetServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/addSheetServlet")
public class AddSheetServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");SheetService sheetService = new SheetServiceImpl();String sheetName = request.getParameter("sheetName");sheetService.addSheet(sheetName);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.dao.impl.MusicDaoImpl;
import com.java.pojo.Music;
import com.java.service.MusicService;
import com.java.service.impl.MusicServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/musicFindAllServlet")
public class MusicFindAllServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置字符集request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//MusicService musicService = new MusicServiceImpl();List<Music> musicList = musicService.findAll();ObjectMapper objectMapper = new ObjectMapper();String jsonMusic = objectMapper.writeValueAsString(musicList);response.getWriter().write(jsonMusic);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.pojo.Music;
import com.java.service.MusicService;
import com.java.service.impl.MusicServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/musicFindByIdServlet")
public class MusicFindByIdServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//MusicService musicService = new MusicServiceImpl();String musicId = request.getParameter("musicId");Music music = musicService.findById(musicId);ObjectMapper objectMapper = new ObjectMapper();String s = objectMapper.writeValueAsString(music);response.getWriter().write(s);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.pojo.Music;
import com.java.service.MusicService;
import com.java.service.impl.MusicServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/musicFindByMusicNameServlet")
public class MusicFindByMusicNameServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");MusicService musicService = new MusicServiceImpl();String musicName = request.getParameter("musicName");List<Music> musicList = musicService.findByMusicName(musicName);ObjectMapper objectMapper = new ObjectMapper();String s = objectMapper.writeValueAsString(musicList);response.getWriter().write(s);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.pojo.Music;
import com.java.service.MusicService;
import com.java.service.impl.MusicServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/musicLastSongServlet")
public class MusicLastSongServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String musicId = request.getParameter("musicId");MusicService musicService = new MusicServiceImpl();Music music = musicService.lastSong(musicId);ObjectMapper objectMapper = new ObjectMapper();String s = objectMapper.writeValueAsString(music);response.getWriter().write(s);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.pojo.Music;
import com.java.service.MusicService;
import com.java.service.impl.MusicServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/musicNextSongServlet")
public class MusicNextSongServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String musicId = request.getParameter("musicId");MusicService musicService = new MusicServiceImpl();Music music = musicService.nextSong(musicId);ObjectMapper objectMapper = new ObjectMapper();String s = objectMapper.writeValueAsString(music);response.getWriter().write(s);}
}
package com.java.web;import com.fasterxml.jackson.databind.ObjectMapper;
import com.java.pojo.Sheet;
import com.java.service.SheetService;
import com.java.service.impl.SheetServiceImpl;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/sheetServlet")
public class SheetServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");SheetService sheetService = new SheetServiceImpl();List<Sheet> sheet = sheetService.getSheet();String s = new ObjectMapper().writeValueAsString(sheet);response.getWriter().write(s);}
}

接下来就是前端页面

在微信开发者工具中的文件结构是这样

前端的代码比较复杂这里就不过多整理了 如果有小伙伴想要源码可以加一下交流群

下面是效果展示

 

音乐播放器微信小程序相关推荐

  1. uniapp 仿网易云音乐播放器 微信小程序

    效果视频: uniapp 仿照网易云播放器功能 效果截图: 上代码: <template><view class=""><scroll-view :s ...

  2. 音乐播放器微信小程序开发-歌单界面(简陋版)

    仿QQ音乐app的歌单界面制作了一个简易且简陋的歌单界面. 首先po一张最终效果图(很多功能还没实现,以及还有bug没有改好) 因为不涉及到逻辑,目前只需一些网页开发经验与知识即可(当然啦,还需要一定 ...

  3. 基于微信小程序java音乐播放器毕业设计论文/程序代码

    摘  要 5G时代已经慢慢的融入了我们的日常生活,随着国家的通信政策以及各大运营商的宣传的影响,5G手机已经随处可见,面对全球信息.技术空前高速发展,信息高速化发展更是社会进步的一个标志.在全球信息化 ...

  4. 许嵩音乐智能问答系统微信小程序之音乐播放器

    许嵩音乐智能问答系统微信小程序之音乐播放器 - 项目简介 项目简介. 音乐播放器搭建. 获取数据及文本分类. 智能客服聊天界面. 连接前端微信小程序输入和后端python,并返回值 连接知识图谱 你还 ...

  5. 许嵩音乐智能问答系统微信小程序之获取数据及文本分类

    许嵩音乐智能问答系统微信小程序之获取数据及文本分类 项目简介. 音乐播放器搭建. 获取数据及文本分类. 智能客服聊天界面. 连接前端微信小程序输入和后端python,并返回值 连接知识图谱 数据获取 ...

  6. 许嵩音乐智能问答系统微信小程序之客服聊天室

    许嵩音乐智能问答系统微信小程序之客服聊天室 项目简介. 音乐播放器搭建. 获取数据及文本分类. 智能客服聊天界面. 连接前端微信小程序输入和后端python,并返回值 连接知识图谱 你还在为因为性格腼 ...

  7. 录音、上传、播放音频微信小程序实践

    文章目录 录音.上传.播放音频微信小程序实践 实践分析 依赖接口 录音 上传 播放 Page 事件 参考 录音.上传.播放音频微信小程序实践 最近上线了一款智能外呼机器人产品,需要开发一款录音.上传. ...

  8. python实现音乐播放和下载小程序功能

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  9. (已更新)谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

    看名字就知道啦,这是一个谁是卧底的小程序源码 游戏规则: 谁是卧底是一款线下聚会的游戏,考验口才和脑力的同时,也能活跃气氛. 游戏人数为4-12人,游戏角色包括平民,卧底,白板可供用户选择! 游戏步骤 ...

最新文章

  1. java qq协议 c#,C# WebQQ协议群发机器人(三)
  2. linux top 命令信息解释
  3. 低功耗/远距离lora模块:物联网智能家居、抄表多领域应用SX1262芯片方案
  4. hive能替代oracle_Hive与Oracle表关联语句对比
  5. beeline-导出csv
  6. C语言回调函数callback
  7. 用PS去除图片中文字的6个方法
  8. 灰度发布和AB test
  9. 剪切caspase3_Proteintech抗体检测caspase 3前体及剪切体 - 泽浩公司
  10. 做了一个收录 rss opml 文件的仓库,欢迎推荐 opml
  11. vnc远程控制软件下载,四款神级能够下载的vnc远程控制软件
  12. Web报表系统葡萄城报表:报表设计
  13. App Store,“穷人靠变异”的爬虫路
  14. js+css 灵活层叠 绝对/相对 定位 2
  15. ArcGIS在线应用介绍(10)旧金山犯罪地图
  16. 面向对象三大特征---继承
  17. 关于springmvc静态资源常被忽视,有可能致命的点
  18. Linux下批量重命名文件
  19. 服务器托管和租用如何选择?
  20. 9.1黑马Vue电商后台管理系统商品管理模块完善:编辑商品的功能

热门文章

  1. 小七免杀 源码免杀培训班
  2. 【NOIP2014提高组】飞扬的小鸟
  3. 【NLP】LTP中文工具集使用
  4. 对matplotlib.pyplot.cm.RdYlBu()的解读
  5. 如何脱壳:PECompact 1.68 - 1.84 - Jeremy Collake [Overlay]
  6. 关闭word/ppt后自动创建并打开新的文档
  7. @2022-02-22:每日一语
  8. 计算机教育的改革论文,中职学校计算机教育现状及改革论文
  9. 信息系统分析与设计-----流程建模
  10. windows格式转换命令convert详解