SSM+ORACAL遇到的一些问题

1.xml配置中的数据源配置修改

<!--数据源-链接数据库的基本信息,这里直接写,不放到*.properties资源文件中-->  
    <bean id="dataSource"  
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="username" value="root" />
        <property name="password" value="root" /> -->
        <property name="driverClassName" value="oracle.jdbc.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:orcl" />
        <property name="username" value="test" />
        <property name="password" value="test" />
    </bean>  

2.下载ojdbc的jar包放到项目的WEB-INF的lib下。

地址:http://www.java2s.com/Code/Jar/o/ojdbc6.htm

3.mybatis中对oracle数据库的like模糊查询

在oracle中的concat不支持三个参数,如CONCAT('%',#{studentName},'%'),应改为CONCAT(CONCAT('%',#{customerName}),'%')

4.mybatis中传入多个参数

<resultMap id="Customer" type="cn.m.user.entity.Customer">
		<result column="CUSTOMERNAME" property="customerName" jdbcType="VARCHAR" />
		<result column="CUSTOMERADDRESS" property="customerAddress" jdbcType="VARCHAR" />
	</resultMap>
<select id="selectUser" resultMap="Customer">  
    select  *  from user_user_t   where user_name = #{0} and user_area=#{1}
</select>

其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。其中类型不同都不影响,比如上面的user_name如果是String而user_area是int都没问题。

5.xml文件中的转义符

&(逻辑与)  &amp;        
<(小于)    &lt;        
>(大于)    &gt;        
"(双引号)  &quot;      
'(单引号)  &apos; 

6.oracle的分页查询

第一种方法:

SELECT * FROM  
(  
SELECT A.*, ROWNUM RN  
FROM (SELECT * FROM TABLE_NAME) A  
WHERE ROWNUM <= 10  
)  
WHERE RN >= 1

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 10和RN >= 1控制分页查询的每页的范围。在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。

第二种方法:

SELECT * FROM  
(  
SELECT A.*, ROWNUM RN  
FROM (SELECT * FROM TABLE_NAME) A  
)  
WHERE RN BETWEEN 1 AND 10

这种方式是去掉查询第二层的WHERE ROWNUM <= 10语句,在查询的最外层控制分页的最小值和最大值。

绝大多数的情况下,第一个查询的效率比第二个高得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值