Javaweb学习笔记第八弹

继续MyBatis学习

SQL语句警告提示问题

产生原因:IDEA和数据库没有建立连接,不识别表的信息
解决方式:在IDEA中配置MySQL数据库连接

在IDEA的Maven项目中,如果想要直接通过IDEA进行MySQL数据库的连接,可以点击右侧的DataBase,

选择MySQL数据库,

输入你想要连接的数据库的主机名称、使用者、密码和数据库名称,

并可以通过下方的Test进行测试,随即连接成功!

这可以被看作一个Navicat的翻版,操作方法与Navicat相同,快去试一试吧!

Mapper代理开发

对于上一篇的Javaweb学习笔记的相关改进:在执行SQL语句那里,使用时需要调用资源文件中的某一个名称空间,需要依赖于字符串名称,较为不方便;

遂要将其改正,可以利用上述题目Mapper代理开发(接口)进行修正,步骤如下:

1、定义与SQL映射文件同名的Mapper接口,并且将Mapper接口SQL映射文件放置在同一目录下;

注意:在操作该步骤时,记得不要直接将SQL映射文件拖动到接口的同目录下;

                    需要在资源文件中重新创建一个与接口目录同名的Directory文件,

                    注意到如果接口目录的名称中含有.,那么,在实际上,会是一个个文件夹的层层叠加;而且在给资源文件中的Directory文件夹取名时,其中的.不会自动转换成文件夹的层层目录,所以,需要将其中的.换成/进行取名;

这样,就完成了第一个步骤!

2、设置SQL映射文件的namespace属性为Mapper接口全限定名;(先假设设置Mapper接口名为:userMapper)

记得对MyBatis核心配置文件中有关SQL映射文件的相对路径进行更改

接着,就来到了前面提到过的更改执行sql文件的相关代码内容:

获取接口的代理对象:(???????这里不是很清楚)

userMapper userMapper=sqlSession.getMapper(userMapper.class);

List users=userMapper.selectAll();

3、在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致

4、编码:
1)通过SqlSession 的getMapper方法获取Mapper接口的代理对象
2)调用对应方法完成sql的执行

Mapper的核心配置文件(相关内容讲解)

environments

其中可以放置多个environment数据信息,用于连接多个数据库

通过default属性切换不同的environment

dataSource:数据库连接池

由于在SQL映射文件中的resultType需要定义成较为麻烦名称

可以利用typeAliases去定义一个较为简单的类型别名(记得放在environments前)

最后的使用结果是不区分大小写,直接定义为类型别名即可

配置各个标签时,需要遵守前后顺序

posted @ 2022-09-18 21:39  yesyes1  阅读(8)  评论(0编辑  收藏  举报