三、CRUD(增删改查)
3.1、namespace
namespace中的包名需要和mapper接口的包名一致!
1. id:就是对应的namespace中的方法名;
2. resultType:SQL语句执行的返回值;
3. parameterType:参数类型!
3.2、Select(查询语句)
-
编写接口
//查询全部用户 List<User> getUserList(); //根据id查询用户 User getUserById(int user_id);
-
编写对应的mapper中的sql语句
<!--查询全部用户--> <select id="getUserList" resultType="com.baidu.pojo.User"> select * from user </select> <!--根据id查询用户--> <select id="getUserById" parameterType="int" resultType="com.baidu.pojo.User"> select * from user where user_id=#{user_id} </select>
-
测试
//查询全部用户 @Test public void test(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //执行SQL UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> userList = userMapper.getUserList(); for (User user:userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } //根据id查询用户 @Test public void getUserById(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //执行SQL UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user); sqlSession.close(); }
3.3、Insert(增加语句)
-
编写接口
//添加一个用户 void addUser(User user);
-
编写对应的mapper中的sql语句
<!--添加一个用户--> <insert id="addUser" parameterType="com.baidu.pojo.User"> insert into user (user_id,user_name,password) values (#{user_id},#{user_name},#{password}) </insert>
-
测试
//添加一个用户 @Test public void addUser(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //执行SQL UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = new User(); user.setUser_id(4); user.setUser_name("admin"); user.setPassword("123456"); userMapper.addUser(user); //提交事务 sqlSession.commit(); sqlSession.close(); }
3.4、Update(修改语句)
-
编写接口
//修改用户 void updateUser(User user);
-
编写对应的mapper中的sql语句
<!--修改用户--> <insert id="updateUser" parameterType="com.baidu.pojo.User"> update user set user_name=#{user_name},password=#{password} where user_id=#{user_id} </insert>
-
测试
//修改用户 @Test public void updateUser(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //执行SQL UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = new User(); user.setUser_id(3); user.setUser_name("root"); user.setPassword("123456"); userMapper.updateUser(user); //提交事务 sqlSession.commit(); sqlSession.close(); }
3.5、Delete(删除语句)
-
编写接口
//删除用户 void deleteUser(int user_id);
-
编写对应的mapper中的sql语句
<!--删除用户--> <insert id="deleteUser" parameterType="com.baidu.pojo.User"> delete from user where user_id=#{user_id} </insert>
-
测试
//删除用户 @Test public void deleteUser(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //执行SQL UserMapper userMapper = sqlSession.getMapper(UserMapper.class);; userMapper.deleteUser(4); //提交事务 sqlSession.commit(); sqlSession.close(); }
3.6、注意
增删改都需要提交事务