面向接口编程
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
注意:利用注解开发就不需要mapper.xml映射文件了 .
//查询全部用户@Select("select id,name,pwd password from user")public List<User> getAllUser();
<!--使用class绑定接口--><mappers> <mapper class="com.kuang.mapper.UserMapper"/></mappers>
@Testpublic void testGetAllUser() { SqlSession session = MybatisUtils.getSession(); //本质上利用了jvm的动态代理机制 UserMapper mapper = session.getMapper(UserMapper.class); List<User> users = mapper.getAllUser(); for (User user : users){ System.out.println(user); } session.close();}
改造MybatisUtils工具类的getSession( ) 方法,重载实现。
//获取SqlSession连接 public static SqlSession getSession(){ return getSession(true); //事务自动提交 } public static SqlSession getSession(boolean flag){ return sqlSessionFactory.openSession(flag); }
【注意】确保实体类和数据库字段对应
//根据id查询用户@Select("select * from user where id = #{id}")User selectUserById(@Param("id") int id);
@Testpublic void testSelectUserById() { SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUserById(1); System.out.println(user); session.close();}
//添加一个用户@Insert("insert into user (id,name,pwd) values (#{id},#{name},#{pwd})")int addUser(User user);
@Testpublic void testAddUser() { SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = new User(6, "ew", "123456"); mapper.addUser(user); session.close();}
//修改一个用户@Update("update user set name=#{name},pwd=#{pwd} where id = #{id}")int updateUser(User user);
@Testpublic void testUpdateUser() { SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = new User(6, "秦疆", "zxcvbn"); mapper.updateUser(user); session.close();}
//根据id删除用@Delete("delete from user where id = #{id}")int deleteUser(@Param("id")int id);
@Testpublic void testDeleteUser() { SqlSession session = MybatisUtils.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); mapper.deleteUser(6); session.close();}
【注意点:增删改一定记得对事务的处理】
@Param注解用于给方法参数起一个名字。以下是总结的使用原则:
INSERT INTO user (name) VALUES (#{name});INSERT INTO user (name) VALUES (?);
INSERT INTO user (name) VALUES ('${name}');INSERT INTO user (name) VALUES ('kuangshen');
联系客服