package com.itcast.domain;
public class User {
private int id;
private String username;
private String password;
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassward() { return password; }
public void setPassward(String passward) { this.password = passward; }
@Override
public java.lang.String toString() {
return "User{" + "id=" + id + ", username=" + username + ", passward=" + password + '}';
}
}
package com.itcast.mapper;
import com.itcast.domain.User;
import java.util.List;
public interface UserMapper {
public List findByCondition(User user);
}
select * from user where id = #{id} and username = #{username} and password = #{password}
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
package com.itcast.test;
import com.itcast.domain.User;
import com.itcast.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MapperTest {
@Test
public void test1() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
//mybatis实现dao层
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//模拟user
User condition = new User();
condition.setId(1);
condition.setUsername("zhangsan");
condition.setPassward("123");
//执行操作
List userList = mapper.findByCondition(condition);
System.out.println(userList);
}
}
package com.itcast.mapper;
import com.itcast.domain.User;
import java.util.List;
public interface UserMapper {
public List findByCondition(User user);
public List findByids(List ids);
}
4.Sql片段抽取
Sql中可以将重复的sql提取出来,使用时用include应用即可最终达到sql重用的目的:
select * from user
and id = #{id}
and username = #{username}
and password = #{password}
#{id}