Mybatis进阶
1.分页:
7.1使用limit分页
sql:
select * from user limit 0,1
Mybatis实现:
在Usermapper.xml下加入
<resultMap id="userbylimit" type="user">
<result column="pwd" property="passwd"></result>
</resultMap>
<select id="getUserListlimit" parameterType="map" resultMap="userbylimit">
select * from user limit #{startIndex},#{pageIndex}
</select>
在UserMapper加入:
List<User> getUserListlimit(Map<String,Object> map);
测试:
@Test public void getUserInfolimit(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("startIndex",1);
map.put("pageIndex",2) ;
List<User> userListlimit = mapper.getUserListlimit(map);
for (User user : userListlimit) {
System.out.println(user);
}
sqlSession.close();
}
7.2Rowbunds分页
麻烦不写了
2.注释开发
普通查个询:
1.UserMapper接口
public interface UserMapper {
@Select("select * from user")
List<User> getUserList();
}
2.mybatis-config.xml
<mappers>
<mapper class="com.su.dao.UserMapper"></mapper>
</mappers>
3.test:
@Test
public void testV(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
有参数的查询
1.UserMapper接口
上面#{里的值}以Pararm括号里为准,多条件只用往后接着加@Param 即可
public interface UserMapper {
@Select("select * from user where id = #{id} ")
User getUserbyid(@Param("id") int nothisid);
@Select("select * from user where id = #{id} and name = #{name} ")
User getUserbyid(@Param("id") int nothisid,@Param("name") String nothisStr);
}
2.mybatis-config.xml
<mappers>
<mapper class="com.su.dao.UserMapper"></mapper>
</mappers>
3.test:
@Test
public void testV(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
增:
1.UserMapper接口
public interface UserMapper {
@Insert("insert into user(id,name,pwd)values(#{id},#{name},#{passwd})")
int addUser(User user);
}
2.mybatis-config.xml
<mappers>
<mapper class="com.su.dao.UserMapper"></mapper>
</mappers>
3.test:
@Test
public void adduserbyzs(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int smw = mapper.addUser(new User(5,"smw","123456"));
if (smw > 0){
System.out.println("cg");
}
sqlSession.commit();
sqlSession.close();
}
4.小知识:
在Mybatisutils工具类中
public static SqlSession getSqlSession(){
SqlSession sqlSession = sqlSessionFactory.openSession(true);
return sqlSession;
}
将此处后面加个true
就不用在test中commit 会自动帮你提交
加完后test修改为
public void adduserbyzs(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int smw = mapper.addUser(new User(6,"smw2","123456"));
if (smw > 0){
System.out.println("cg");