标签:注入 users session 对象 span mamicode png delete update
为什么要分页?
减少数据的处理量
一开始我们用的limit分页
select * from user limit 0,2;
从0开始(第一个字段),一页显示两个字段
从3开始,一页两个记录
一页三个记录
使用Mybatis实现分页
先在UserMapper.java这个抽象类里写一个抽象方法
测试类
我们学到现在基本上都是基本面向接口编程
为什么?
为了解耦
在UserMapper中
@Select("select * from User")
List<User> getUsers(); //返回值是List<User> //User对象(这是我自己创建的一个类)
然后我们在mybatis-config.xml里绑定接口
<mappers>
<mapper class="class.com.zou.dao.UserMapper"/>
</mappers>
我们可以在工具类创建的时候设置自动提交事务!
以后我们再也不用commit了
在工具类里
给这玩意改成true
方法存在多个参数时,除了map之类的参数,别的参数我们最好都加上@Param(“”)注解
言归正传
1.通过id查用户
接口类:
@Select("select * from user where id = #{id}")
User getUserById(@Param("id") int id);
测试类
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User pig = mapper.getUserById(3);
System.out.println(pig);
sqlSession.close();
}
结果
@Insert("insert into user(id,name,pwd) values (#{id},#{name},#{pwd})")
int addUser(User user);
测试
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(8,"邹二狗","zh1203"));
sqlSession.close();
}
@Update("update user set name=#{name},pwd=#{pwd} where id = #{id}")
int upDate(User user);
测试
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.upDate(new User(7,"邹三狗","123"));
sqlSession.close();
}
@Delete("delete from user where id = #{id}")
int deleat(int id);
测试
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleat(7);
sqlSession.close();
}
${}和#{}的区别:${}注入会直接注入,即注入的变量是什么就注入什么,
而#{}会在你注入的变量上加上“”,
因此当你采用${}注入时,如果注入的内容恰好是sql语句,则会改变你开始的sql语句,#{}则不会
标签:注入 users session 对象 span mamicode png delete update
原文地址:https://www.cnblogs.com/tuyaojiao/p/12388800.html