ibatis 命名空间配置以及左右连接查询

前几天在写dao层实现的时候,自己写了sql语句但是在dao层找不到语句,在sqlmap文件里面已经配置好了,从错误的类型来看,觉得很可能是查找路径不正确,最后发现是配置文件的namespace这个参数起的作用,命名空间大家都知道是起到了避免命名冲突的作用,在各种java类里面都是通过包和命名空间来避免冲突,因此它一般是启用的,但是在ibatis中如果不配置默认它是不起作用的,因此查了查咋么配置ibatis。配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
    <settings useStatementNamespaces="true"/>
	<sqlMap resource="com/zhjy/zydc/dao/map/sql-map-menuinfo.xml"/>
	<sqlMap resource="com/zhjy/zydc/dao/map/sql-map-orgInfo.xml"/>
	<sqlMap resource="com/zhjy/zydc/dao/map/sql-map-roleinfo.xml"/>
	<sqlMap resource="com/zhjy/zydc/dao/map/sql-map-userinfo.xml"/>
	<sqlMap resource="com/zhjy/zydc/dao/map/sql-map-resource.xml"/>
</sqlMapConfig>

在sqlMapConfig标签中,有一个settings元素,这个标签是对ibatis进行各种配置的作用,<settings>元素用于配置和优化SqlMapClient实例的各个选项。这个元素自己以及它包含的属性都是可选的,所以,我们开始没有增加这个属性也可以使用。

这个元素可以设置命名空间、缓存配置、懒加载、最大会话数等一些常用功能,在性能优化方面还是值得了解了解的。更多配置可以查询文档。

今天在弄表单这一块,表单里面没有的功能就需要自己实现,写写代码自己建立一些表等等,觉得挺简单的但是有时也会遇到问题好好研究一下它这个表单的实现,下午在用表单做一个多选复选框,建了一张字典表、一张关系表,两个表单一个修改、一个只读,在加载数据记录时,找了半天也加载不出来,数据库里面也添加进了数据去,经过仔细检查SQL语句,发现有些错误,当主表和关系表或其他表组合查询时,其他的表里面如果没有记录那么很可能导致查询不出来,我想到了这种一般是左右连接查询,修改了SQL语句可以查询出来了,左右连接查询一般用在表需要组合查询但是一边有没有记录的情况,或者只想要一边的记录时,就可以利用连接查询。如下面sql语句

select u.*,ui.checkid
from fcs_user as u LEFT JOIN fcs_useritem as ui on u.id=ui.userid
where id=':{$urlParam("formid")}:'

这样查询出来的记录就不会有左边的表记录或者右边的表记录。

实现各种功能或做啥东西都要求有基础,即使给一个新的东西在实现的过程中也会应用你会的各种基础知识,所以掌握好基础在哪里都会用的上,平时多积累一些知识点、常识啥的,还是非常有用的。

ibatis 命名空间配置以及左右连接查询

时间: 2024-10-12 23:41:26

ibatis 命名空间配置以及左右连接查询的相关文章

iBatis.Net(C#)数据库查询

引用请注明http://www.cnblogs.com/13590/archive/2013/03/14/2958735.html  摘要:查询是数据库SQL语言的核心,本文介绍了通过iBatis.Net对数据库的简单查询.条件查询.动态查询和多表查询. 关键词:iBatis.Net:动态查询:多表查询:数据映射 查询是数据库SQL语言的核心,SQL语言只提供唯一一个用于数据库查询的语句,即SELECT语句.用于表达SQL查询的SELECT语句是功能最强也是最复杂的SQL语句.而在实际的项目开发

Centos 7 配置SSH远程连接及RAID 5的创建

   Centos 7 配置SSH远程连接及RAID的创建 安装Centos系统 首先进入引导界面:选择第一项,安装Centos7 选择安装语言:默认即可 下面进入安装信息界面 时区选择: 选择安装界面,web版就行 点击完成,进入安装界面,这时设置root密码 安装完成后,重启系统 进入系统配置好IP, 下面配置SSH服务 首先查看ssh服务有没有安装: 已安装服务,如果没有安装ssh,那就运行命令:yum install ssh –y 查看ssh服务有没有开启 查询结果,没有开启. 现在开启

连接查询 变量、if else、while

一.连接查询:通过连接运算符可以实现多个表查询. 连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on(左右连接) 2.union(上下连接)  注:只有在列的数据类型一致时才能够连接起来 二.变量 SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量(@@). 局部变量: 使用declare关键字给变量声明,语法非常简单:declare @<

Oracle 连接查询&lt;一&gt;

在Oracle数据库中,连接查询分为交叉连接.内连接.外链接3种类型.其中,交叉连接结果是所有其他连接结果的超集,而外连接结果又是内连接结果的超集. 交叉连接 交叉连接又称为笛卡尔积连接,是两个或多个 表之间的无条件连接.一个表中所有记录分别与其他表中所有记录进行记录.如果进行连接的表分别有n1,n2,n3...条记录,那么交叉连接的结果集中将有n1 x n2 x n3 x...条记录.例如,emp表中有14条记录,dept表中有4条记录,那么两个交叉连接后有56条记录,语句为 SQL> SEL

表连接查询与where后使用子查询的性能分析。

子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析. 对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能要高于子查询.本文将从实验的角度,对这两种查询的性能做出验证,并就实验结果分析两种查询手段的执行流程对性能的影响. 首先准备两张表 1,访问日志表mm_log有150829条记录(相关sql文件已放在

Mysql 表连接查询

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行.       2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接.     在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEF

MySQL数据库实验三:连接查询

实验三    连接查询 实验名称:连接查询(2课时) 一.实验目的 理解JOIN语句的操作和基本使用方法,掌握内连接.外连接.自身连接的概念和使用. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1. 查询每个学生及其选修课程的情况 SELECT  Student.*,SC.* FROM     Student,SC WHERE  Student.Sno = SC.Sno: 2.检索至少选修课程号为C2和C4的学生学号 SELECT X.S# FROM SC

7-09内连接查询

多表连接查询:实际上是通过各个表之间共同列的关联行来查询数据的,它是关系数据库查询最主要的特征. 连接查询的分类: 内连接:根据表中共同的列进行匹配. 内连接的特点: 两个表存在主外键关系 参与查询两个表的地位相同无主次之分. 内连接查询就是两个表的数据放到一起相同的数据就是内连接查询. 内连接的实现方式: 1:使用WHERE语句指定连接条件. 2:在FROM语句中使用INNER JOIN..ON. 查询订单编号,还有商品编号: SELECT OrderInfo.OrderId,UserInfo

连接查询,结构、循环语句

1 连接查询:通过连接运算符可以实现多个表查询.1.1 join onselect name,mark from student join mark on student.id=mark.studentid左连接-left joinselect name,mark from student left join mark on student.id=mark.studentid右连接-right joinselect name,mark from student right join mark o