传入对象 如果传入单个可能因为反射问题找不到
mapper代码:
package com.yh.mapper;
import java.util.List;
import com.yh.entity.Tuser;
public interface tuserMapper {
//条件查询
List<Tuser> getTuser(Tuser tuser);
int deleteTuser(String id);
}
mapper.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yh.mapper.tuserMapper">
<!-- 自定义返回结果集 -->
<resultMap id="userMap" type="com.yh.entity.Tuser">
<id property="userid" column="userid" ></id>
<result property="username" column="username" ></result>
<result property="password" column="password" ></result>
<result property="phone" column="phone" ></result>
</resultMap>
<!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->
<!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys
方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->
<!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
<!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值 -->
<select id="getTuser" parameterType="com.yh.entity.Tuser" resultMap="userMap">
<bind name="uname" value="'%'+username+'%'"/>
select * from t_user where userName like #{uname}
</select>
</mapper>
service代码:
package com.yh.service;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.yh.entity.Tuser;
import com.yh.mapper.tuserMapper;
import com.yh.util.sqlsessionFactor;
public class userService {
public static void main(String[] args) {
selectUserById();
}
/**
* 根据条件查询用户
*/
private static void selectUserById(){
SqlSession session=sqlsessionFactor.getSession();
tuserMapper mapper=session.getMapper(tuserMapper.class);
try {
Tuser tuser = new Tuser();
tuser.setUsername("yanyan");
List<Tuser> user= mapper.getTuser(tuser);
System.out.println(user.toString());
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}
}
}