最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Springboot+Vue實現(xiàn)的在線答題闖關系統(tǒng)全過程

 更新時間:2024年12月09日 10:47:46   作者:無語小咪  
這篇文章主要介紹了基于Springboot+Vue實現(xiàn)的在線答題闖關系統(tǒng)的相關資料,文中包括前端Vue.js、后端SpringBoot及MySQL數(shù)據(jù)庫的使用,系統(tǒng)功能涵蓋順序出題、體型練習、隨機出題、錯題本、收藏題和答題統(tǒng)計等,需要的朋友可以參考下

前言

本系統(tǒng)采用前后端分離架構,前端使用Vue.js框架實現(xiàn),后端則通過Spring Boot進行構建,數(shù)據(jù)存儲使用MySQL數(shù)據(jù)庫。前端使用Vue.js進行數(shù)據(jù)渲染,而后端提供RESTful API接口來實現(xiàn)前后端的有效數(shù)據(jù)交互。

項目功能及技術

功能模塊設計

  • 順序出題模塊:該模塊允許用戶按順序答題,系統(tǒng)根據(jù)預設的題目順序逐一展示給用戶。用戶完成每一道題后可以進入下一題,適合需要系統(tǒng)化學習的用戶。

  • 體型練習模塊:用戶可以根據(jù)自己的需求選擇特定的練習模式,比如選擇某個類別或某個難度的題目進行練習。該模塊支持用戶自定義練習內(nèi)容,幫助用戶強化薄弱的知識點。

  • 隨機出題模塊:系統(tǒng)可以隨機從題庫中抽取題目,進行答題闖關,用戶在有限的時間內(nèi)答題,提升學習的趣味性和挑戰(zhàn)性。

  • 錯題本模塊:該模塊記錄用戶做錯的題目,用戶可以隨時查看并重新進行練習,幫助用戶集中攻克自己的薄弱環(huán)節(jié),提升記憶與掌握度。

  • 我的收藏模塊:用戶可以將自己喜歡或難度較高的題目收藏到個人收藏夾,方便以后再次復習或挑戰(zhàn)。

  • 答題統(tǒng)計模塊:系統(tǒng)自動統(tǒng)計用戶的答題情況,包括正確率、答題速度、錯題數(shù)量等,幫助用戶了解自己的學習進度和成效,并能根據(jù)數(shù)據(jù)調(diào)整學習策略。

技術:

  • Spring Boot:后端框架,利用Spring Boot的快速開發(fā)特性。同時,通過Mybatis簡化數(shù)據(jù)庫操作,提高數(shù)據(jù)訪問效率。

  • Vue.js:前端框架,使用Vuex進行全局狀態(tài)管理,提升數(shù)據(jù)的一致性與可維護性。

  • MySQL:數(shù)據(jù)庫存儲引擎,負責存儲題目數(shù)據(jù)、用戶答題記錄、錯題與收藏等信息。

  • Layui:前端UI組件庫,用于搭建美觀且響應式的用戶界面,提升用戶交互體驗。

用戶端

管理端

API

SpringBoot框架搭建

1.創(chuàng)建maven project,先創(chuàng)建一個名為SpringBootDemo的項目,選擇【New Project】

然后在彈出的下圖窗口中,選擇左側(cè)菜單的【New Project】

在project下創(chuàng)建module,點擊右鍵選擇【new】—【Module…】

左側(cè)選擇【Spring initializr】,通過idea中集成的Spring initializr工具進行spring boot項目的快速創(chuàng)建。窗口右側(cè):name可根據(jù)自己喜好設置,group和artifact和上面一樣的規(guī)則,其他選項保持默認值即可,【next】

Developer Tools模塊勾選【Spring Boot DevTools】,web模塊勾選【Spring Web】,此時,一個Springboot項目已經(jīng)搭建完成,可開發(fā)后續(xù)功能

實體映射創(chuàng)建Mapper

創(chuàng)建一個entity實體類文件夾,并在該文件夾下創(chuàng)建項目用到的實體類

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Data
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;

    private String account;

    private String pwd;

    private String userDesc;

    private String userHead;

    private LocalDateTime createTime;

    private Long role;

    private String nickname;

    private String email;

    private String tags;
}

接口封裝

