栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb自我学习——进一步学习MyBatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb自我学习——进一步学习MyBatis

目录

解决SQL映射文件的警告提示

Mapper 代理开发

目的:

Mapper代理方式使用

1.定义与SQL映射文件同名的Mapper接口...

 2.设置SQL映射文件的namespace属性为Mapper接口全限定名...

​3.在Mapper接口中定义方法...

4.编码 

 5.运行结果:​

 MyBatis核心配置文件

属性(properties):

设置(settings):

 类型别名(typeAliases):

类型处理器(typeHandlers):

对象工厂(objectFactory):

插件(plugins):

环境配置(environments):

数据库厂商标识(databaseIdProvider):

映射器(mappers):


解决SQL映射文件的警告提示

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

操作:

①确定Tool Window Bars开启

②右侧点击右侧Database,之后如图点击

③找到MySQL

④配置数据库

⑥然后test connection(第一次需要下载驱动)

 

 apply之后ok就可以用idea操作MySQL数据库,进行增删改查等操作。

⑦成功,不再报错


Mapper 代理开发

目的:

① 解决原生方式中的硬编码
② 简化后期执行SQL

Mapper代理方式使用

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

为了方便管理SQL映射文件还是放在编译器的resources下,但是可以通过下图方式让它在Maven编译之后到同一目录。

 

注意:要写自己设置Mapper接口的相对路径下,一定要用  /  隔开 

将对应SQL映射文件放在里面。 

之后再Run —>Run Maven Goal —>compile,然后我们去target目录下查看

然后你就会神奇的发现!!! 他们在一块了!!!惊不惊喜!!!意不意外!!!

注意:这样做需要再mybatis-config.xml中做小改动,

需要改成Mapper.xml当前的相对路径

 

改好之后: 

 

 
2.设置SQL映射文件的namespace属性为Mapper接口全限定名(就是要对应着写namespace属性值,不可以乱写)


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

import test1.Student;

import java.util.List;

public interface StudentMapper {
    List selectAll();
}

根据sql语义来判断结果是对象的list还是一个对象。


4.编码
    ①通过SqISession的getMapper方法获取Mapper接口的代理对象
    ②调用对应方法完成sql的执行

 

package Study.test1;

import Study.Mapper.StudentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import test1.Student;
import java.io.InputStream;
import java.util.List;

public class MyBatisDemo2 {
    public static void main(String[] args) throws Exception{
        //1.加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.获取SqlSession对象
        SqlSession sqlSession= sqlSessionFactory.openSession();
        //3.执行sql
        //List students = sqlSession.selectList("test.selectAll");
        //3.1获取获取Mapper接口的代理对象
        StudentMapper studentmapper= sqlSession.getMapper(StudentMapper.class);
        List students= studentmapper.selectAll();
        System.out.println(students);
        //4.释放资源
        sqlSession.close();
    }
}

 5.运行结果:

细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载(将该包下的所有Mapper加载)


 MyBatis核心配置文件

属性(properties):

这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。

mybatis – MyBatis 3 | 配置propertieshttps://mybatis.org/mybatis-3/zh/configuration.html#properties

设置(settings):

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

mybatis – MyBatis 3 | 配置settingshttps://mybatis.org/mybatis-3/zh/configuration.html#settings

 类型别名(typeAliases):

类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。

mybatis – MyBatis 3 | 配置typeAliaseshttps://mybatis.org/mybatis-3/zh/configuration.html#typeAliases

类型处理器(typeHandlers):

MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。

mybatis – MyBatis 3 | 配置typeHandlershttps://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers

对象工厂(objectFactory):

每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。 

mybatis – MyBatis 3 | 配置objectFactoryhttps://mybatis.org/mybatis-3/zh/configuration.html#objectFactory

插件(plugins):

MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。

mybatis – MyBatis 3 | 配置pluginshttps://mybatis.org/mybatis-3/zh/configuration.html#plugins

环境配置(environments):

配置数据库连接环境信息。可以配置多个environment,通过default属性切换不同的environment。

mybatis – MyBatis 3 | 配置environmentshttps://mybatis.org/mybatis-3/zh/configuration.html#environments

数据库厂商标识(databaseIdProvider):

MyBatis 可以根据不同的数据库厂商执行不同的语句.。

mybatis – MyBatis 3 | 配置databaseIdProviderhttps://mybatis.org/mybatis-3/zh/configuration.html#databaseIdProvider

映射器(mappers):

在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:/// 形式的 URL),或类名和包名等。

mybatis – MyBatis 3 | 配置mappershttps://mybatis.org/mybatis-3/zh/configuration.html#mappers

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号