_浮生若dream吧 关注:34贴子:8,422
try to find a way to success ,not the excuse for failure


IP属地:河南1楼2015-12-31 11:19回复
    IP属地:河南3楼2015-12-31 11:21
    回复
      union 检查重复
      union all 不做检查
      比如 select 'a' union select 'a' 输出就是一行 a
      比如 select 'a' union all select 'a' 输出就是两行 a


      IP属地:河南4楼2016-01-06 19:20
      回复
        left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
        right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
        inner join(等值连接) 只返回两个表中联结字段相等的行
        举例如下:
        --------------------------------------------
        表A记录如下:
        aID     aNum
        1     a20050111
        2     a20050112
        3     a20050113
        4     a20050114
        5     a20050115
        表B记录如下:
        bID     bName
        1     2006032401
        2     2006032402
        3     2006032403
        4     2006032404
        8     2006032408
        --------------------------------------------
        1.left join
        sql语句如下:
        select * from A
        left join B
        on A.aID = B.bID
        结果如下:
        aID     aNum     bID     bName
        1     a20050111    1     2006032401
        2     a20050112    2     2006032402
        3     a20050113    3     2006032403
        4     a20050114    4     2006032404
        5     a20050115    NULL     NULL
        (所影响的行数为 5 行)
        结果说明:
        left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
        换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
        B表记录不足的地方均为NULL.
        --------------------------------------------
        2.right join
        sql语句如下:
        select * from A
        right join B
        on A.aID = B.bID
        结果如下:
        aID     aNum     bID     bName
        1     a20050111    1     2006032401
        2     a20050112    2     2006032402
        3     a20050113    3     2006032403
        4     a20050114    4     2006032404
        NULL     NULL     8     2006032408
        (所影响的行数为 5 行)
        结果说明:
        仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
        --------------------------------------------
        3.inner join
        sql语句如下:
        select * from A
        innerjoin B
        on A.aID = B.bID
        结果如下:
        aID     aNum     bID     bName
        1     a20050111    1     2006032401
        2     a20050112    2     2006032402
        3     a20050113    3     2006032403
        4     a20050114    4     2006032404
        结果说明:
        很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
        --------------------------------------------
        注:
        LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
        语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
        说明:table1, table2参数用于指定要将记录组合的表的名称。
        field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
        compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。
        如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.


        IP属地:河南5楼2016-01-06 19:21
        回复
          IP属地:河南6楼2016-01-07 18:17
          回复
            IP属地:河南7楼2016-01-07 18:28
            回复
              你应该用 session.createQuery("from bean where *******");这样子。。bean就是hibernate配的javabean
              如果复制查询没办法用了session.createSQLQuery("select ***")..那这个和普通jdbc查询没啥区别了。。返回的query。。再List<Map> list = query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
              再拿list的map.get("ID") 拿字段的值。。自己封装javeBean吧


              IP属地:河南8楼2016-01-26 15:22
              回复
                spring修改配置文件位置和传递数据
                在上一节,说道springMVC的配置文件,但是,配置文件是SpringMVC-servlet.xml,并不能进行更改。这样有一些死板,并且在项目中通常会有多个人同时进行项目的开发。
                这样就不能只有一个配置文件。
                首先,web.xml文件中基础配置有springMVC配置的servlet路径
                <servlet-name>SpringMVC</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                同时还有,配置加载顺序的:
                <load-on-startup>1</load-on-startup>
                我们如果需要加载其他地方的多个springMVC配置文件,就需要在代码中加入如下代码:
                <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath*:config/*-servlet.xml</param-value>
                </init-param>

                需要注意的是:加入的代码必须放在<servlet-class>...</servlet-class>与<load-on-startup>...</load-on-startup>之间。
                其中<param-name>contextConfigLocation</param-name>为参数的配置,所需要的参数可以在org.springframework.web.servlet.DispatcherServlet中得到。
                其部分源码如下:
                红色部分即为配置的参数。
                最后得到的web.xml为下:
                <?xml version="1.0" encoding="UTF-8"?>
                <web-app version="2.5"
                xmlns=" http://java.sun.com/xml/ns/javaee "
                xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "
                xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee
                http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
                <welcome-file-list>
                <welcome-file>index.jsp</welcome-file>
                </welcome-file-list>
                <servlet>
                <servlet-name>SpringMVC</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!-- 设置开启时的导入配置文件 。可以不是必须的文件名称,可自定义-->
                <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath*:config/*-servlet.xml</param-value>
                </init-param>
                <load-on-startup>1</load-on-startup> <!-- 启动tomcat时启动springMFC -->
                </servlet>
                <servlet-mapping>
                <servlet-name>SpringMVC</servlet-name>
                <url-pattern>/</url-pattern><!-- 拦截所有请求 -->
                </servlet-mapping>
                </web-app>
                其中classpath*:config/*-servlet.xml的意思解释如下:
                classpath*代表在src下寻找config文件夹再在其中寻找以-servlet.xml文件结尾的文件。
                这样就可以达到多配置文件的目的。
                下面是数据的传输:
                在springMVC的配置文件中,已经配置了<bean>如下:
                <bean name="/test/hello2" class="com.yx.controller.HelloSpringMVCController"></bean>
                在配置的bean的java文件中的handleRequest方法。这一步只是为了构造数据:
                System.out.println("-------进入HelloSpringMVCController类--------");
                String hello = "测试:spring数据从后台传入页面";
                Map<String,Object> map = new HashMap<String,Object>();
                map.put("map1", "第一个map");
                map.put("map2", "第二个map");
                map.put("map3", "第三个map");
                map.put("map4", "第四个map");

                //return new ModelAndView("/hello","StringResult",hello);// 返回String类型的数据到页面
                return new ModelAndView("/hello","mapResult",map);// 返回map类型的数据到页面
                在写jsp页面之前需要导入两个jar文件,分别为jstl.jar与standard.jar
                这两个是为了方便显示的。
                在hello.jsp页面中首先需要导入jar包
                <%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core " %>
                然后加入如下代码
                你好SpringMVC!!!

                <div>
                <h3>后台数据显示:</h3>
                <!-- 获得String类型的数据 -->
                <!-- ${StringResult }-->
                <!-- 获得map类型的数据 -->
                <c:forEach items="${mapResult}" var="mapVar">
                ${mapVar.key }----------->${mapVar.value }

                </c:forEach>
                </div>
                这样就可以将后台的数据显示在页面上了。


                IP属地:河南本楼含有高级字体9楼2016-01-31 22:02
                回复
                  <c:foreach>用法
                  <c:foreach>类似于for和foreach循环
                  以下是目前见过的用法:
                  1、循环遍历,输出所有的元素。
                  <c:foreach items="${list}"
                  var="li">
                  ${li}
                  </c:foreach>
                  注意:items 用于接收集合对象,var 定义对象接收从集合里遍历出的每一个元素。同时其会自动转型。
                  2、循环遍历,输出一个范围类的元素。
                  <c:foreach items ="${lis}" var = "li " begin="2" end
                  ="12">
                  ${li}
                  </c:foreach>
                  注意:begin 定义遍历的开始位置,end定义遍历的结束位置。begin 和end的引号必须写。
                  3、循环遍历,输出除某个元素以外的元素或输出指定元素。
                  <c:foreach items="${list}" var ="li"
                  varStatus="status">
                  <c:if text="${status.count==1}>
                  ${"第一个元素不要"}
                  </c:if>
                  ${li}
                  </ c:foreach>
                  注意:varStatus
                  表示当前集合的状态(其实是不是,我也不太清楚,只知道这样用,会的人指点下),count为循环一个计算器。
                  4、循环遍历,输出第一个或最后一个元素。
                  <c:foreach items="${list}" var ="li"
                  varStatus="status">
                  <c:if
                  text="${status.first}">我是第一个元素</c:if>
                  <c:if
                  text="${status.last}">我是最后一个元素</c:if>
                  </c:foreach>
                  注意:first表示如果是一个元素,则返回ture,反之则返回false
                  last 表示如果是最后一个元素,则返回ture,反之则返回false。
                  5、循环遍历,按指定步长输出。
                  <c:foreach items="list" var ="li"
                  step="2">
                  ${li}
                  </c:foreach>
                  注意:step为循环的步长。每次隔两个单位输出一个。如:1、3、5、


                  IP属地:河南10楼2016-01-31 22:03
                  回复


                    IP属地:河南来自Android客户端11楼2016-01-31 22:58
                    回复


                      IP属地:河南来自Android客户端12楼2016-01-31 23:00
                      回复


                        IP属地:河南来自Android客户端13楼2016-01-31 23:03
                        回复


                          IP属地:河南来自Android客户端14楼2016-01-31 23:04
                          回复


                            IP属地:河南来自Android客户端15楼2016-01-31 23:06
                            回复
                              ddl 是data defining language 数据定义语言
                              而dml是 data manufacturing language数据操作语言
                              2 .数据操纵语言DML
                              数据操纵语言DML主要有三种形式:
                              1) 插入:INSERT
                              2) 更新:UPDATE
                              3) 删除:DELETE
                              3. 数据定义语言DDL
                              数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
                              索引、同义词、聚簇等如:
                              CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
                              | | | | |
                              表 视图 索引 同义词 簇
                              DDL操作是隐性提交的!不能rollback


                              IP属地:河南16楼2016-02-01 10:02
                              回复