由于我們使用mybatis-plus,所以簡單的增刪改查不用自己寫,框架自帶了,只需要實現(xiàn)或者繼承他的Mapper、Service

創(chuàng)建控制器Controller

整合Swagger

添加依賴

先導入spring boot的web包

<!--swagger依賴-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

配置Swagger

創(chuàng)建一個swagger的配置類,命名為SwaggerConfig.java

/*
     *用于定義API主界面的信息,比如可以聲明所有的API的總標題、描述、版本
     */
    private ApiInfo apiDemo() {
        return new ApiInfoBuilder()
                //用來自定義API的標題
                .title("SpringBoot項目SwaggerAPIAPI標題測試")
                //用來描述整體的API
                .description("SpringBoot項目SwaggerAPI描述測試")
                //創(chuàng)建人信息
                .contact(new Contact("測試員張三","http://localhost:8080/springboot/swagger-ui.html","xxxxxxxx@163.com"))
                //用于定義服務的域名
                //.termsOfServiceUrl("")
                .version("1.0") //可以用來定義版本
                .build();
    }

接口測試

運行Spring Boot項目,默認端口8080,通過地址欄訪問url

接口組定義

根據(jù)不同的業(yè)務區(qū)分不同的接口組,使用@API來劃分

@Api(tags = "用戶管理") //  tags:組名稱
@RestController
public class RoleController {
}

接口定義

使用@ApiModel來標注實體類,同時在接口中定義入?yún)閷嶓w類作為參數(shù)。

  • @ApiModel:用來標類

  • 常用配置項:value:實體類簡稱;description:實體類說明

  • @ApiModelProperty:用來描述類的字段的含義。

常用字段類型

字段類型所占字節(jié)存儲范圍最大存儲值使用場景
TINYINT1-128~127127存儲小整數(shù)
INT4-2147483648~21474836472147483647存儲大整數(shù)
BIGINT8-9223372036854775808~92233720368547758079223372036854775807存儲極大整數(shù)
DECIMAL可變長度存儲精度要求高的數(shù)值
CHAR固定長度最多255字節(jié)255個字符存儲長度固定的字符串
VARCHAR可變長度最多65535字節(jié)65535個字符存儲長度不固定的字符串
DATETIME8‘1000-01-01 00:00:00’~‘9999-12-31 23:59:59’‘9999-12-31 23:59:59’存儲日期和時間

