Mybatis

写在开始:

​ 自学真难 Mybatis官方文档

构建环境成品源码: Gitee , 在SSMLearn

环境的构建

构建环境需要用到的东西:

  • MySQL

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.49</version>
    </dependency>
    <!--依赖导入后,创建数据库和表-->
  • Maven : 在maven文件夹下-->conf-->settings.xml

    1. 下载 : Apache
    2. 配置镜像源
        <mirror>
                    <id>aliyunmaven</id>
                    <mirrorOf>*</mirrorOf>
                      <name>阿里云公共仓库</name>
                      <url>https://maven.aliyun.com/repository/public</url>
            </mirror>
    1. 配置jdk版本
            <profiles>
                <profile>
                  <id>1.8</id>
                  <activation>
                      <jdk>1.8</jdk>
                      <activeByDefault>true</activeByDefault>
                  </activation>
                  <properties>
                      <maven.compiler.source>1.8</maven.compiler.source>
                      <maven.compiler.target>1.8</maven.compiler.target>
                      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
                  </properties>
              </profile>
  • JUint测试类 : 仓库地址

    <!--https://mvnrepository.com/artifact/junit/junit-->
    <!--导入依赖-->
    <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.1</version>
                <scope>test</scope>
    </dependency>
    <!--方便测试 , 可以不导入-->
  • Mybatis : 仓库地址

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <!--导入依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    

文档的结构

1651492204142

结构详解:
  1. ​ 外层的 pom.xml作为父工程用来导入依赖,方便子工程

    注意事项 : encoding需要改为UTF8
  2. 创建一个子maven包,其中的pom.xml配置如下:

    <!--`encoding`需要改为`UTF8`-->
    <build>
            <resources>
                <resource>
                    <directory>src/main/resource</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
    </build>
  3. 进入scr-->main-->resources目录并创建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="'你连接数据库的url'?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=GMT"/>
                    <property name="username" value="root"/>
                    <property name="password" value=""/>
                </dataSource>
            </environment>
    
        </environments>
        <mappers>
            <mapper resource="com/atanycosts/dao/UserMapper.xml"/>
        </mappers>
    
    </configuration>
    <!-- 最终如果没有运行成功尝试改改useSSL的值-->
  1. 接下来是java包里的文件

CRUD

增删改查

需要提交事务

sqlSession.commit();
  • id : 对应namespace中的方法名
  • resultType : 返回值
  • parameterType : 返回类型,如果在接口中传入的是对象则需要在这个属性中写完整的包名
//测试类
@Test
    public void test() {
        //获取SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();  //不动
        //执行SQL
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);  //不动
        //List<User> userList = usermapper.getUserList();
        for (User user : mapper.getUserList()) {
            System.out.println(user);
        }
        //关闭SqlSession
        sqlSession.close();  //不动
    }

1.namespace

namespace中的包名需要和UseMapper这个接口的包名一致

2.Select

查询用户

//接口中写
 //查询所有用户
    List<User> getUserList();

 //根据用户名查询用户
    User getUserById(int id);
//查询不用提交事务
<!--UserMapper.xml-->
<!--查询所有用户-->
<select id="getUserList" resultType ="com.atanycosts.pojo.User">
        select * from db01.users;
</select>
<!--查询单个用户-->
<select id="getUserById" parameterType="int" resultType ="com.atanycosts.pojo.User">
        select * from db01.users where id = #{id};
</select>

3.Insert

插入用户

// 添加用户
    int insertUser(User user);

<insert id="insertUser" parameterType="com.atanycosts.pojo.User">
        insert into db01.users(id,name,address) values(#{id},#{name},#{address});
</insert>

4.Updata

更新用户

// 更新用户
    int updateUser(User user);
<update id="updateUser" parameterType="com.atanycosts.pojo.User">
        update db01.users set name=#{name},address=#{address} where id=#{id};
</update>

5.Delete

删除用户

// 删除用户
    int deleteUser(int id);
<delete id="deleteUser" parameterType="int">
        delete from db01.users where id=#{id};
</delete>
最后修改:2022 年 10 月 08 日
如果觉得我的文章对你有用,请随意赞赏