MyBatis数据库增删查改通用方法小记

MyBatis 的SqlSession通用写法手记


前期准备

(连接工具类、显示信息方法、格式化日期方法)

// 工具类:MyBatisUtil
public class MyBatisUtil {
    private static SqlSessionFactory factory = null;
/* 👆SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心*/
    static {
        try {
            String resource = "xml配置文件(JDBC)";
            // 读取
            InputStream is = Resources.getResourceAsStream(resource); 
            // 通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例
            factory = new SqlSessionFactoryBuilder().build(is); 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 打开会话
    public static SqlSession openSession() {
        if (factory != null) {
            return factory.openSession();
        }
        return null;
    }
}

// 显示用户信息
private void pringUser(List<User> users) { 
    // 使用List的形式导入用户信息形式如:{user1},{user2}这样
    System.out.println("ID\t姓名\t年龄\t生日");
    // 遍历list,得到所有人的信息,打印出来
    for (User user : users) {
        System.out.println(user.getId()+"\t"+user.getName() + "\t" + user.getAge() + "\t" + dateToString(user.getBirth()));
    }
}
// 格式化日期:把日期转换为字符串
private String dateToString(Date date) {
    // 把Date转成字符串的形式
    SimpleDateFormat sdf = new SimpleDateFormat();
    sdf.applyPattern("yyyy-MM-dd");
    // 转换完成,打包返回。
    return sdf.format(date);
}

这里第一个工具类需要创建一个新的Class,而接下来的两个方法写到Test方法内即可


增删查改四类写法

查询写法

// 大多数session会话写法 👉 [查询]
SqlSession session = null;//必须要做!
try{
    session = 工具类.打开会话();//必须要做!
	Dao接口 mapper = ssion.getMapper(Dao接口.class)// 括号内的class是将XML的方法映射到mapper中👆,用于mapper.方法名
	User类 user = mapper.方法名称(接口方法,要带上参数)
	打印方法(Arrays.asList(user));
}catch (Exception e) {
    // 抛出异常
    e.printStackTrace();
} finally {
    session.close();
    // 关闭会话
}

删除写法

// 大多数session会话写法 👉 [删除]
SqlSession session = null;// 必须要做!
try{
    session = 工具类.打开会话(); // 必须要做!
	Dao接口 mapper = ssion.getMapper(Dao接口.class)// 括号内的class是将XML的方法映射到mapper中👆,用于mapper.方法名
	mapper.删除的方法名(删除的ID);
    session.commit(); // commit : 手动提交
}catch (Exception e) {
    // 抛出异常
    e.printStackTrace();
} finally {
    session.close();
    // 必须要做!
    // 关闭会话
}

增加写法

// 大多数session会话写法 👉 [增加]
SqlSession session = null;// 必须要做!
try{
    session = 工具类.打开会话(); // 必须要做!
	Dao接口 mapper = ssion.getMapper(Dao接口.class)// 括号内的class是将XML的方法映射到mapper中👆,用于mapper.方法名
	/**正片部分:这里开始添加要加入的值*/
	User类 user = new User();
    user.setName("小杨");
    user.setAge(18);
    user.setBirth(时间)
    mapper.addUser增加方法名(user); // user打包带走,提交~
    session.commit(); // 最后commit : 手动提交
}catch (Exception e) {
    // 抛出异常
    e.printStackTrace();
} finally {
    session.close();
    // 必须要做!
    // 关闭会话
}

修改写法(更新)

// 大多数session会话写法 👉 [修改]
// 这一块其实和增加没太大区别,唯一区别就是mapper.方法名不同
SqlSession session = null;// 必须要做!
try{
    session = 工具类.打开会话(); // 必须要做!
	Dao接口 mapper = ssion.getMapper(Dao接口.class)// 括号内的class是将XML的方法映射到mapper中👆,用于mapper.方法名
	/**正片部分:这里开始添加要改的值*/
	User类 user = new User();
    user.setName("王校长");
    user.setAge(28);
    user.setBirth(时间)
    mapper.update方法名(user); // user打包带走,提交~
    session.commit(); // 最后commit : 手动提交
}catch (Exception e) {
    // 抛出异常
    e.printStackTrace();
} finally {
    session.close();
    // 必须要做!
    // 关闭会话
}

运行效果:
增加:

   //准备的数据
    User user = new User();
    user.setId(6);
    user.setName("汪汪");
    user.setAge(5);
    user.setBirth(new Date());
    mapper.addUser(user);

效果:
在这里插入图片描述

修改:(我们对汪汪下手)

   //准备的数据
   User user = new User();
   user.setId(5);
   user.setName("汪汪喵喵");
   user.setAge(25);
   user.setBirth(new Date());
   mapper.updateUser(user);

在这里插入图片描述
查询:


在这里插入图片描述

删除:

            User user = new User();
            user.setId(6);
            user.setName("汪汪");
            user.setAge(25);
            user.setBirth(new Date());
            mapper.deleteUser(user);

在这里插入图片描述

菜某 完成于 2020年10月20日17点00分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值