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>
相关推荐
当需要传入多个参数时,可以使用MyBatis的`@Param`注解。在接口方法中,为每个参数添加`@Param`注解,指定参数名。在XML文件中,使用对应的参数名来获取值。 ```java public List<Teacher> selectTeacher(@Param...
可以通过HashMap将多个参数作为键值对传递: ```java public User queryUser(Map, Object> map); ``` 在XML中,可以使用键名来引用HashMap中的值: ```xml select * from user where user_name = #{...
在本示例中,如果涉及多个操作,事务管理将确保数据的一致性。 9. **日志调试**:MyBatis提供了丰富的日志功能,可以帮助开发者跟踪SQL执行情况,便于调试和性能优化。 综上所述,这个"mybatis查询简单示例"涵盖了...
请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1) 其实还有更简单的方法,而且是更好的方法,使用合理描述参数和...
6. **批处理**:MyBatis提供了批处理功能,可以通过设置SqlSession的自动提交为false,然后执行多条SQL后再统一提交,以提高效率。例如,使用`<batch>`标签可以批量插入数据。 7. **JDBC的封装**:MyBatis在JDBC的...
在MyBatis中,`<select>`元素主要用于执行查询操作,如获取单个记录、多条记录或执行无返回值的SQL。下面,我们将详细解析`<select>`元素的各个属性及其使用方法。 1. **id**: 这是映射语句的唯一标识,它在同一个...
此外,它还支持条件构造器,可以根据传入的参数动态生成对应的 WHERE 子句。 3. **主键自增与回填**:对于主键自增的表,MyBatis_Plus 可以自动处理插入后的主键值,无需手动获取。 4. **分页查询**:MyBatis_Plus...
MyBatis可以通过`<delete>`标签配合`<foreach>`来实现,例如,传入一个ID列表,MyBatis会生成一个包含所有ID的IN子句,从而一次性删除多条记录。 - 另外,批量删除还可以结合存储过程来提高性能,MyBatis允许调用...
在Java开发中,MyBatis是一个非常流行的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,提供了灵活的数据库操作方式。Oracle则是一种广泛应用的关系型数据库管理系统,广泛用于大型企业级应用。当我们在...
在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...
* 使用limit关键字,需要传入开始索引和每页条数两个参数。 八、MyBatis多参数处理 * 使用arg0、arg1...或param1、param2...表示参数的顺序。 * 使用@Param注解定义参数名称,在Sql语句中通过注解中所定义的参数...
例如,我们可以调用Mapper接口的方法,传入参数,然后通过SqlSession的execute方法执行SQL,最后通过SqlSession的selectOne、selectList等方法获取结果。 6. **动态SQL**:MyBatis的一大亮点是支持动态SQL,通过`...
是根元素,是子元素,可以定义多个。用于配置事务管理,用于配置数据源。 3.3 映射文件 MyBatis的映射文件是xml文件,主要元素包括: * <select>:查询元素 * <insert>:插入元素 * <update>:更新元素 * ...
4. **动态SQL**:Mybatis的强项之一是它的动态SQL功能,可以在XML映射文件中编写条件语句,根据传入参数的不同执行不同的SQL片段。 5. **SqlSession与Executor**:SqlSession是Mybatis中的主要操作接口,用于执行...
2. Read(读取):通过SELECT语句获取数据,可以是单条记录,也可以是多条记录,取决于方法签名。 3. Update(更新):根据方法名和参数构建UPDATE SQL,执行更新操作。 4. Delete(删除):构造DELETE SQL,执行...
二级缓存可以在多个`SqlSession`实例之间共享,因此对于同一`namespace`下的多个查询操作,如果满足一定的条件,可以共享缓存中的数据,从而避免多次执行相同的查询操作。为了支持序列化,实体类需要实现`...
举例说明条件查询,假设我们有一个用户查询接口,接受多个条件作为参数: ```xml SELECT * FROM users != null and name != ''"> AND name LIKE #{name} != null and email != ''"> AND email LIKE #{...
本地缓存存在于SqlSession级别,二级缓存则在SqlSessionFactory级别,可跨多个SqlSession共享数据。 **7. MyBatis的动态SQL** MyBatis允许在XML映射文件或者Mapper接口的方法中编写动态SQL,如if、choose、when、...
读取数据可以分为查询单条记录和查询多条记录。MyBatis提供了多种方式实现: - 查询单个实体:通过Mapper接口的selectOne方法,配合SQL的SELECT语句获取单个结果。 - 查询集合:使用selectList方法,返回结果集...
`#{}`是MyBatis的占位符,用于传入参数。 接下来是“删”操作。删除数据使用`<delete>`标签,以删除用户为例: ```xml DELETE FROM user WHERE id = #{id} ``` 这里通过`id`参数匹配并删除对应ID的用户记录。 ...