Mybatis之基于代理 Dao 实现 CRUD 操作

注意:以下操作全是在上一篇博客代码的基础上进行的

1.查询

在dao接口中加入方法findById

在用户的映射配置文件中进行配置

细节:

id:要与dao接口中方法名一致

resultType:用于指定结果集的类型,属性值是封装对象的包类名

parameterType:用于指定输入参数的类型

sql中的#{}:占位符,相当于jdbc中的?

测试类

public static void main(String[] args) throws Exception {

    //1.读取配置文件
    InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
    //2.创建 SqlSessionFactory 的构建者对象
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3.使用构建者创建工厂对象 SqlSessionFactory
    SqlSessionFactory factory = builder.build(in);
    //4.使用 SqlSessionFactory 生产 SqlSession 对象
    SqlSession session = factory.openSession();
    //5.使用 SqlSession 创建 dao 接口的代理对象
    UserDao userDao = session.getMapper(UserDao.class);
    //6.使用代理对象执行查询所有方法
    User user = userDao.findById(41);
    System.out.println(user);
    //7.释放资源
    session.close();
    in.close();
}

运行结果:

2.增加保存

 在dao接口中添加方法

在用户的映射配置文件中进行配置

细节:

标签体为<insert>

parameterType:代表参数的类型,因为我们要传入的是一个类的对象所以类型就写类的全名称。

#{}内写对象的属性

执行方法:

public static void main(String[] args) throws Exception {

    //1.读取配置文件
    InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
    //2.创建 SqlSessionFactory 的构建者对象
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3.使用构建者创建工厂对象 SqlSessionFactory
    SqlSessionFactory factory = builder.build(in);
    //4.使用 SqlSessionFactory 生产 SqlSession 对象
    SqlSession session = factory.openSession();
    //5.使用 SqlSession 创建 dao 接口的代理对象
    UserDao userDao = session.getMapper(UserDao.class);
    //6.使用代理对象执行查询所有方法
    User user = new User();
    user.setUsername("You");
    user.setAddress("上海");
    user.setBirthday(new Date());
    user.setSex("女");
    int i = userDao.saveUser(user);
    if(i == 1)
        System.out.println("保存成功");
    else
        System.out.println("保存失败");
    session.commit();
    //7.释放资源
    session.close();
    in.close();
}

注意:

在增删改方法中一定要注意事务的提交 session.commit();

运行结果:

查看数据库确实运行成功

3.修改

在dao接口添加方法

配置用户映射文件

执行方法

public static void main(String[] args) throws Exception {

    //1.读取配置文件
    InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
    //2.创建 SqlSessionFactory 的构建者对象
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3.使用构建者创建工厂对象 SqlSessionFactory
    SqlSessionFactory factory = builder.build(in);
    //4.使用 SqlSessionFactory 生产 SqlSession 对象
    SqlSession session = factory.openSession();
    //5.使用 SqlSession 创建 dao 接口的代理对象
    UserDao userDao = session.getMapper(UserDao.class);
    //6.使用代理对象执行查询所有方法
    User user = userDao.findById(51);
    user.setUsername("ylm");
    int i = userDao.updateUser(user);

    session.commit();
    System.out.println(i);
    //7.释放资源
    session.close();
    in.close();
}

4.删除

在dao层添加方法

配置用户映射文件

执行方法

public static void main(String[] args) throws Exception {

    //1.读取配置文件
    InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
    //2.创建 SqlSessionFactory 的构建者对象
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3.使用构建者创建工厂对象 SqlSessionFactory
    SqlSessionFactory factory = builder.build(in);
    //4.使用 SqlSessionFactory 生产 SqlSession 对象
    SqlSession session = factory.openSession();
    //5.使用 SqlSession 创建 dao 接口的代理对象
    UserDao userDao = session.getMapper(UserDao.class);
    //6.使用代理对象执行查询所有方法

    int i = userDao.deleteUserById(50);

    session.commit();
    System.out.println(i);
    //7.释放资源
    session.close();
    in.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值