參考代碼塊

  <body style="background-color: #f7f7f7;">
		<div class="headerBox">
			<div class="logoBox">
				<img src="img/logo1.png" />
				<div class="logoTitle">在線答題闖關</div>
			</div>
			<div class="menuBox">
				<div class="menuItem activeMenu ">
					<a href="index.html" rel="external nofollow"  rel="external nofollow" >練習模式</a>
				</div>
				<div class="menuItem blackColor">
					<a href="challengeLevels.html?param=primary" rel="external nofollow"  rel="external nofollow" >闖關模式</a>
				</div>
				<div class="menuItem blackColor">
					<a href="wrongQuestion.html" rel="external nofollow"  rel="external nofollow" >我的錯題</a>
				</div>
				<div class="menuItem blackColor">
					<a href="myCollection.html" rel="external nofollow"  rel="external nofollow" >我的收藏</a>
				</div>
				<div class="menuItem blackColor">
					<a href="statistics.html" rel="external nofollow"  rel="external nofollow" >答題統(tǒng)計</a>
				</div>
				<div class="menuItem blackColor">
					<a href="center.html" rel="external nofollow"  rel="external nofollow" >個人中心</a>
				</div>
				<div class="menuItem blackColor">
					<a href="./login/login.html" rel="external nofollow"  rel="external nofollow" >退出登錄</a>
				</div>
			</div>
		</div>
		<div class="container-fluid" id="content-page">
			<div class="row">
				<div class="col-md-2"> </div>
				<div class="col-md-8">
					<div class="searchBox">
						<div class="leftTitle">
							{{pageTitle}}
						</div>
					</div>
				</div>
				<div class="col-md-2"> </div>
			</div>
			<div class="row">
				<div class="col-md-2"> </div>
				<div class="col-md-8">
					<div v-for="(item,index) in questionList">
						<div class="radioItemBox" v-if="item.questionType == '單選題'">
							<div class="BtnBox radioItem">
								<div>{{index+1}}.</div>
								<textarea rows="18" cols="90" v-model="item.title" disabled></textarea>
								<img src="img/collecQues.png" class="radioItemTypeImg"
									v-on:click="collection(item.id)" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkA!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'A')" />
								</div>
								<div>A.</div>
								<input v-model="item.checkA" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkB!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'B')" />
								</div>
								<div>B.</div>
								<input v-model="item.checkB" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkC!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'C')" />
								</div>
								<div>C.</div>
								<input v-model="item.checkC" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkD!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'D')" />
								</div>
								<div>D.</div>
								<input v-model="item.checkD" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkE!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'E')" />
								</div>
								<div>E.</div>
								<input v-model="item.checkE" disabled class="radioLineV2Input" />
							</div>
						</div>
						<div class="radioItemBox" v-if="item.questionType == '多選題'">
							<div class="BtnBox radioItem">
								<div>{{index+1}}.</div>
								<textarea rows="18" cols="90" v-model="item.title" disabled></textarea>
								<img src="img/collecQues.png" class="radioItemTypeImg"
									v-on:click="collection(item.id)" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkA!=''">
								<div class="radioIconBox">
									<input type="checkbox" class="radioInputCheck" :name="index"
										v-on:change="checkTwo($event,index,'A')" />
								</div>
								<div>A.</div>
								<input v-model="item.checkA" disabled class="radioLineV2Input" />
							</div>

							<div class="BtnBox radioLineV2" v-if="item.checkB!=''">
								<div class="radioIconBox">
									<input type="checkbox" class="radioInputCheck" :name="index"
										v-on:change="checkTwo($event,index,'B')" />
								</div>
								<div>B.</div>
								<input v-model="item.checkB" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkC!=''">
								<div class="radioIconBox">
									<input type="checkbox" class="radioInputCheck" :name="index"
										v-on:change="checkTwo($event,index,'C')" />
								</div>
								<div>C.</div>
								<input v-model="item.checkC" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkD!=''">
								<div class="radioIconBox">
									<input type="checkbox" class="radioInputCheck" :name="index"
										v-on:change="checkTwo($event,index,'D')" />
								</div>
								<div>D.</div>
								<input v-model="item.checkD" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkE!=''">
								<div class="radioIconBox">
									<input type="checkbox" class="radioInputCheck" :name="index"
										v-on:change="checkTwo($event,index,'E')" />
								</div>
								<div>E.</div>
								<input v-model="item.checkE" disabled class="radioLineV2Input" />
							</div>
						</div>
						<div class="radioItemBox" v-if="item.questionType == '判斷題'">
							<div class="BtnBox radioItem">
								<div>{{index+1}}.</div>
								<textarea rows="18" cols="90" v-model="item.title" disabled></textarea>
								<img src="img/collecQues.png" class="radioItemTypeImg"
									v-on:click="collection(item.id)" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkA!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'A')" />
								</div>
								<div>A.</div>
								<input v-model="item.checkA" disabled class="radioLineV2Input" />
							</div>
							<div class="BtnBox radioLineV2" v-if="item.checkB!=''">
								<div class="radioIconBox">
									<input type="radio" class="radioInputCheck" :name="index"
										v-on:change="checkOne(index,'B')" />
								</div>
								<div>B.</div>
								<input v-model="item.checkB" disabled class="radioLineV2Input" />
							</div>
						</div>
					</div>

					<div class="BtnBox margin-sm">
						<div class="AddQuesBtnItem" v-on:click="SaveChange">
							<img src="img/submit.png" />
							提交
						</div>
						<div style="height:100px;"></div>
					</div>
				</div>
				<div class="col-md-2"> </div>
			</div>
		</div>
		<script type="text/javascript" src="js/jquery.min.js"></script>
		<script type="text/javascript" src="js/vue.js"></script>
		<script type="text/javascript" src="login/layui/layui.js"></script>
		<script>
			//輕量級框架
			var dataInfo = new Vue({
				el: "#content-page",
				//Vue的數(shù)據(jù)對象
				data: {
					questionList: [],
					pageTitle: ''
				}, //數(shù)據(jù)對象結(jié)束
				//方法
				methods: {
					GetAll: function() {
						let vm = this;
						let param = GetQueryString("param");
						let type = GetQueryString("type");
						let quesType = '';
						if (param == 'practice') {

							if (type == '0') {
								quesType = '單選題';
							} else if (type == '1') {
								quesType = '多選題';
							} else {
								quesType = '判斷題';
							}
							vm.pageTitle = '練習模式:' + quesType;
						} else if (param == 'order') {
							vm.pageTitle = '順序出題';
						} else {
							vm.pageTitle = '隨機練習';
						}
						var user = JSON.parse(sessionStorage.getItem('user'));

						$.ajax({
							url: "http://127.0.0.1:8081/common/answer-list?userId=" + user.id + "&param=" +
								param + "&type=" + quesType,
							async: false,
							type: "POST",
							contentType: 'application/json',
							dataType: 'json',
							success: function(json) {

								vm.questionList = json.list
							}

						});

					},
					//單選框選擇事件
					checkOne(index, check) {
						let vm = this;
						vm.questionList[index].isChecked = check;
					},
					//多選框選擇事件
					checkTwo(event, index, check) {
						let vm = this;
						const checked = event.target.checked;
						let info = vm.questionList[index];
						let checkedArray = info.isChecked.split(',');
						if (checkedArray[0] == '') {
							checkedArray.splice(0, 1);
						}
						if (checked) {
							checkedArray.push(check);
							info.isChecked = checkedArray.join(',');
						} else {
							let ind = checkedArray.indexOf(check);
							if (ind !== -1) {
								checkedArray.splice(ind, 1);
							}
							info.isChecked = checkedArray.join(',');
						}
					},
					//點擊提交
					SaveChange() {
						let vm = this;
						//得分
						let number = 0;
						let list = vm.questionList;
						for (let i = 0; i < list.length; i++) {
							if (list[i].isChecked != '') {
								let right = list[i].rightKey.split(',');
								let check = list[i].isChecked.split(',');
								if (right.length === check.length && right.sort().toString() === check.sort()
									.toString()) {
									list[i].correct = 1;
									number++;
								}
							}
						}
						var user = JSON.parse(sessionStorage.getItem('user'));
						var vo = {};
						vo.answerList = list;
						vo.number = number;
						vo.userId = user.id;
						vo.type = '練習';
						$.ajax({
							url: "http://127.0.0.1:8081/common/get-answer",
							async: false,
							type: "POST",
							contentType: 'application/json',
							dataType: 'json',
							data: JSON.stringify(vo),
							success: function(json) {
								layui.use('layer', function() {
									var layer = layui.layer;

									// 彈出提示框
									layer.msg('您的分數(shù)為:' + number + '分', {
										icon: 6, // 圖標樣式,默認為信息圖標
										time: 2000, // 顯示時間,默認為2秒
										shade: 0.5, // 遮罩層透明度,默認為0.3
										shadeClose: true // 是否點擊遮罩關閉彈框,默認為true
									});
								});
							}
						});


					},
					//點擊收藏
					collection(id) {
						var vo = {};
						var user = JSON.parse(sessionStorage.getItem('user'));
						vo.userId = user.id;
						vo.answerId = id;
						$.ajax({
							url: "http://127.0.0.1:8081/common/addCollect",
							async: false,
							type: "POST",
							contentType: 'application/json',
							dataType: 'json',
							data: JSON.stringify(vo),
							success: function(json) {
								layui.use('layer', function() {
									var layer = layui.layer;

									// 彈出提示框
									layer.msg(json.returnMsg, {
										icon: json.returnMsg == '您已收藏過' ? 5 :
										6, // 圖標樣式,默認為信息圖標
										time: 2000, // 顯示時間,默認為2秒
										shade: 0.5, // 遮罩層透明度,默認為0.3
										shadeClose: true // 是否點擊遮罩關閉彈框,默認為true
									});
								});
							}
						});

					},

				}, //方法結(jié)束
				created: function() {
					var vm = this;
					vm.GetAll();
				}, //初始加載方法結(jié)束

			}); //vue結(jié)束

			function GetQueryString(name) {
				var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
				var r = window.location.search.substr(1).match(reg);
				if (r != null) return unescape(r[2]);
				return null;
			}
		</script>
	</body>
