Mybatis 创建方法、全局配置教程详解

首先我们来讲解Mybatis的创建方法和全局配置教程。

Mybatis 创建方法

第一步:引入Mybatis依赖

你需要在项目中引入Mybatis的依赖,可以通过Maven或Gradle管理工具来引入。比如Maven的配置如下:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

第二步:创建Mybatis Config文件

MyBatis的配置文件是用于配置MyBatis工作时携带应信息的文件,通常我们会将配置文件命名为mybatis-config.xml。配置文件的示例如下:

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

这里的environment标签定义了使用的环境,transactionManager定义了事务管理器的类型,dataSource定义了使用的数据源。mappers标签中的mapper定义了一个映射文件。

第三步:创建Mapper文件

在Mybatis中,Mapper是一种用来描述数据访问接口的XML文件,同样位于资源目录下。Mapper文件中定义了SQL语句的执行方式,以及与Java POJO之间的对应关系。示例如下:

<!-- org.mybatis.example.BlogMapper.xml -->
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

这里用namespace指定了Mapper接口的完全限定名,select标签指定了SQL语句以及返回类型。

第四步:创建SqlSessionFactory

SqlSessionFactory是Mybatis中的重要对象,它负责创建SqlSession,SqlSession用于和数据库之间的交互。示例如下:

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

这里使用Resources类读取了配置文件,然后调用了SqlSessionFactoryBuilderbuild方法创建了SqlSessionFactory对象。

第五步:创建SqlSession

通过SqlSessionFactory对象创建一个SqlSession,用于和数据库交互。示例如下:

SqlSession sqlSession = sqlSessionFactory.openSession();

我们可以通过SqlSession对象的方法执行SQL语句,并获取到结果集。

全局配置教程

Mybatis的全局配置主要包含了连接池、日志、缓存、插件等方面的配置,以下是几个重要的配置项:

连接池配置

Mybatis默认提供了多个连接池实现,包括POOLED、UNPOOLED、JNDI等。我们可以在dataSource标签中通过type属性指定使用哪个连接池实现。

<dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</dataSource>

日志配置

Mybatis提供了多种日志实现,包括SLF4J、JDK_LOGGING、LOG4J、LOG4J2、COMMONS_LOGGING等。我们可以在configuration标签下指定日志实现:

<configuration>
  <settings>
    <setting name="logImpl" value="LOG4J"/>
  </settings>
</configuration>

缓存配置

Mybatis提供了多级缓存的支持,默认情况下Mybatis开启了2级缓存,但是我们也可以通过在Mapper文件中添加cache标签来自定义缓存,示例如下:

<cache eviction="LRU" flushInterval="60000" size="512" readOnly="true"/>

插件配置

Mybatis的插件是一种拦截器,可以在SQL的执行过程中进行拦截和修改,常用的插件包括分页插件、性能监控插件、拦截SQL参数插件等。通过实现Interceptor接口和Plugin注解,我们可以轻松地对SQL语句进行操作。示例如下:

@Intercepts({@Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class})})
public class MyInterceptor implements Interceptor {
  public Object intercept(Invocation invocation) throws Throwable {
    // do something
    return invocation.proceed();
  }
}

示例

示例一:查询语句

假设我们有一张名叫user的数据库表,表结构如下:

id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(256),
age INT

我们可以写一个Mapper文件,定义如下:

<mapper namespace="com.example.mapper.UserMapper">
  <select id="selectUserByName" parameterType="String" resultType="User">
    SELECT * FROM user WHERE name = #{name}
  </select>
</mapper>

然后通过SqlSession来执行SQL查询语句:

SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUserByName("test");

示例二:插入语句

我们可以写一个Mapper文件,定义如下:

