public User getUserById(Integer id){ SqlSession sqlSession = sqlSessionFactory.openSession(); User user = (User) sqlSession.selectOne("com.antonio.hello.mybatis.mapper.UserDao.getUserById", id); sqlSession.close(); return user; }
public Integer addUser(User user){ SqlSession sqlSession = sqlSessionFactory.openSession(); int insert = sqlSession.insert("com.antonio.hello.mybatis.mapper.UserDao.addUser", user); sqlSession.commit(); sqlSession.close(); return insert; }
public Integer addUser2(User user){ SqlSession sqlSession = sqlSessionFactory.openSession(); int insert = sqlSession.insert("com.antonio.hello.mybatis.mapper.UserDao.addUser2", user); sqlSession.commit(); sqlSession.close(); return insert; }
public Integer deleteUserById(Integer id){ SqlSession sqlSession = sqlSessionFactory.openSession(); int delete = sqlSession.delete("com.antonio.hello.mybatis.mapper.UserDao.deleteUserById", id); sqlSession.commit(); sqlSession.close(); return delete; }
public Integer updateUser(User user){ SqlSession sqlSession = sqlSessionFactory.openSession(); int delete = sqlSession.delete("com.antonio.hello.mybatis.mapper.UserDao.updateUser", user); sqlSession.commit(); sqlSession.close(); return delete; }
<selectid="getUserById"resultType="com.antonio.hello.mybatis.entity.User"> select * from user where id=#{id}; </select> <insertid="addUser"parameterType="com.antonio.hello.mybatis.entity.User"> insert into user (username,address) values (#{username},#{address}); </insert> <insertid="addUser2"parameterType="com.antonio.hello.mybatis.entity.User"> <selectKeyresultType="java.lang.String"keyProperty="id"order="BEFORE"> select uuid(); </selectKey> insert into user (id,username,address) values (#{id},#{username},#{address}); </insert>
<deleteid="deleteUserById"parameterType="java.lang.Integer"> delete from user where id=#{id} </delete>
<updateid="updateUser"parameterType="com.antonio.hello.mybatis.entity.User"> update user set username = #{username} where id=#{id}; </update>
<selectid="getAllUser"resultType="com.antonio.hello.mybatis.entity.User"> select * from user; </select> </mapper>
简化后的 UserDao.java
既然模板化程度很高,我们就要去解决它,原理很简单,就是前面 Spring 中所说的动态代理。我们可以将 UserDao 简化成一个接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
package com.antonio.hello.mybatis.mapper;
publicinterfaceUserDao{ User getUserById(Integer id);
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !