Java教程

10.29第一个Mybatis程序

本文主要是介绍10.29第一个Mybatis程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

10.29第一个Mybatis程序

步骤

  1. 新建Maven工程

  2. 配置pom.xml文件

  3. 新建项目层级目录

  4. 书写配置文件

配置pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
​
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
​
  <groupId>org.example</groupId>
  <artifactId>MybatisStudy</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
​
  <name>MybatisStudy</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.mybatisstudy.com</url>
​
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
​
  <dependencies>
    <!--单元测试的junit-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
​
    <!--导入testng-->
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.1.0</version>
    </dependency>
​
    <!--导入mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>
​
    <!--导入mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>
​
    <!--导入log4j依赖-->
    <dependency>
      <groupId>com.att.inno</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.13</version>
    </dependency>
  </dependencies>
​
  <build>
    <finalName>MybatisStudy</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

新建项目层级目录

/MybatisStudy
    /idea
    /src
        /main
            /java
                /com
                    /junkingboy
                        /bean
                        /mapper
            /properties
            /resources
            /webapp
                /WEB-INF

书写配置文件

日志配置文件:--->properties目录下

# logging configuration
log4j.rootLogger=ERROR,stdout
# Mybatis logging configuration
log4j.logger.com.junkingboy=DEBUG
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p[%t] - %m%n

在日志文件中配置了全局的日志配置、MyBatis 的日志配置和控制台输出,其中 MyBatis 的日志配置用于将 com.junkingboy 包下所有类的日志记录级别设置为 DEBUG

配置WebsiteMapper.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="com.junkingboy.mapper.WebsiteMapper">
    <!--添加一个网站信息-->
    <insert id="addWebsite" parameterType="com.junkingboy.bean.Website">
        insert into javawebtest.website(name, url, age, country) values(#{name}, #{url}, #{age}, #{country});
    </insert>
    
    <!--查询所有网站的信息-->
    <select id="selectAllWebsite" resultType="com.junkingboy.bean.Website">
        select * from javawebtest.website;
    </select>
</mapper>

标签说明:

  • <mapper> 元素是配置文件的根元素,它包含了namespace属性,该属性值通常设置为“包名+SQL映射文件名”,用于指定唯一的命名空间。

  • <select><insert> 中的信息用于执行查询、添加操作

  • “#{}”表示一个占位符,相当于“?”,而“#{name}”表示该占位符待接收参数的名称为name

Mybatis核心配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--设置日志实现类-->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
​
    <!--配置mybatis的运行环境-->
    <environments default="test">
        <environment id="test">
            <!--使用JDBC的事务管理-->
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <!--配置mysql数据库的驱动-->
                <!--配置驱动-->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <!--连接url-->
                <property name="url" value="jdbc:mysql://localhost:3306/javawebtest?characterEncoding=utf-8"/>
                <!--配置用户名和密码-->
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
​
    <!--将mapper文件加入到配置文件中-->
    <mappers>
        <mapper resource="com/junkingboy/mapper/WebsiteMapper.xml" />
    </mappers>
</configuration>

特点:

该文件配置在resources目录下

为了方便在框架集成时更好地区分各个配置文件,一般将此文件名命名·“mybatis-config.xml”·,该文件用于配置数据库连接信息和 MyBatis 的参数。

创建测试类:

步骤:

  • 输入流读取配置文件

  • 根据配置信息构建SqlSessionFactory对象

  • 通过SqlSessionFactory对象创建SqlSession对象

  • 使用SqlSesion对象的方法执行对数据库的操作

实体类:

package com.junkingboy.test;
​
import com.junkingboy.bean.Website;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
​
/**
 * @description:测试Mybatis
 * @data: 2021/10/29 17:53
 * @author: Lucifer
 */
public class TestWebsite {
    public static void main(String[] args) throws IOException {
        /*
        步骤:
        - 输入流读取配置文件
        - 根据配置信息构建`SqlSessionFactory`对象
        - 通过`SqlSessionFactory`对象创建`SqlSession`对象
        - 使用`SqlSesion`对象的方法执行对数据库的操作
         */
        //io流读取配置文件
        InputStream config = Resources.getResourceAsStream("mybatis-config.xml");
        //根据配置文件构建SqlSessionFactory对象
        //SqlSessionFactoryBuilder是SqlSessionFactory接口的实现类,提供了创建对象的方法
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
        //通过SqlSessionFactory对象创建SqlSession对象
        SqlSession ss = ssf.openSession();
        /*SqlSession执行文件中定义的SQL,并返回映射结果*/
​
        //添加网站--->创建Website的bean对象
        Website website = new Website();
        website.setName("帅气俊!");
        website.setUrl("http://localhost/");
        website.setAge(22);
        website.setCountry("CN");
​
        //使用SqlSession下的方法执行插入操作
        /*
        传参:
        - xml中定义的属性名称
        - 需要插入的对象
         */
        ss.insert("com.junkingboy.mapper.WebsiteMapper.addWebsite", website);
​
        //查看所有的网站--->封装成一个list对象
        List<Website> listWeb = ss.selectList("com.juningboy.mapper.WebsiteMapper.selectAllWebsite");
        //读取list内容
        listWeb.forEach(System.out::println);
​
        //提交事务
        ss.commit();
        //关闭SqlSession连接
        ss.close();
    }
}
这篇关于10.29第一个Mybatis程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!