前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis(一)基本配置和增加sql

Mybatis(一)基本配置和增加sql

原创
作者头像
麻辣醉虾
修改2022-04-06 12:32:04
6111
修改2022-04-06 12:32:04
举报

Mybatis官方中文文档地址:mybatis – MyBatis 3 | 简介

导入依赖

下面配置导入依赖

代码语言:javascript
复制
<?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>mybatis</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mybatis1</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!--数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>
        <!--测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

Mybatis核心配置文件

命名:习惯命名为 mybatis-config.xml(习惯命名,非强制) 位置:resources文件夹下

加粗代表文件,正常代表文件夹

  • main
    • java.com.mlzx.
      • entity
        • User
      • mapper
        • UserMapper
    • recources
      • mappers
        • UserMapper.xml
      • mybatis-config.xml

先放Mybaits核心配置文件。

代码语言:javascript
复制
<!-- 声明xml的版本号和编码类型-->
<?xml version="1.0" encoding="UTF-8" ?>

<!-- 设置mybatis约束 -->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!-- 设置数据库的环境 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>       //事务管理器,类型JDBC
            <dataSource type="POOLED">              //数据源,pooled表示数据库连接池
                <property name="driver" value="com.mysql.jdbc.Driver"/>  //驱动名称
                //链接地址
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                //数据库账号和密码(按实际情况来)
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    
<!--    引入映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
    
</configuration>

创建数据库表

通过下面这个sql,创建一个数据库表 t_user

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `t_user`  (
  `id` int(20) NOT NULL,
  `username` varchar(30) DEFAULT NULL,
  `password` varchar(30) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` char(1) DEFAULT NULL,
  `email` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8;

创建实体类

通过反射实现实体类中属性数据库中字段的对应。

在entity中创建了User实体类。(未添加get和set方法,请自行添加)

代码语言:javascript
复制
package com.mlzx.entity;

public class User {
    private Integer id;

    private String username;

    private String password;

    private Integer age;

    private String sex;

    private String email;
}

添加Mapper

添加对应的mapper接口,作用类似于dao层的数据,主要是对数据库进行操作。

代码语言:javascript
复制
package com.mlzx.mapper;

public interface UserMapper {
    //添加用户
    int addUser();
}

添加实体类的配置

一个实体类,就有一个对应的xml配置文件与其对应。

例如上面实体类中对应的配置 文件,就是UserMapper.xml与之对应。

使用mybatis要注意两点 1:配置文件中namespace要和mapper接口的全类名一致。(com.mlzx.mapper.UserMapper)

2、配置文件中id要和实体类方法名一样。(addUser)

配置文件如下所示

代码语言:javascript
复制
<?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.mlzx.mapper.UserMapper">
    <insert id="addUser">
        insert into t_user value(1, 'admin', '12345', 23, '男','1234@qq.com')
    </insert>
</mapper>

测试上面这个增加功能

在Test中写下面这个测试代码

代码语言:javascript
复制
package com.mlzx.mapper;

import com.mlzx.entity.User;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class UserMapperTest {

    @Test
    public void testAddUser() throws IOException {
        //加载核心配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //获取SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //获取sqlsession,其中sqlSession代表Java程序和数据库之间的对话
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取mapper接口对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //测试功能,其中res代表的是受影响的行数
        int res = userMapper.addUser(); 
        //提交事务
        sqlSession.commit();

        System.out.println("result:" + res);
    }
}

实验效果如图

数据库中数据
数据库中数据

如果有什么问题,请在评论中告诉我。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入依赖
  • Mybatis核心配置文件
  • 创建数据库表
  • 创建实体类
  • 添加Mapper
  • 添加实体类的配置
  • 测试上面这个增加功能
  • 实验效果如图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档