<mapper namespace="com.example.mapper.UserMapper">
  <insert id="insertUser" parameterType="User">
    INSERT INTO user (name, age) VALUES (#{name}, #{age})
  </insert>
</mapper>

然后通过SqlSession来执行SQL插入语句:

SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setName("test");
user.setAge(18);
mapper.insertUser(user);
sqlSession.commit();

以上就是Mybatis的创建方法和全局配置教程的详细讲解和两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis 创建方法、全局配置教程详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 简单总结Java IO中stream流的使用方法

    下面是“简单总结Java IO中stream流的使用方法”的完整攻略: 1. Java IO中的Stream流 Java IO(Input/Output)是指Java语言中的输入输出流操作,用于读取和写入数据。在Java IO中,输入输出是用Stream(流)的方式进行的。Stream流提供了InputSteam和OutputStream两个抽象类,它们是所…

    Java 2023年5月26日
    00
  • JavaSpringBoot报错“IllegalArgumentException”的原因和处理方法

    原因 “IllegalArgumentException” 错误通常是以下原因引起的: 参数不正确:如果您的参数不正确,则可能会出现此错误。在这种情况下,您需要检查您的参数并确保它们正确。 参数为空:如果您的参数为空,则可能会出现此错误。在这种情况下,您需要检查您的参数并确保它们不为空。 解决办法 以下是解决 “IllegalArgumentExceptio…

    Java 2023年5月4日
    00
  • 解决RestTemplate 的getForEntity调用接口乱码的问题

    RestTemplate是Spring框架提供的用于进行HTTP请求的工具,但是在使用getForEntity方法调用接口时,会出现中文乱码的问题。 解决这个问题可以分为两个步骤: 设置RestTemplate的编码方式 在使用RestTemplate的时候,需要设置它的编码方式。可以在创建RestTemplate对象时,传入一个StringHttpMess…

    Java 2023年5月20日
    00
  • Java练手小项目实现一个项目管理系统

    Java练手小项目实现一个项目管理系统 项目管理系统可以用于管理个人、企业项目,实现项目的立项、任务的分配、进度的跟踪、文档的上传、项目报告的生成等功能。实现该项目可以提升Java编程能力和项目管理能力。 1. 技术栈 SpringBoot:用于快速搭建后端框架; Mybatis:用于处理数据持久化; Thymeleaf:用于实现后端渲染界面; Bootst…

    Java 2023年5月18日
    00
  • 详解Java使用sqlite 数据库如何生成db文件

    针对您的问题,“详解Java使用sqlite 数据库如何生成db文件”,我可以提供以下步骤指导: 准备工作 安装SQLite数据库:下载地址为:https://www.sqlite.org/download.html。 下载Java SQLite JDBC 驱动程序:下载地址为:https://bitbucket.org/xerial/sqlite-jdbc…

    Java 2023年5月19日
    00
  • 使用.htaccess设置图片防盗链的详细方法

    下面是使用.htaccess设置图片防盗链的详细攻略: 什么是图片防盗链 图片防盗链是指防止其他网站直接调用你的图片资源,从而减少被盗取的风险和减少服务器资源的消耗。为了防止盗链,我们可以使用.htaccess文件来进行防盗链设置。 设置图片防盗链的方法 1. 查找.htaccess文件 在网站的根目录下(一般是public_html或htdocs文件夹),…

    Java 2023年6月15日
    00
  • JavaWeb实现mysql数据库数据的添加和删除

    下面是“JavaWeb实现mysql数据库数据的添加和删除”的完整攻略。 简介 JavaWeb是一个基于Java语言的Web开发框架,可以使用Java语言轻松实现Web应用的开发。而mysql是一种开源的关系型数据库管理系统,目前非常受欢迎。本文将详细介绍如何使用JavaWeb实现mysql数据库数据的添加和删除。 准备工作 JDK(Java Develop…

    Java 2023年5月19日
    00
  • 实例解析JSP中EL表达式的各种运用

    实例解析JSP中EL表达式的各种运用 在JSP页面中,EL表达式是非常常用的一种语法,用于简化代码的编写,提高代码的可读性。本文将详细讲解在JSP中EL表达式的各种运用。 EL表达式的基本语法 EL表达式用${}符号包裹,可以直接在JSP页面中使用。EL表达式的语法格式为${表达式},其中表达式可以是变量、运算符、方法调用等。 变量的使用 EL表达式可以用于…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部