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);