基于SSM的音乐视频网站的设计与实现

今天给大家分享一个基于SSM框架的音乐视频网站,其包含音乐播放,视频播放,音视频管理等模块,下面开始介绍其详细内容。
请添加图片描述

技术简介:

基础框架:SSM SpringMVC+Spring+Mybatis
前端框架:Bootstrap
数据库:MySQL 5.7
开发软件及环境:eclipse JDK 1.8 Tomcat 8.0

数据库设计

请添加图片描述

项目功能

前台功能

音乐列表(音乐播放),类型列表,音乐热度排行榜,歌手列表,视频列表,登录注册

后台功能

用户管理,视频管理,音乐管理

项目展示截图

请添加图片描述
请添加图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

功能流程解析

下面以后台音乐管理为例介绍其实现流程
首先是配置文件:
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
		<context:component-scan base-package="dao,service.impl"/>
	<!-- 1. 数据源 : DriverManagerDataSource -->
	<!-- @@@@@@@  mybatis&spring连接池配置  @@@@@@ -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://localhost:3306/music"></property>
		<property name="username" value="root"></property>
		<property name="password" value="px980305"></property>
	</bean>
	<!-- 配置基本mybatis -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- dataSource属性指定要用的连接池 -->
		<property name="dataSource" ref="dataSource"></property>
		<property name="mapperLocations" value="classpath:mapper/*.xml"/>
		<!-- 将对应entity的java文件都配置到这里 -->
		<!-- <property name="typeAliasesPackage" value="entity"></property> -->
	</bean>
	<!-- 配置dao接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="dao"></property>
	</bean>
</beans>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

<!-- 配置注解的扫描路径。控制器包中 -->
	<context:component-scan base-package="controller"/>
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="messageConverters">  
            <list>  
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>  
                <!-- spring使用了jackson类库,帮助我们在java对象和json、xml数据之间的互相转换 -->
            </list>  
        </property>
    </bean>
    
	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="defaultErrorView" value="404"></property>
		<property name="exceptionAttribute" value="ex"></property>
	</bean>
	
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/*Manager.html"/>
			<bean class="interceptor.AdminInterceptor"></bean> 
		</mvc:interceptor>
	</mvc:interceptors>
	
	
	<!-- 创建1个视图解析器,支持jsp -->
	<bean id="viewResovler" 
		class="org.springframework.web.servlet.view.UrlBasedViewResolver">		
		<!-- 视图文件的前缀 -->
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<!-- 视图文件的后缀 -->
		<property name="suffix" value=".jsp"/>
		<!-- 视图文件的具体类型 -->
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>	
	</bean>
	
	<!-- 文件上传 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="utf-8"></property>   
        <property name="maxUploadSize" value="10485760000"></property>  
        <property name="maxInMemorySize" value="40960"></property>  
	</bean>
</beans>	

web.xml 伪装

<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>*.html</url-pattern><!-- 1、有利于SEO搜索机制,2、伪装页面,将后台请求伪装称静态页面跳转 -->
		
	</servlet-mapping>

以上便是配置文件的内容,下面开始介绍其实现流程
在这里插入图片描述
在musicManager中调用业务层,执行持久层数据库操作并将数据封装为json的方式返还

@RequestMapping("musicManager")
	public String getAllSong(Model model,PrintWriter out){
		List<Map<String, Object>> list=musicService.selectAllSong();
		JSONArray jArray = JSONArray.fromObject(list);
		model.addAttribute("list",jArray);		
		System.out.println(jArray);
		return "musicManager";
	}

Service的具体实现,去调用持久层方法

@Override
	public List<Map<String, Object>> selectAllSong() {
		return dao.selectAllSong();
	}

Mapper实现

<select id="selectAllSong" resultType="hashmap">
		SELECT * from music join singer on music.singerId = singer.singerId join
		musictype on music.musicTypeId=musictype.musicTypeId ORDER BY time DESC
  </select>

至此便将数据获取到了,然后经过层层返还
,在jsp页面中显示:

<c:if test="${not empty list }">
<c:forEach var="m" items="${list }">
<tr>														<td>${m.musicId }</td>														<td>${m.musicName }</td>														<td>${m.musicPhotoURL }</td>														<td>${m.musicHot }</td>														<td>${m.lyricURL }</td>														<td>${m.songURL }</td>														<td>${m.singerName }</td>														<td>${m.musicTypeName }</td>
</tr>
</c:forEach>

至此,查询所有音乐便完成了。
以上便是该项目的部分内容。

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

彭祥.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值