解决mybatis传入多个参数的问题,多条语句执行

1.mybatis 传入多个参数的问题,我也纠结了很久,找了很多资料,都没有得到想要的结果,

无意中,mybatis 插件提示的时候发现了,原来是这样写的!

package com.hengyu.ticket.dao;

import com.hengyu.ticket.entity.Admin;
import java.util.List;

import org.apache.ibatis.annotations.Param;

/**
 * 
 * @author 李冠锋 2015-12-02
 *
 */
public interface AdminDao {
	
	public abstract List<Admin> querylist(String name,String mobile,Admin admin,@Param("id") Integer id);
	
}
<select id="querylist"  resultMap="result_map">
	select
		*
	from
		admin
	where
		userid = #{id} 
		<!-- #{id}  相当于 #{param4} -->
	and 
		<!-- param2 方法中的 mobile -->
		realname like'%${param2}%'
	<if test="param3!=null">
		<!-- param3 方法中的 admin 对象 -->
		or
			realname like '%${param3.realname}%'
	</if>
  </select><!-- 不要加入parameterType就可以这样写了 -->

2. mybatis 执行多条sql语句,配置jdbc驱动属性 allowMultiQueries = true 就可以执行多条语句操作了

可以多条语句更新 或删除

<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://192.168.4.127:3306/ticket" />
		<property name="username" value="root" />
		<property name="password" value="helloworld" />
		<property name="connectionProperties">
			<props>
				<prop key="allowMultiQueries">true</prop>
			</props>
		</property>
	</bean>
<delete id="save" parameterType="Admin" statementType="PREPARED">
		delete from admin where 1=2;
		delete from admin where 1=2;
		update admin set userid = 1 where 1=2;
  </delete>

3. 批量插入操作

<insert id="batchSave" parameterType="list">
		insert
		into
			ticket_line
			(<include refid="columns"/>)
		values
		<foreach item="i" collection="list" index="index"  separator=",">
			(<include refid="batch_propertys"/>)
		</foreach>
	 </insert>
 <sql id="columns">
	`lmid`,
	`LineName`,
	`ShiftCode`,
	`CityStartID`,
	`OriginStartTime`,
	`STStartID`,
	`STStartName`,
	`CityArriveID`,
	`STArriveID`,
	`STArriveName`,
	`StartTime`,
	`ArriveTime`,
	`TicketPrice`,
	`TransCompany`,
	`TicketDate`,
	`MakeDate`,
	`mileage`,
	`favprice`
  </sql>
 <sql id="batch_propertys">
	#{i.lmid},
	#{i.linename},
	#{i.shiftcode},
	#{i.citystartid},
	#{i.originstarttime},
	#{i.ststartid},
	#{i.ststartname},
	#{i.cityarriveid},
	#{i.starriveid},
	#{i.starrivename},
	#{i.starttime},
	#{i.arrivetime},
	#{i.ticketprice},
	#{i.transcompany},
	#{i.ticketdate},
	#{i.makedate},
	#{i.mileage},
	#{i.favprice}
  </sql>

猜你喜欢

转载自liguanfeng.iteye.com/blog/2261414
今日推荐