- 浏览: 86245 次
- 性别:
- 来自: 苏州
最新评论
-
lcwen_13:
你的很多代码都完全没有必要,实现太麻烦了!
Shiro系列之Shiro+Spring MVC整合(Integration) -
禹爸爸:
endual 写道牛逼的表达能力!!!代码全部用到项目中。分享 ...
使用Spring框架实现文件上传 -
endual:
牛逼的表达能力!!!代码全部用到项目中。
使用Spring框架实现文件上传 -
禹爸爸:
despair1989 写道请检查一下附录里的链接地址。链接地 ...
Mybatis系列之实战篇(上) -
despair1989:
请检查一下附录里的链接地址。链接地址错了
Mybatis系列之实战篇(上)
文章列表
使用Spring框架实现文件上传
在Java中实现文件的上传有多种方式,如smartUpload或是使用Strus2,本文与大家分享使用Spring框架中的MultipartFile类来实例文件的上传。
不啰嗦了,直接上干货。先是编写了一个实现文件上传的类FileUploadingUtil,此类中定义了两个对外公开的方法,upload和getFileMap。
前者需要传入一个Map参数,是用户提交的表单中的文件列表,最终返回值的也是一个Map类型对象,其键名为上传的文件名称,键值为文件在服务器上的存储路径;后者主要是用于测试用途,非主要功能,看官可以忽略此方法。
package ...
Mybatis系列番外篇之多参数
引言
使用过Mybatis的小伙伴们都知道,在映射文件中只能使用parameterType属性指定一个传入参数,可是在实际的项目中,往往需要用到多个传入参数,那么应该如何实现呢?本文就以Mybatis接口式编程方 ...
术语
在讲Http协议语义之前,我们先讲两个术语:资源和资源表述。
资源(Resource)
在REST的世界中,每种事物,比如一个产品、一个用户或是一个网页都被视为资源(Resource)。
资源表述(Representation of the resource)
当浏览器为一个资源发送了HTTP请求后,服务器会发送一个文档作为回应,通常会是一个HTML文档,又或是图片、视频等。不论服务器返回了什么文档,我们都将这个文档称为资源表述(representation of the resource)。
Http语义协义
Http定义了8种不同的类型消息,在RESTful中常用到的 ...
Shiro系列之Shiro+Spring MVC整合
第一步,Shiro Filter
在web.xml文件中增加以下代码,确保Web项目中需要权限管理的URL都可以被Shiro拦截过滤。
<!-- Shiro Filter -->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter- ...
Mybatis系列之实战篇(下)
实战总结
将Mybatis和Spring配置文件独立开
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperL ...
Mybatis系列之实战篇(中)
接着《Mybatis系列之实战篇(上)》,我们继续。
数据表实体类
Province类
package com.emerson.etao.entity.base.address;
/**
* 省份实体类
*
* @author Chris Mao(Zibing)
*
*/
public class Province {
private int provinceId;
private String provinceName;
public int getProvinceId() {
...
Mybatis系列之实战篇(上)
引言
经过前面的学习(本文最后有前面文章的链接,小伙伴们可以根据需要自行阅读),我们需要一个实际的项目来练练手,对掌握的知识做进一步的巩固和沉淀。
术语介绍
本文以一个实际电商项目上中的客户管理模块作为讲解案例。在正文开始前,先约定一些术语,这些术语在后面的讲解中会频繁出现,所以希望小伙伴发用两分钟的时间看一下,这对后面的阅读会有很大帮助。
Party
我们将一个集团客户的主要信息抽象提取出来,称之为Party。每个Party下允许有多个Code。
Code
客户代码,每个集团客户允许有一个或多个Code。客户在系统中制作采购订单时,是 ...
昨天,我在《Shiro系列之Shiro+Mysql实现用户认证(Authentication)》中简单介绍了使用Shiro+Mysql实现用户认证的功能,今天我们继续使用其中的示例,讲解一下如何实现用户授权。
所谓授权,就是判断当前用户具体哪些权限,能够执行哪些操作,或是访问哪些资源(Web中的URL,又或是页面上的一个按钮,一个编辑框等都可以视为资源)。因此我们需要数据表来存储这些资源信息,以及用户、角色和资源的分配关系。
上文中已经创建了用户表,在本文中我们需要再创始角色表、资源表,以及用户和角色、角色和资源之间的关系表。这里仅为了需要让测试程序跑通,所以字段都很简单,在 ...
异常处理策略
系统异常可以分为两大类:业务类异常和技术类异常。顾名思义,业务类异常可以理解为在进行业务逻辑处理时,出现的异常。如创建客户订单时,发现没有为这个客户设置价格;取款时,取款金额大于帐户余额等。
技术类异常就更好理解了,这一层是与技术人员相关的,对系统使用者而言,应该是透明的。如无法正确连接数据库;访问数组或是列表时,索引超出范围;进行计算时,除数为零等。
针对不同类类型的异常,我们会采取不同的处理策略,请参照下表。
可预测异常
不可预测异常
业务类异常
在发生异常处处理
将异常信息显示给用户
不要记录在日志中
抛出异常
...
网上大多数介绍Apache Shiro的资料都是使用ini文件的简单配置为例,很少用讲到如何配合数据库来实现用户认证的。我也是刚刚开始接触Shiro,在这里介绍一个入门级别的Shiro+Mysql的配置方法,这个方法仅仅是个开始,并没有和Web,Spring,Mybatis等框架进行整合,后续我还会继续和大家分享我的学习过程及心得。
now we can start the things that we really care about.
数据库中创建一个用户表,字段可以很简单。
CREATE TABLE `sec_user` (
`user_id` int(10) ...
Mybatis系列之Spring & Mybatis整合
引言
前面用了八篇博客简单的向大家介绍了Mybatis的基础知识及简单用例。了解了这些知识后,还差最后一招,我们就可以修炼好独孤九剑,进入到更高一层的武艺境界 --SSM(Spring + Spring MVC + Mybatis)开发阶段了。
关于Spring及Spring MVC的基础概念这里就不再赘述了。不了解的,大家可以通过度娘谷哥自行脑补。
开发环境
IDE: STS(Spring Tools Suite)官网网址:http://spring.io/tools/sts
Spring Framewor ...
Mybatis系列之集合映射
上篇文章我们讲了关联映射,实现了销售与登录用户之间的关联。本文我们接着来讲一讲集合映射,实现销售与客户的多对多关系。
实现销售与客户多对多关系
本文中仍延用《Mybatis系列之关联映射》中的映射接口和测试用例,这里仅对增加和修改的内容进行讲解。
第一步,在动手编写映射文件之前,我们需要对Sales类增加一个List属性,用以保存销售员对应的客户列表。
/**
*
*/
private List<Customer> customers;
public Sales() {
super();
...
Mybatis系列之多表关联映射
引言
之前的文章里有提到过使用Mybatis对数据库单表进行映射,执行增删改查操作。但是在现实的项目中进行数据库建模时,我们要遵循数据库设计范式的要求,会对现实中的业务模型进行拆分,封 ...
Mybatis系列之接口式编程
引言
在前面的文章《Mybatis系列之简单示例》曾有一段代码涉及到了接口式编程,当时并没有展开阐述,今天我们单独把这一段拿出来表一表。
在讲Mybatis接口式编程之前,我们先回忆一下前面是如何 ...
Mybatis系列之动态SQL
引言
凡是写过数据库程序的朋友,都能体会到根据不同条件拼接SQL语句的痛苦,在这中间也会犯各种各样的错误,where子句中多个括号,少个空格,set语句中缺个逗号什么的,各种累觉不爱。使用Mybatis自带的动态SQL处理机制,可以把我们从这种痛苦中解救出来。今天我们就来讲讲Mybatis的动态SQL。(本文结尾处有彩蛋噢 :))))
通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。
Mybatis提供了几下几种动态SQL元素:
if ...