</html>
<head>
		<meta charset="utf-8" />
		<title>答題統(tǒng)計</title>
	</head>
	<link href="css/index.css" rel="external nofollow"  rel="stylesheet" />
	<link href="css/bootstrap.min.css" rel="external nofollow"  rel="stylesheet" />
	<body style="background-color: #f7f7f7;">
		<div class="headerBox">
			<div class="logoBox">
				<img src="img/logo1.png" />
				<div class="logoTitle">在線答題闖關</div>
			</div>
			<div class="menuBox">
				<div class="menuItem  blackColor">
					<a href="index.html" rel="external nofollow"  rel="external nofollow" >練習模式</a>
				</div>
				<div class="menuItem blackColor">
					<a href="challengeLevels.html?param=primary" rel="external nofollow"  rel="external nofollow" >闖關模式</a>
				</div>
				<div class="menuItem blackColor">
					<a href="wrongQuestion.html" rel="external nofollow"  rel="external nofollow" >我的錯題</a>
				</div>
				<div class="menuItem blackColor">
					<a href="myCollection.html" rel="external nofollow"  rel="external nofollow" >我的收藏</a>
				</div>
				<div class="menuItem activeMenu">
					<a href="statistics.html" rel="external nofollow"  rel="external nofollow" >答題統(tǒng)計</a>
				</div>
				<div class="menuItem blackColor">
					<a href="center.html" rel="external nofollow"  rel="external nofollow" >個人中心</a>
				</div>
				<div class="menuItem blackColor">
					<a href="./login/login.html" rel="external nofollow"  rel="external nofollow" >退出登錄</a>
				</div>
			</div>
		</div>
		<div class="container-fluid" id="content-page">
			<div class="row">
				<div class="col-md-2"> </div>
				<div class="col-md-8">
					<div class="searchBox">
						<div class="leftTitle">
							答題統(tǒng)計
						</div>
						<div>

						</div>
					</div>
				</div>
				<div class="col-md-2"> </div>
			</div>
			<div class="row">
				<div class="col-md-2"> </div>
				<div class="col-md-4">
					<div id="main"></div>
				</div>
				<div class="col-md-4">
					<div id="main2"></div>
				</div>
				<div class="col-md-2"> </div>
			</div>
		</div>
		<script type="text/javascript" src="js/jquery.min.js"></script>
		<script type="text/javascript" src="js/echarts.min.js"></script>
		<script>
			function GetQueryString(name) {
				var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
				var r = window.location.search.substr(1).match(reg);
				if (r != null) return unescape(r[2]);
				return null;
			}


			var user = JSON.parse(sessionStorage.getItem('user'));
			$.ajax({
				url: "http://127.0.0.1:8081/common/total?userId=" + user.id,
				async: false,
				type: "POST",
				contentType: 'application/json',
				dataType: 'json',
				data: JSON.stringify({}),
				success: function(json) {

					initCharts1(json.data);
					var inputArray = json.data;
					// 定義對應的題目類型名稱數(shù)組
					var typeNameArray = ['單選題', '多選題', '判斷題'];
					
					// 結(jié)果數(shù)組
					var resultArray = [];
					
					// 遍歷輸入數(shù)組
					for (var i = 0; i < inputArray.length; i++) {
					    // 構造對象,并添加到結(jié)果數(shù)組中
					    var item = {
					        value: inputArray[i],
					        name: typeNameArray[i]
					    };
					    resultArray.push(item);
					}
					initCharts(resultArray);
				}
			});


			function initCharts(data1) {
				var chartDom = document.getElementById('main');
				var myChart = echarts.init(chartDom);
				var option;
				option = {
					title: {
						text: '答題數(shù)統(tǒng)計',
						subtext: '',
						left: 'center'
					},
					tooltip: {
						trigger: 'item'
					},
					legend: {
						orient: 'vertical',
						left: 'left'
					},
					series: [{
						name: 'Access From',
						type: 'pie',
						radius: '50%',
						data: data1,
						emphasis: {
							itemStyle: {
								shadowBlur: 10,
								shadowOffsetX: 0,
								shadowColor: 'rgba(0, 0, 0, 0.5)'
							}
						}
					}]
				};
				myChart.setOption(option);
			};

			function initCharts1(data2) {
				var chartDom = document.getElementById('main2');
				var myChart = echarts.init(chartDom);
				var option;

				option = {
					xAxis: {
						type: 'category',
						data: ['單選題', '多選題', '判斷題']
					},
					yAxis: {
						type: 'value'
					},
					series: [{
						data: data2,
						type: 'bar',
						showBackground: true,
						backgroundStyle: {
							color: 'rgba(180, 180, 180, 0.2)'
						}
					}]
				};

				myChart.setOption(option);
			};
		</script>
	</body>
