MyBatis单条记录的增删改查操作

本文介绍了如何使用 MyBatis 框架进行基本的数据库增删改查(CRUD)操作,包括创建 UserMapper 接口及其实现,并通过 SqlSession 对象调用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转载至http://blog.youkuaiyun.com/mahoking

       本文内容主要介绍单条记录的增删改查操作,MyBatis提供了很多完成单条记录的增删改查操作的API。本例主要讲述<UserMapper> UserMapper org.apache.ibatis.session.SqlSession.getMapper(Class<UserMapper> clazz)的使用。使用此API,我们需要创建UserMapper操作接口,函数名和MyBatis的User.xml配置文件中的操作id名对应。

【转载使用,请注明出处:http://blog.youkuaiyun.com/mahoking

  1. public interface UserMapper {  
  2.   
  3.     /======基本增删改查操作======/  
  4.     / 
  5.       删除操作 
  6.       @param userName 
  7.      /  
  8.     public void deleteUser(String userName);  
  9.       
  10.     / 
  11.       更新操作 
  12.       @param user 
  13.      /  
  14.     public void updateUser(User user);  
  15.       
  16.     / 
  17.       添加操作 
  18.       @param user 
  19.      /  
  20.     public void insertUser(User user);     
  21.       
  22.     / 
  23.       查询操作 
  24.       @param id 
  25.       @return 
  26.      */  
  27.     public User selectUser(int id);   
  28. }  
public interface UserMapper {

/*======基本增删改查操作======*/
/**
 * 删除操作
 * @param userName
 */
public void deleteUser(String userName);

/**
 * 更新操作
 * @param user
 */
public void updateUser(User user);

/**
 * 添加操作
 * @param user
 */
public void insertUser(User user);   

/**
 * 查询操作
 * @param id
 * @return
 */
public User selectUser(int id); 

}


       MyBatis具体增删改查的操作实现过程。

  1. / 
  2.       增加操作 
  3.      /  
  4.     public static void insertUser() {  
  5.         SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();  
  6.         SqlSession session = ssf.openSession();  
  7.         try {  
  8.             UserMapper userMapper = session.getMapper(UserMapper.class);  
  9.             User newUser = new User(“MyBatisUser”“123456”);  
  10.             userMapper.insertUser(newUser);  
  11.             // 这里一定要提交,不然数据进不去数据库中  
  12.             session.commit();  
  13.             System.out.println(newUser);  
  14.         } catch (Exception e) {  
  15.             e.printStackTrace();  
  16.         } finally {  
  17.             MyBatisUtil.closeSession(session);  
  18.         }  
  19.     }  
  20.   
  21.     / 
  22.       删除操作 
  23.      /  
  24.     public static void deleteUser(String userName) {  
  25.         SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();  
  26.         SqlSession session = ssf.openSession();  
  27.         try {  
  28.             UserMapper userMapper = session.getMapper(UserMapper.class);  
  29.             userMapper.deleteUser(userName);  
  30.             //提交Session,更新数据库  
  31.             session.commit();  
  32.         } catch (Exception e) {  
  33.             e.printStackTrace();  
  34.         } finally {  
  35.             MyBatisUtil.closeSession(session);  
  36.         }  
  37.     }  
  38.   
  39.     / 
  40.       删除操作 
  41.      /  
  42.     public static void updateUser(User user) {  
  43.         SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();  
  44.         SqlSession session = ssf.openSession();  
  45.         try {  
  46.             UserMapper userMapper = session.getMapper(UserMapper.class);  
  47.           
  48.             userMapper.updateUser(user);  
  49.             // 这里一定要提交,不然数据进不去数据库中  
  50.             session.commit();  
  51.         } catch (Exception e) {  
  52.             e.printStackTrace();  
  53.         } finally {  
  54.             MyBatisUtil.closeSession(session);  
  55.         }  
  56.     }  
  57.   
  58.     / 
  59.       查询操作 
  60.      /  
  61.     public static User selectUser(int id) {  
  62.         SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();  
  63.         SqlSession session = ssf.openSession();  
  64.         try {  
  65.             UserMapper userMapper = session.getMapper(UserMapper.class);  
  66.             User user = userMapper.selectUser(id);  
  67.             return user;  
  68.         } catch (Exception e) {  
  69.             e.printStackTrace();  
  70.             return null;  
  71.         } finally {  
  72.             MyBatisUtil.closeSession(session);  
  73.         }  
  74.     }  
/** 
* 增加操作
*/
public static void insertUser() {
SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
SqlSession session = ssf.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User newUser = new User(“MyBatisUser”, “123456”);
userMapper.insertUser(newUser);
// 这里一定要提交,不然数据进不去数据库中
session.commit();
System.out.println(newUser);
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSession(session);
}
}

/**
 * 删除操作
 */
public static void deleteUser(String userName) {
    SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
    SqlSession session = ssf.openSession();
    try {
        UserMapper userMapper = session.getMapper(UserMapper.class);
        userMapper.deleteUser(userName);
        //提交Session,更新数据库
        session.commit();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        MyBatisUtil.closeSession(session);
    }
}

/**
 * 删除操作
 */
public static void updateUser(User user) {
    SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
    SqlSession session = ssf.openSession();
    try {
        UserMapper userMapper = session.getMapper(UserMapper.class);

        userMapper.updateUser(user);
        // 这里一定要提交,不然数据进不去数据库中
        session.commit();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        MyBatisUtil.closeSession(session);
    }
}

/**
 * 查询操作
 */
public static User selectUser(int id) {
    SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
    SqlSession session = ssf.openSession();
    try {
        UserMapper userMapper = session.getMapper(UserMapper.class);
        User user = userMapper.selectUser(id);
        return user;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    } finally {
        MyBatisUtil.closeSession(session);
    }
}</pre>

        对于MyBatisUtil对象,读者可以参考上文

 

【转载使用,请注明出处:http://blog.youkuaiyun.com/mahoking


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值