JavaEE第一课:mybatis初学者的从零到一

105 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

开篇语

作为一名java菜鸡,在掘金记录自己在JavaEE框架技术的零到一,也希望能够对今后的初学者有一些帮助。可能会有一些错误,欢迎提出,我随时改。

maven

Maven是专门用于管理和构建Java项目的工具,其主要功能主要有:

  • 提供一套标准化的项目结构
  • 提供一套标准化的构建流程
  • 提供了一套依赖管理机制

maven标准化的项目结构:

因为它的好用,大家都以它的项目结构为标准。

image.png

maven标准化构建流程:

编译-测试-打包-发布

image.png

maven标准化依赖管理机制

image.png

mybatis的安装

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装。

我们利用maven的标准化依赖管理机制,能够很好的将mybatis下载并运用到我们的项目中。

<!--mybatis-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>

我们再安装一个mysql的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
    <scope>runtime</scope>
</dependency>

注:如果mybatis 3.5.6的版本报错,一般有以下几种情况:

  • 1、<artifactId>mybatis</artifatId>写成了<artifactId>mybatis-spring</artifatId>
  • 2、镜像未配置或者出现了问题,我改成了阿里云镜像:
 <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>          
     </mirror>
     <mirror>
  • 3、电脑问题,重启一下
  • 4、如果改成低版本,有些类将会无法使用

mybatis的使用

  • 我们使用java创造一个class:
//一个用户的信息
public class User {
    private int uid;
    private String uname;
    private int uage;
//重写
    @Override
    public String toString() {
        return  "User{"+"uid="+uid+",uname='"+uname+'''+",uage="+uage+'}';
        }
    }
  • 配置mybatis
<!--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 >
    <properties resource="db.properties"/>
    <environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"></transactionManager>
        <dataSource type="POOLED">
            <property name="driver" value="${mysql.driver}"/>
            <property name="url" value="${mysql.url}"/>
            <property name="username" value="${mysql.username}"/>
            <property name="password" value="${mysql.password}"/>
        </dataSource>
    </environment>
</environments>
<mappers>
    <!--配置xxxmapper文件位置-->
    <mapper resource="xxxMapper.xml"/>
<!--    <mapper resource="org/mybatis/example/BlogMapper.xml"></mapper>-->
</mappers>
</configuration>
  • 配置mysql 我们使用数据库管理器快速创建对应的数据库和表,并创建几条数据用来测试
<!--文件名:db.properties-->
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.username=root  //配置名称
mysql.password=root   //配置密码
mysql.url=jdbc:mysql://localhost:3306/javaee?  serverTimezone=UTC&characterEncoding=utf8&userUnicode=true&useSSL=false&allowPublicKeyRetrieval=true     //javaee为数据库名称
  • 使用mapper写sql语句
<?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">

       <!--配置sql路径-绝对路径-->
        <mapper namespace="User">
        <!--配置sql语句,并赋予唯一标识-->
                <select id="findById" parameterType="int" resultType="User">
                        select * from users where uid=#{id}
                </select>
        </mapper>
  • 我们在test文件夹下测试 进入User.java文件,鼠标放置User类名上,快捷键Ctrl+Shift+T,然后创建自动Usertest
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.InputStream;

public class UseText {
   @Test
    public void findById() throws Exception{
        //1、获取核心配置文件
      InputStream is= Resources.getResourceAsStream ( "mybatis-config.xml" );
      //2、创建sqlSessionFactory工厂对象,使用单例模式
     SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder ().build(is);
     //3、创建sqlSession对象
       SqlSession sqlSession=sqlSessionFactory.openSession ();
       //4、执行sql语句、
       int id =2;
       User user =sqlSession.selectOne ( "User.findById",id);
       System.out.println (user);
       
       sqlSession.close ();
    }
}

查看运行结果

image.png