zoukankan      html  css  js  c++  java
  • MyBatis入门

    一、概念

    MyBatis是一款ORM(Object Relationship Mapping 对象关系映射)框架

    二、如何使用

    1.新建maven项目,导入依赖:

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
    
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
    </dependencies>

    2.新建数据表

    create table user (
        id int primary key auto_increment,
        username varchar(11) not null,
        password varchar(11) default ''
    );

    3.新建数据表对应的实体类User:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>

    在建实体类前先引一下lombok来简化一下实体类的编写

    package com.viewts.entity;
    
    import lombok.Data;
    
    @Data
    public class User {
        private long id;
        private String username;
        private String password;
    }

    4.创建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>
        <!-- 配置MyBatis运行环境 -->
        <environments default="development">
            <environment id="development">
                <!-- 配置JDBC事务管理 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- POOLED配置JDBC数据源连接池 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/demo"/>
                    <property name="username" value="root"/>
                    <property name="password" value=""/>
                </dataSource>
            </environment>
        </environments>
    </configuration>

    注意:我这里的mysql默认用户密码为空。

    5.编写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="com.viewts.mapper.UserMapper">
        <!-- 新建用户 -->
        <insert id="insertUser" parameterType="com.viewts.entity.User">
            insert into user values (null, #{username}, #{password})
        </insert>
    </mapper>

    6.在config.xml中注册UserMapper:

    <!-- 注册UserMapper -->
    <mappers>
        <!-- resource指文件路径 -->
        <mapper resource="com/viewts/mapper/UserMapper.xml"></mapper>
    </mappers>

    7.调用MyBatis的原生接口

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>*.xml</include>
                    <include>*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

    这里先处理一个细节,由于我们的mapper文件不是定义在resources目录下的,因此需要修改配置文件,**表示当前目录及其子目录。

    然后新建测试类:

    public class AppTest {
        @Test
        public void test01() {
            InputStream inputStream = AppTest.class.getClassLoader().getResourceAsStream("config.xml");
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder  = new SqlSessionFactoryBuilder();
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            String statement = "com.viewts.mapper.UserMapper.insertUser";
            User user = new User(233L, "viewts", "111111");
            sqlSession.insert(statement, user);
            sqlSession.commit();
        }
    }

    8.运行,可以看到数据库表中插入了一条新纪录。

  • 相关阅读:
    二叉树的存储结构
    面试Java需要的知识总结
    EJB总结
    WEB 容器、WEB服务和应用服务器的区别与联系
    Linux安装JBOSS
    JBOSS和WebLogic区别
    深入浅出JMS(一)--JMS基本概念
    Java缓冲流细节
    xor和路径(codevs 2412)
    外星千足虫(bzoj 1923)
  • 原文地址:https://www.cnblogs.com/viewts/p/13203102.html
Copyright © 2011-2022 走看看