• MyBatis(一)入门示例


    一、MyBatis简介

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

    二、入门示例

    1、创建maven项目

    ideaeclipse常用IDE中创建maven项目,maven基本信息如下:

    <groupId>tk.mybatis</groupId>
    <artifactId>simple</artifactId>
    <version>1.0-SNAPSHOT</version>

    项目创建成功后,在src/main/java下创建package : tk.mybatis.simple.model。此时,项目结构如下图所示:

    然后,在pom.xml中添加常用配置及插件:

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
             </plugin>
        </plugins>
    </build>

     接下来,添加MyBatis、数据库连接及常用工具依赖:

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.12</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

     至此,基本开发环境搭建完成。

    2、创建数据库表结构及初始数据

    Navicat中创建本地数据库mybatis,并创建country表。

    -- ----------------------------
    -- Table structure for country
    -- ----------------------------
    DROP TABLE IF EXISTS `country`;
    CREATE TABLE `country` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `countryname` varchar(255) DEFAULT NULL,
      `countrycode` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of country
    -- ----------------------------
    INSERT INTO `country` VALUES ('1', '中国', 'CN');
    INSERT INTO `country` VALUES ('2', '美国', 'US');
    INSERT INTO `country` VALUES ('3', '俄罗斯', 'RU');
    INSERT INTO `country` VALUES ('4', '英国', 'GB');
    INSERT INTO `country` VALUES ('5', '法国', 'FR');

     3、添加MyBatis配置文件mybatis-config.xml

    路径:src/main/resources

    文件名:mybatis-config.xml

    配置文件内容如下:

    <?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>
        <!--  指定使用log4j输出日志  -->
        <settings>
            <setting name="logImpl" value="LOG4J"/>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    
        <!--  设置模型类别名,在mapper文件中可直接使用类型,未设置则需要使用全限定名称  -->
        <typeAliases>
            <package name="tk.mybatis.simple.model"/>
        </typeAliases>
    
        <!--  设置运行环境数据库配置信息  -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC">
                    <property name="" value=""/>
                </transactionManager>
                <dataSource type="UNPOOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="0o9i8u7y6t,,."/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper resource="tk/mybatis/simple/mapper/CountryMapper.xml"/>
        </mappers>
    </configuration>

    4、创建实体类、Mapper.xml

    实体类位置:tk.mybatis.simple.model

    实体类内容:

    public class Country {
        private long id;
        private String countryname;
        private String countrycode;
    
        // getters and setters...
    }

    Mapper文件位置:src/main/resources/tk/mybatis/simple/mapper

    Mapper文件名称:CountryMapper.xml

    Mapper文件内容:

    <?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="tk.mybatis.simple.mapper.CountryMapper">
        <select id="selectAll" resultType="Country">
            select id, countryname, countrycode from country
        </select>
    </mapper>

     5、配置Log4j

    src/main/resources添加log4j.properties,文件内容如下:

    # 全局配置
    log4j.rootLogger=ERROR, stdout
    # MyBatis日志配置
    log4j.logger.tk.mybatis.simple.mapper=TRACE
    # 控制台输出配置
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

     6、添加测试方法

    src/test/java下创建tk.mybatis.simple.mapper包,然后创建BaseMapperTestCountryMapperTest测试类。

    public class BaseMapperTest {
        private static SqlSessionFactory sqlSessionFactory;
    
        @BeforeClass
        public static void init() {
            try {
                // 通过Resources工具类将mybatis-config.xml配置文件读入Reader
                Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
                // 通过SqlSessionFactoryBuilder建造类使用Reader创建sqlSessionFactory
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public SqlSession getSqlSession() {
            return sqlSessionFactory.openSession();
        }
    }
    public class CountryMapperTest extends BaseMapperTest {
    
        @Test
        public void testSelectAll() {
            SqlSession sqlSession = getSqlSession();
            try {
                List<Country> countryList = sqlSession.selectList("selectAll");
                printCountryList(countryList);
            } finally {
                sqlSession.close();
            }
        }
    
        private void printCountryList(List<Country> countryList) {
            for (Country country : countryList) {
                System.out.printf("%-4d%4s%4s
    ",
                        country.getId(), country.getCountryname(), country.getCountrycode());
            }
        }
    }

     

    三、运行程序

    通过Junit运行测试方法testSelectAll(),控制台可看到如下输出,程序运行成功!

    以上内容整理自:《MyBatis从入门到精通》

  • 相关阅读:
    团队作业
    第四次作业
    第三次作业
    从电梯问题,看c和c++之间的区别(有点懂了)错觉错觉
    团队作业2
    游戏方案
    电梯调度程序4
    电梯调度程序3
    电梯调度程序2
    电梯调度程序1
  • 原文地址:https://www.cnblogs.com/fantastic-clouds/p/13047399.html
Copyright © 2020-2023  润新知