struts2.2.1.1+spring3.1+mybatis3.0.4用户登录

2023-12-17 12:58

本文主要是介绍struts2.2.1.1+spring3.1+mybatis3.0.4用户登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Mybatis3说明
Spring3.x没有对mybatis提供支持,虽然Spring的JIRA问题列表中已经接受了整合的请求,但还是被延迟处理了,不过已经有人整合了MyBatis-Spring,需要在项目中加载mybatis-spring-1.0.0-RC2.jar。具体使用方法及代码编写,请参考官网的MyBatis-Spring Reference Simplied Chinese.pdf文件
官网下载地址:http://mybatis.googlecode.com/svn/trunk/doc/zh_cn/

[b]文章最后的附件给出了jar文件、pdf文件及工程源代码。[/b]

二、工程结构图
[img]http://dl.iteye.com/upload/picture/pic/89858/99ac3018-33bd-3a4c-8925-3f87c1fd079f.jpg[/img]
三、所有jar包
Jar说明:除了struts2.2.1.1、Spring3.1和mybatis3.0.4的基础jar包(包括mybatis-spring整合包),还需要引入
log4j-1.2.15.jar、c3p0-0.9.1.2.jar、mysql-connector-java-5.1.6-bin.jar、struts2-spring-plugin-2.2.1.1.jar、commons-logging-1.0.4.jar

[img]http://dl.iteye.com/upload/picture/pic/89860/8d57acf3-8a49-3541-90a1-27453b9fe887.jpg[/img]
四、建表user
create table user(
id int(10) unsigned not null auto_increment,
name varchar(20) default null,
password varchar(20) default null,
birthday datetime default null,
primary key (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入一条数据
insert into user(name,password,birthday)   
values('Tom','1234','1970-03-02');

五、Ibatis3个版本的对比(来源于iteye,地址:http://www.iteye.com/topic/847698)
1. sqlMapConfig.xml文件
[img]http://dl.iteye.com/upload/picture/pic/89840/0eae11f0-d35f-3cee-ba9d-9bed20a3d0cc.jpg[/img]
2. sqlMap映射文件
[img]http://dl.iteye.com/upload/picture/pic/89842/c21d6b82-a935-307b-88ce-110a69cf6e1d.jpg[/img]
3. sqlMap API
[img]http://dl.iteye.com/upload/picture/pic/89844/f3392922-de4d-35ec-bd83-908fddd91dd9.jpg[/img]
六、 关于ibatis2.x升级到ibatis3.x (资料来源于网络)
1. 新的 sqlMapConfig.xml DTD:
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">

2. 新的 sqlMap (*.map.xml) DTD
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD iBatis Mapper 3.0 //EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

3. Configuration XML变化
1> 根节点标签由<sqlMapConfig> 更改为 <configuration>
2> <settings x="y" foo="bar"/> 更改为如下写法
<settings> 
<setting name="x" value="y"/>
<setting name="foo" value="bar"/>
</settings>

3> <typeAlias> 标签必须从 <sqlMap> 节点移动到
<configuration><typeAliases></typeAliases></configuration> 内 ,如下示例:
<configuration>
<settings>
...
</settings>
<typeAliases>
<typeAlias ... />
</typeAliases>
</configuration>

4. Mapping XML变化
1> 根节点由 <sqlMap> 更改为 <mapper>
2> 属性 parameterClass 必须更改为 parameterType
3> 属性 resultClass 必须更改为 resultType
4> 属性 class 必须更改为 type
5>"groupBy" 属性已经删除.
6> groupBy
在Ibatis2.X中使用方式如下:
<resultMap id="productRM" type="product" groupBy="id">
<result property="id" column="product_id"/>
<result property="name" column="product_name"/>
<result property="category" column="product_category"/>
<result property="subProducts" resultMap="Products.subProductsRM"/>
</resultMap>

在3.0中使用方式如下:
<resultMap id="productRM" type="product" >
<id property="id" column="product "/>
<result property="name " column="product_name "/>
<result property="category " column="product_category "/>
<collection property="subProducts" resultMap="Products.subProductsRM"/>
</resultMap>

7> 其他的变更对比如下:
Ibatis2.X:
<resultMap id="invoiceRM" type="invoice" extends="Invoice.abstractInvoiceRM">
<result property="client" resultMap="Client.clientRM"/>
<result property="accounts" column="invoiceNumber=INVOICE_NUMBER" select="Invoice.getAccountsSql"/>
<result property="products" column="productGroup=PRODUCT_GROUP_ID" select="Invoice.getProductsSql"/>
</resultMap>

Ibatis3.0:
<resultMap id="agreementDetailRM" type="agreement" extends="Agreement.agreementRM">
<association property="client" resultMap="Agreement.clientRM"/>
<collection property="accounts" column="agreementNumber=AGREEMENT_NUMBER" select="Agreement.getAccountsSql"/>
<collection property="products" column="serviceGroupId=SERVICE_GROUP_ID" select="Agreement.getProductsSql"/>
</resultMap>

上面的示例中 id被定义在父 result map 中.
8> Dynamic SQL 的变化
项目中最经常使用的动态语句是 "isNotNull". 此处将给出一个替代的方案:
比如下面的写法:
<isNotNull.*?property=\"(.*?)\"

可以这样写:
<if test="$1 != null"

注意:如果使用了<if ..> 关闭标签也必须由</isNotNull> 更改为</if>

这篇关于struts2.2.1.1+spring3.1+mybatis3.0.4用户登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504443

相关文章

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

usaco 1.1 Broken Necklace(DP)

直接上代码 接触的第一道dp ps.大概的思路就是 先从左往右用一个数组在每个点记下蓝或黑的个数 再从右到左算一遍 最后取出最大的即可 核心语句在于: 如果 str[i] = 'r'  ,   rl[i]=rl[i-1]+1, bl[i]=0 如果 str[i] = 'b' ,  bl[i]=bl[i-1]+1, rl[i]=0 如果 str[i] = 'w',  bl[i]=b

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b