</html>

總結(jié) 

到此這篇關于基于Springboot+Vue實現(xiàn)的在線答題闖關系統(tǒng)的文章就介紹到這了,更多相關Springboot+Vue在線答題闖關系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java 商戶PC端接入支付寶支付的實現(xiàn)方法

    java 商戶PC端接入支付寶支付的實現(xiàn)方法

    這篇文章主要介紹了java 商戶PC端接入支付寶支付的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • java基礎學習筆記之泛型

    java基礎學習筆記之泛型

    所謂泛型,就是變量類型的參數(shù)化。泛型是JDK1.5中一個最重要的特征。通過引入泛型,我們將獲得編譯時類型的安全和運行時更小的拋出ClassCastException的可能。在JDK1.5中,你可以聲明一個集合將接收/返回的對象的類型。
    2016-02-02
  • Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析

    Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析

    這篇文章主要介紹了Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • java動態(tài)代理示例分享

    java動態(tài)代理示例分享

    這篇文章主要介紹了java動態(tài)代理示例,需要的朋友可以參考下
    2014-02-02
  • Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法

    Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法

    這篇文章主要介紹了Java Web開發(fā)之基于Session的購物商店實現(xiàn)方法,涉及Java針對session的操作及數(shù)據(jù)庫操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java中處理日期時間的幾種操作技巧

    Java中處理日期時間的幾種操作技巧

    日期和時間是幾乎所有應用程序中都會遇到的問題,從簡單的顯示當前時間,到復雜的日期計算和時區(qū)處理,日期時間操作是開發(fā)中不可避免的一部分,Java提供了不同的工具來幫助我們處理日期和時間,本文為大家詳細說說,需要的朋友可以參考下
    2026-01-01
  • Java實現(xiàn)數(shù)據(jù)脫敏的方法詳細講解

    Java實現(xiàn)數(shù)據(jù)脫敏的方法詳細講解

    這篇文章主要給大家介紹了關于Java實現(xiàn)數(shù)據(jù)脫敏的相關資料,數(shù)據(jù)脫敏是指對某些敏感信息通過脫敏規(guī)則進行數(shù)據(jù)的變形,實現(xiàn)敏感隱私數(shù)據(jù)的可靠保護,需要的朋友可以參考下
    2023-06-06
  • RestTemplate上傳、下載文件實例代碼

    RestTemplate上傳、下載文件實例代碼

    介紹了文件上傳和下載的基本方法,包括處理本地文件和文件流,上傳時區(qū)分了文件是否在本地,下載時強調(diào)返回值為byte[],并提供了工具類進行進一步處理
    2025-02-02
  • springboot 使用自定義的aspect的示例代碼

    springboot 使用自定義的aspect的示例代碼

    這篇文章主要介紹了springboot 使用自定義的aspect的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • java解析xml匯總_動力節(jié)點Java學院整理

    java解析xml匯總_動力節(jié)點Java學院整理

    這篇文章主要介紹了java解析xml匯總_動力節(jié)點Java學院整理的相關資料,需要的朋友可以參考下
    2017-07-07

最新評論

廉江市| 山丹县| 田林县| 涟水县| 恩平市| 化州市| 西畴县| 城市| 达尔| 泸溪县| 湘潭县| 慈利县| 伊宁市| 民权县| 大安市| 金昌市| 财经| 贡嘎县| 盐亭县| 昔阳县| 专栏| 喀喇沁旗| 阳城县| 华坪县| 咸宁市| 保山市| 乌拉特中旗| 石屏县| 轮台县| 沿河| 永年县| 垦利县| 长寿区| 中宁县| 库尔勒市| 广饶县| 施秉县| 遂平县| 武夷山市| 渭南市| 巨野县|