MVC5学习笔记,这次练习一下MVC列表的排序、筛选、分页。参考官网地址:Sorting, Filtering, and Paging with the Entity Framework in an ASP.NET MVC Application。
这次我们从头开始,首先我们创建一个空的MVC应用程序,之后先做一下准备工作,我们在根目录下添加Content文件夹并在创建子文件夹Bootstrap/3.3.6用来存放样式文件,然后Views文件夹中创建Shared/_LayoutMovie.cshtml布局文件,代码如下:
@ViewBag.Title - 我的电影
@RenderBody()
随后,添加模型—Movie,代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace DDZ.MVC5Paging.Models
{
public class Movie
{
public int ID { get; set; }
[Display(Name = "电影名称")]
[Required]
[MinLength(3)]
[MaxLength(50)]
public string Title { get; set; }
[Display(Name = "发行日期")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
[Display(Name = "电影类型")]
[StringLength(50)]
public string Genre { get; set; }
[Display(Name = "电影售价")]
[Range(0, 100)]
public decimal Price { get; set; }
}
}
然后,我们选中“包含视图的MVC控制器(使用Entity Framework)”,按照下图创建控制器:
在调试之前呢,首先修改一下默认路由和web.config,如下图:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Movies", action = "Index", id = UrlParameter.Optional }
);
}
}
在配置完这些之后,我们开始调试。因为是第一次调试,程序会自动创建数据库,然后我们先插入一些数据,如下图:
重点正式开始:首先是排序,看一下视图页面代码
@Html.ActionLink("电影名称", "Index", new { sortOrder = ViewBag.TitleSortParm})
@Html.ActionLink("发布日期", "Index", new { sortOrder = ViewBag.ReleaseDateSortParm})
@Html.ActionLink("体裁", "Index", new { sortOrder = ViewBag.GenreSortParm})
@Html.ActionLink("票价", "Index", new { sortOrder = ViewBag.PriceSortParm })
接着是Movies控制器Index方法:
public ActionResult Index(string sortOrder)
{
ViewBag.TitleSortParm = String.IsNullOrEmpty(sortOrder) ? "title_desc" : "";
ViewBag.ReleaseDateSortParm = sortOrder == "date" ? "date_desc" : "date";
ViewBag.GenreSortParm = sortOrder == "genre" ? "genre_desc" : "genre";
ViewBag.PriceSortParm = sortOrder == "price" ? "price_desc" : "price";
var movies = from s in db.Movies
select s;
switch (sortOrder)
{
case "title_desc":
movies = movies.OrderByDescending(s => s.Title);
break;
case "date":
movies = movies.OrderBy(s => s.ReleaseDate);
break;
case "date_desc":
movies = movies.OrderByDescending(s => s.ReleaseDate);
break;
case "genre":
movies = movies.OrderBy(s => s.Genre);
break;
case "genre_desc":
movies = movies.OrderByDescending(s => s.Genre);
break;
case "price":
movies = movies.OrderBy(s => s.Price);
break;
case "price_desc":
movies = movies.OrderByDescending(s => s.Price);
break;
default:
movies = movies.OrderBy(s => s.Title);
break;
}
return View(movies.ToList());
}
结果如下图:
其次是过滤搜索,先看一下修改的视图代码:
@Html.ActionLink("添加电影", "Create")
@using (Html.BeginForm("Index", "Movies", FormMethod.Get, new { @class = "form-inline" }))
{
电影名称: @Html.TextBox("searchMovieTitle", null, new { @class = "form-control", @placeholder = "请输入电影名称" })
体裁: @Html.DropDownList("searchMovieGenre", ViewData["searchMovieGenreList"] as SelectList, "请选择体裁", new { @class = "form-control" })
}
@Html.ActionLink("电影名称", "Index", new { sortOrder = ViewBag.TitleSortParm, searchMovieTitle = ViewData["searchMovieTitle"], searchMovieGenre = ViewData["searchMovieGenre"] })
@Html.ActionLink("发布日期", "Index", new { sortOrder = ViewBag.ReleaseDateSortParm, searchMovieTitle = ViewData["searchMovieTitle"], searchMovieGenre = ViewData["searchMovieGenre"] })
@Html.ActionLink("体裁", "Index", new { sortOrder = ViewBag.GenreSortParm, searchMovieTitle = ViewData["searchMovieTitle"], searchMovieGenre = ViewData["searchMovieGenre"] })
@Html.ActionLink("票价", "Index", new { sortOrder = ViewBag.PriceSortParm, searchMovieTitle = ViewData["searchMovieTitle"], searchMovieGenre = ViewData["searchMovieGenre"] })
再看一下,后台代码:
public ActionResult Index(string sortOrder, string searchMovieTitle, string searchMovieGenre)
{
//搜索
ViewData["searchMovieTitle"] = searchMovieTitle;
ViewData["searchMovieGenre"] = searchMovieGenre;
var movies = from s in db.Movies
select s;
//绑定下拉框
var GenreQry = from d in movies
select d.Genre;
ViewData["searchMovieGenreList"] = new SelectList(GenreQry.Distinct());
//搜索
if (!String.IsNullOrEmpty(searchMovieTitle))
{
movies = movies.Where(s => s.Title.Contains(searchMovieTitle));
}
if (!string.IsNullOrEmpty(searchMovieGenre))
{
movies = movies.Where(x => x.Genre == searchMovieGenre);
}
//排序
ViewBag.TitleSortParm = String.IsNullOrEmpty(sortOrder) ? "title_desc" : "";
ViewBag.ReleaseDateSortParm = sortOrder == "date" ? "date_desc" : "date";
ViewBag.GenreSortParm = sortOrder == "genre" ? "genre_desc" : "genre";
ViewBag.PriceSortParm = sortOrder == "price" ? "price_desc" : "price";
switch (sortOrder)
{
case "title_desc":
movies = movies.OrderByDescending(s => s.Title);
break;
case "date":
movies = movies.OrderBy(s => s.ReleaseDate);
break;
case "date_desc":
movies = movies.OrderByDescending(s => s.ReleaseDate);
break;
case "genre":
movies = movies.OrderBy(s => s.Genre);
break;
case "genre_desc":
movies = movies.OrderByDescending(s => s.Genre);
break;
case "price":
movies = movies.OrderBy(s => s.Price);
break;
case "price_desc":
movies = movies.OrderByDescending(s => s.Price);
break;
default:
movies = movies.OrderBy(s => s.Title);
break;
}
return View(movies.ToList());
}
最后是分页,首先在“程序包管理控制台” 安装 PagedList.Mvc——Install-Package PagedList.Mvc
安装成功之后,先看一下视图页面修改的代码:
@*@model IEnumerable*@
@model PagedList.IPagedList
@using PagedList.Mvc;
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, pageNum => Url.Action("Index", new { pageNum, searchMovieTitle = ViewData["searchMovieTitle"], searchMovieGenre = ViewData["searchMovieGenre"], sortOrder = ViewBag.CurrentSort }))
然后再看一下,后台代码:
public ActionResult Index(string sortOrder, string searchMovieTitle, string searchMovieGenre, int? pageNum )
{
//分页
ViewBag.CurrentSort = sortOrder;
//搜索
ViewData["searchMovieTitle"] = searchMovieTitle;
ViewData["searchMovieGenre"] = searchMovieGenre;
var movies = from s in db.Movies
select s;
//绑定下拉框
var GenreQry = from d in movies
select d.Genre;
ViewData["searchMovieGenreList"] = new SelectList(GenreQry.Distinct());
//搜索
if (!String.IsNullOrEmpty(searchMovieTitle))
{
movies = movies.Where(s => s.Title.Contains(searchMovieTitle));
}
if (!string.IsNullOrEmpty(searchMovieGenre))
{
movies = movies.Where(x => x.Genre == searchMovieGenre);
}
//排序
ViewBag.TitleSortParm = String.IsNullOrEmpty(sortOrder) ? "title_desc" : "";
ViewBag.ReleaseDateSortParm = sortOrder == "date" ? "date_desc" : "date";
ViewBag.GenreSortParm = sortOrder == "genre" ? "genre_desc" : "genre";
ViewBag.PriceSortParm = sortOrder == "price" ? "price_desc" : "price";
switch (sortOrder)
{
case "title_desc":
movies = movies.OrderByDescending(s => s.Title);
break;
case "date":
movies = movies.OrderBy(s => s.ReleaseDate);
break;
case "date_desc":
movies = movies.OrderByDescending(s => s.ReleaseDate);
break;
case "genre":
movies = movies.OrderBy(s => s.Genre);
break;
case "genre_desc":
movies = movies.OrderByDescending(s => s.Genre);
break;
case "price":
movies = movies.OrderBy(s => s.Price);
break;
case "price_desc":
movies = movies.OrderByDescending(s => s.Price);
break;
default:
movies = movies.OrderBy(s => s.Title);
break;
}
return View(movies.ToPagedList(pageNum ?? 1, 3) );
//return View(movies.ToList());
}
最后我们看一下截图:
哈哈,今天就写到这里吧!谢谢! 代码下载:http://download.csdn.net/download/duyelang/9432384
你可能感兴趣的:(MVC学习系列)
SpringMVC执行流程(原理),通俗易懂
国服冰
SpringMVC spring mvc
SpringMVC执行流程(原理),通俗易懂一、图解SpringMVC流程二、进一步理解Springmvc的执行流程1、导入依赖2、建立展示的视图3、web.xml4、spring配置文件springmvc-servlet5、Controller6、tomcat配置7、访问的url8、视图页面一、图解SpringMVC流程图为SpringMVC的一个较完整的流程图,实线表示SpringMVC框架提
Spring进阶 - SpringMVC实现原理之DispatcherServlet处理请求的过程
倾听铃的声
后端 spring java mvc 开发语言 分布式
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析。本文是第二篇:DispatcherServlet处理请求的过程的源码解析。@pdaiSpring进阶-SpringMVC实现原理之DispatcherServlet处理请求的
SpringMVC的执行流程
1、什么是MVCMVC是一种设计模式。MVC的原理图如下所示M-Model模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View视图(做界面的展示jsp,html……)C-Controller控制器(接收请求—>调用模型—>根据结果派发页面2、SpringMVC是什么SpringMVC是一个MVC的开源框架,SpringMVC=Struts2+Spring,
[spring6: Mvc-网关]-源码解析
推荐阅读:[spring6:Mvc-函数式编程]-源码解析GatewayServerMvcAutoConfiguration@AutoConfiguration(after={HttpClientAutoConfiguration.class,RestTemplateAutoConfiguration.class,RestClientAutoConfiguration.class,FilterAu
java知识点分享篇(一)
微笑的小小刀
java分享篇一大家好,我是小小刀,我们又见面啦,本文是一个新的系列->java分享系列,现在有三个系列,java学习系列:一篇系统的讲一个知识点,java故事系列:散文随笔,有知识点也有生活。本篇是java分享系列第一篇:收集大家在学习交流群中的分享,并做简单的发散进学习交流群可加小刀微信:best396975802公众号:java技术大本营sql分页(小小刀)原分享sqlserver中的分页语
Java Web开发核心技术解析与实践指南
2301_81709812
java 前端 开发语言
目录一、JavaWeb开发基础1.1核心概念解析1.2开发环境搭建二、Servlet与JSP核心技术2.1Servlet编程深度解析生命周期管理(关键代码示例):核心对象关系:2.2JSP进阶开发技巧动态页面模板示例:三、Spring框架整合开发3.1SpringMVC核心原理3.2现代开发方案对比四、项目实战:图书管理系统4.1系统架构设计4.2性能优化策略五、学习路线建议一、JavaWeb开发
SpringMVC
Jonariguez
Spring spring mvc
SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发。用于替代servlet(处理响应请求,获取表单参数,表单验证等)MVC设计模式MVC即Model-View-Controller,将应用按照Model(模型)、View(视图)、C
Django 科普介绍:从入门到了解其核心魅力
在当今的Web开发领域,有许多优秀的框架助力开发者高效构建应用,而Django便是其中极具影响力的一员。作为一个高级PythonWeb框架,它以“电池已包含”的理念著称,为开发者提供了丰富的工具和功能,让Web开发变得更加简单、高效且安全。接下来,我们就详细了解一下Django。什么是Django?Django是一个基于Python的开源Web应用框架,于2005年首次发布。它遵循MVC(Mode
QFramework V1.0 GUIDE 架构篇
WX呦
架构 unity c# 游戏引擎
QFrameworkV1.0GUIDE:架构篇1.QFramework架构简介定义QFramework是一个专为Unity游戏开发设计的渐进式快速开发框架。优势提高开发效率:提供一套完整的架构和工具集。代码质量:基于MVC架构,实现数据、操作、视图的解耦分层。灵活性:支持不同规模的项目,从小型到大型商业项目。应用场景适用于任何规模的Unity游戏项目。2.QFramework的MVC定义Model
SSM+Vue共享充电宝管理系统 充电宝投放管理系统 共享充电宝维护管理系统Java
计算机程序老哥
作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆前端页面功能:首页、合作商户、充电宝投放、公告栏、个人中心、后台管理首页.png充电宝投放.png
Spring MVC核心技术解析
我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。拥有多年一线研发和团队
Spring MVC 深度解析
我是廖志伟
Java场景面试宝典 Spring MVC Web Development Java Framework
我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。拥有多年一线研发和团队
SpringMVC——请求参数与请求头
获取请求参数一、@RequestParam获取jsp实例testRequestParamprivatestaticfinalStringSUCCESS="success";@RequestMapping(value="/testRequestParam")publicStringtestRequestParam(@RequestParam(value="username")Stringuserna
SpringMVC——请求参数乱码问题
李沐泽
SpringMVC java SpringMVC
请求参数中文乱码的解决在web.xml中配置Spring提供的过滤器类characterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtruecharacterEncodingFilter/*上述代码中encoding用来设置编码格式,而forceEncod
SpringMVC——CharacterEncodingFilter处理获取请求参数的乱码
程序员阿皓
SpringMVC springmvc 请求乱码问题
在SpringMVC中,处理请求参数的乱码问题通常可以通过配置CharacterEncodingFilter来解决。乱码问题通常出现在GET请求的URL参数或POST请求的表单参数中,特别是涉及到非英文字符时。详细步骤如下:首先,在web.xml中配置CharacterEncodingFilter:encodingFilterorg.springframework.web.filter.Chara
分布式事务常见的几种实现方式
星域_03zhan
Java 分布式 java 数据库
文章目录事务概念:分布式事务常见的实现方式1.全局事务XA模式(一般不使用)2.TCC模式3.可靠消息服务4.AT模式事务概念:单机事务(本地事务):对于单系统事务它必须满足四大特性ACID:原子性、数据一致性、隔离性、持久性。其中C(数据一致性)是要达到的目的,也就是说通过AID来实现C。原子性是通过undolog来实现的;持久性是通过redolog来实现的。隔离性是通过读写锁+MVCC来实现的
深入解析HBase如何保证强一致性:WAL日志与MVCC机制
码字的字节
hadoop布道师 hadoop HBase WAL MVCC
HBase强一致性的重要性在分布式数据库系统中,强一致性是确保数据可靠性和系统可信度的核心支柱。作为Hadoop生态系统中关键的列式存储数据库,HBase需要处理金融交易、实时风控等高敏感场景下的海量数据操作,这使得强一致性成为其设计架构中不可妥协的基础特性。分布式环境下的数据一致性挑战在典型的HBase部署环境中,数据被分散存储在多个RegionServer节点上,同时面临以下核心挑战:1.跨节
如何入门搭建Laravel框架(教程)
随着互联网的发展,web开发的需求日益增长。在web开发领域,php语言一直扮演着重要的角色,而laravel就是php语言下一个备受欢迎的web开发框架。在本文中,我们将介绍如何入门搭建laravel框架。一、Laravel介绍Laravel是一个开源的PHPWeb框架,由TaylorOtwell在2011年创建。Laravel框架是基于MVC模式构建的,它提供了一系列灵活的工具和组件,能够帮助
【kafka4源码学习系列】kafka4总体架构介绍
oraen
学习 kafka 架构
二kafka架构介绍学习一个系统之前很重要的一点就是先了解这个系统整体的架构,这能够使我们对整个系统有个总体的认识,清楚地知道这个系统有什么能力。这不仅帮助我们学习时快速定位到我们想要的内容,还能避免我们学习过程中在庞大的系统中迷失自己。所以首先我会介绍一下kafka的整体架构,包括这个kafka系统的整体架构,模块组成,模块的功能以及模块之间关系,以及各个模块之间是怎么共同构成这套系统的。kaf
Unity 多人游戏框架学习系列十一
心疼你的一切
Unity实战知识 unity 游戏 学习 游戏引擎 c# microsoft
系列文章目录unity知识点文章目录系列文章目录前言Multiplayer类参考一、NetworkBehaviour**网络回调****服务器和客户端函数**发送命令客户端RPC调用联网事件壁纸分享总结前言书接上回,承接下回,一系列的。博客将会介绍多人游戏学习。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。欢迎点赞评论哦.
基于ssm框架的管理系统如何开题,有哪些步骤,怎么设计更合理
勤劳的史蒂夫
1、SSM框架简介SSM框架是SpringMVC,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。D
spring概述及其中基于xml的ioc配置
书到用时f恨少
1.spring是什么?Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IoC(InverseOfControl:反转控制)和AOP(AspectOrientedProgramming:面向切面编程)为内核,提供了展现层SpringMVC和持久层SpringJDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多
2025最新收集!java面试题、场景题、大厂真题!
以下是网上整理的非常全面的面试题,当然,绝大多数人不可能全部用到,但是都罗列在此,大家可根据自己的情况,选择对应的模块进行阅读。本文和其他面试题最大的区别就是——答案经过校正,完整题目及答案:si我”666“直接获取!不受米!面试题模块介绍这份面试题,包含的内容了十九个模块:Java基础、容器、多线程、反射、对象拷贝、JavaWeb模块、异常、网络、设计模式、Spring/SpringMVC、Sp
J2EE模式
奔走的蚂蚁~
设计模式 java-ee java
系列文章目录J2EE模式特别关注表示层,这些模式是由SunJavaCenter鉴定的,包括:1、MVC模式(MVCPattern);2、业务代表模式(BusinessDelegatePattern);3、组合实体模式(CompositeEntityPattern);4、数据访问对象模式(DataAccessObjectPattern);5、前端控制器模式(FrontControllerPatter
设计模式(四)J2EE模式
J2EE模式这些设计模式特别关注表示层。这些模式是由SunJavaCenter鉴定的。包含以下模式:MVC模式(MVCPattern)业务代表模式(BusinessDelegatePattern)组合实体模式(CompositeEntityPattern)数据访问对象模式(DataAccessObjectPattern)前端控制器模式(FrontControllerPattern)拦截过滤器模式(
【软件系统架构】系列七:系统性能——数据库管理性能深入解析
34号树洞
自学软件系统架构 系统架构 数据库 数据库性能 内存管理
目录一、数据库性能的核心维度数据库性能核心维度二、数据库性能关键指标影响数据库性能的关键因素三、数据库内部结构对性能的影响1.内存管理2.索引机制3.存储引擎四、事务并发控制对性能的影响1.事务隔离级别2.锁机制3.MVCC(多版本并发控制)五、性能瓶颈常见类型与排查方法六、数据库性能调优策略1.SQL优化2.索引优化3.连接管理4.缓存与内存参数调整5.存储与文件系统七、性能测试工具推荐八、分布
WxPython——构建你的蓝图
创建你的UI编程思维众所周知,GUI代码是难于阅读和维护的,并且看上去总是一塌糊涂。本章我们将讨论三个驯服你的UI代码的技术。我们将讨论重构代码以使其易于阅读、管理和维护。另一个方面是显示代码和基本的处理对象之间的处理,这也是UI程序员头痛的地方。MVC(ModełView/Controller,也就是模型-视图-控制器模式)设计模式是这样一种结构,它保持显示和数据分离以便各自的改变相互不影响。最
springmvc重定向和返回json,如何同时实现?
bug菌¹
全栈Bug调优(实战版) # CSDN问答解惑(全栈版) json
本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述 springmvc重定向和返回json,同一个method既想可以重定向,又可以把字符串对象比如“helloworld”输出到页面!现在在方法上追加@ResponseBody标
4、ASP.NET MVC与jQuery开发指南
corn8
探索.NET ASP.NET MVC jQuery 路由
ASP.NETMVC与jQuery开发指南1.路由与数据库访问在ASP.NETMVC中,MapRoute的第三个参数用于定义URL各部分的默认值,这使得我们可以省略部分或全部URL部分。若省略控制器,默认使用Home控制器;若省略动作,默认使用Index动作;id参数为可选,允许使用无参数的动作方法。大多数业务线(LOB)应用程序需要与持久化数据存储(如MicrosoftSQLServer)中的数
MVC、MVP、MVVM,我到底该怎么选?
mayloveever
安卓
MVC、MVP、MVVM,我到底该怎么选?添加链接描述原创:任玉刚玉刚说2018-07-03本文由玉刚说写作平台提供写作赞助赞助金额:200元原作者:AndroFarmer版权声明:本文版权归微信公众号玉刚说所有,未经许可,不得以任何形式转载前言MVC、MVP、MVVM是我们工作和面试中都比较重要的一块,但很多时候我们却有点迷惑。比如看了好多篇文章都搞不懂MVC到底是个啥本来想写个MVP写着写着就
HQL之投影查询
归来朝歌
HQL Hibernate 查询语句 投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
android按钮监听器的四种技术
百合不是茶
android xml配置 监听器 实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
软件架构师不等同于资深程序员
bijian1013
程序员 架构师 架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForge How do Attachement Anchor Wiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
SSH2整合-附源码
白糖_
eclipse spring tomcat Hibernate Google
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
[转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
读书笔记-3
chengxuyuancsdn
jquery笔记 resultMap配置 ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
[物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
 
Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracle ADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
c中实现utf8和gbk的互转
jimmee
c iconv utf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
大型分布式网站架构设计与实践
lilin530
应用服务器 搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
在代码中获取Android theme中的attr属性值
OliveExcel
android theme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
基于Zookeeper的分布式共享锁
roadrunners
zookeeper 分布式 共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&