2021年3月28日:课堂扩展

课堂扩展

一、打开MyBatisDemo项目

在这里插入图片描述

二、进行课堂的练习,三种不同的显示方式

在这里插入图片描述
运行结果:
在这里插入图片描述

三、补充内容:使用不同MyBatis配置文件获取SQL会话对象

1、查看官网给出的资料内容

如果你想直接从Java而不是XML构建配置,或者创建自己的配置构建器,那么MyBatis提供了一个完整的配置类,它提供了与XML文件相同的所有配置选项。
在这里插入图片描述
注意,在本例中,配置是添加一个mapper类。映射器类是包含SQL映射注释的Java类,这些注释避免了对XML的需要。然而,由于Java注释的一些限制和一些MyBatis映射的复杂性,大多数高级映射(例如嵌套连接映射)仍然需要XML映射。由于这个原因,MyBatis将自动查找并加载对等XML文件(如果存在的话)(在本例中,将根据类路径和名称BlogMapper.class加载BlogMapper.xml)。

2、在java目录下新建dbutil包

在这里插入图片描述
3、在dbutil包下新建UserDataSourceFactory类
在这里插入图片描述
代码示例:

package net.lhf.mybatis.dbutil;

import org.apache.ibatis.datasource.pooled.PooledDataSource;

import javax.sql.DataSource;

/**
 * 功能:用户数据源
 * 作者:李红芙
 * 日期:2021年03月08日
 */

public class UserDataSourceFactory {
    public static DataSource getUserDataSource(){
        DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
                "jdbc:mysql://localhost:3306/testdb?useSSL=false","root","123456");
        return null;
    }
}

第二种示例:
创建测试类文件TestUserMapperNew文件
复制TestUserMapper文件,建立TestUserMapperNew文件。

1、获取数据源
在这里插入图片描述

DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
                    "jdbc:mysql://localhost:3306/testdb?useSSL=false","root","123456");
2、编写创建事务工厂、数据库环境,基于环境创建配置对象,添加用户映射器配置接口

在这里插入图片描述
代码示例:

			//创建事务工厂
            TransactionFactory transactionFactory = new JdbcTransactionFactory();
            //创建数据库环境
            Environment environment = new Environment("development",transactionFactory,dataSource);
            //基于环境创建配置对象
            Configuration configuration = new Configuration(environment);
            //添加用户映射器配置接口
            configuration.addMapper(UserMapper.class);

3、修改基于MyBatis配置对象构建SQL会话工厂源代码
在这里插入图片描述
修改为:
在这里插入图片描述
4、运行测试
在这里插入图片描述
出现问题了,接口和映射器之间没有连接在一起,之前是在配置文件中获取的,现在变换为接口获取。
说明:用户映射器接口里的抽象方法findByld()没有绑定有效的SQL语句,需要修改用户映射器接口的抽象方法,添加注解,绑定SQL语句。

5、修改用户映射器接口

(1)在UserMapper文件中,给两个查询方法添加@select注解,绑定要执行的SQL语句。
在这里插入图片描述
6、运行测试方法,查看结果。
在这里插入图片描述
小结:
在课堂中,老师让我们根据官网提供的资料内容从Java而不是XML构建配置,或者创建自己的配置构建器,感觉没有思路,不知道该从哪里下手,官网中的意思大概理解了,也理解到要从测试类中直接去获取,但不知道该怎么去获取,后面根据老师一讲解才觉得豁然开朗,才知道该如何去改。首先在测试类中直接获取数据源,然后创建事务工厂、数据库环境,基于环境创建配置对象,添加用户映射器配置接口,运行出来的时候还是会有错误,之前是用文件获取的数据源,现在我们环衬管理接口,所以接口和映射器就没有连接在一起。解决这个问题就需要在UserMapper文件中,给两个查询方法添加@select注解,绑定要执行的SQL语句,才不会报错。感觉现在课堂中,还不太会自己去解决问题,只能依靠老师讲解才能明白该如何去解决,所以课后我会多加一些时间来进行练习,尽量达到能够独立去解决问题,不会再遇到问题时,都不知道该如何去做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值