搭建MyBatis开发环境,全网最详

(1)创建mysql数据库和表

上一篇文章写了,点击此处:mysql数据库的创建

(2)创建项目/工程(方法2:课堂上老师讲的) 

1.打开idea,File —> New —> Project... —> Maven —> 接下来如下

2.选择 File --> New Projects Settings --> Settings for New Projects
3.找到 maven 配置,将 maven 的安装地址及配置好的 setting 文件地址输入
4.选择 File --> Project Structure --> Project,选择对应的 jdk 版本号\

5.选择 File --> Project Structure --> Modules,选择对应的 jdk 版本号

(3)在 pom.xml 中引⼊依赖(mybatis依赖 + mysql驱动依赖,前提是已导入mybatis jar包和mysql-connector-java jar包,这步已完成了)

1.可以在Maven中搜索各个版本的依赖——>https://mvnrepository.com/

每当在新的 Maven 项目中添加相同的依赖项时,Maven 会首先检查本地仓库是否已经存在相应的 Jar 包。如果已经存在,Maven 将重复使用本地存储的 Jar 包,而不会重新下载。如果不存在,Maven 会自动下载并导入所需的 Jar 包到本地 Maven 仓库,如下localRepository目录是自定义的本地仓库:

D:\maven\localRepository\org\mybatis\mybatis\3.5.5\mybatis-3.5.5.jar D:\maven\localRepository\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar

<!--mybatis依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>

<!--mysql驱动依赖-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.28</version>
    </dependency>

2.加载Maven依赖,未存在相关依赖加载后将会依赖下载到本地 Maven 仓库,已存在相关依赖加载后将会刷新

<build>
    <!--配置文件扫描,扫描到xml文件,不用改,直接复制到pom.xml的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>
        <filtering>true</filtering>
      </resource>
    </resources>
</build>

(4)创建实体类Student。实体类名推荐和表名一致,容易记忆

要求如下:

1.新建 entity包并根据数据库字段名创建一个实体类
2.生成 set() 和 get() 方法
3.生成 toString() 方法;

Student.java

package com.bjpowernode.entity;

//实体类名推荐和表名一致,容易记忆
public class Student {
    //定义属性,要求属性名和列名一致
    private Integer id;
    private String name;
    private String email;
    private  Integer age;

    //快速生成Getter和Setter方法,Generate——>Getter and Setter,全选:点击第一个,按住Shift+最后一个
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
    //重写,快速生成toString:Generate——>toString(),全选
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

(5)写操作实体类数据的dao接口

要求如下:

1.新建 mapper 包/dao包并创建接口类,如:StudentMapper.java/StudentDao.java
2.写出对数据库单表的增删改查操作。(增加学生、删除学生、查询所有学生、根据用户 id 查询学生、修改学生邮箱)

(6)创建SQL映射文件(如,StudentDao.xml作用:执行sql语句)

SQL映射文件写sql语句的,mybatis会执行这些sql,放在接口文件同级,课堂讲的是放在resources\com\wlz\mapper下。该文件(abc.xml)与接口(abc.java)同名

mybatis官网有XML 映射语句的示例,链接:https://mybatis.org/mybatis-3/zh/index.html

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
    <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
    </select>
</mapper>

a.指定约束文件

<!DOCTYPE mapper

        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

其中mybatis-3-mapper.dtd是约束文件的名称,扩展名是dtd的。

b.约束文件的作用:限制、检查在当前文件中出现的标签,属性必须符合mybatis的要求。

c.mapper 是当前文件的根标签,必须的。    namespace:叫做命名空间,唯一值的,可以是自定义的字符串。要求你使用dao接口的全限定名称。

d.在当前文件中,可以使用特定的标签,表示数据库的特定操作。 <select>:表示执行查询 <update>:表示执行更新 <insert>:表示执行插入

e. id:执行的sql语句的唯一标识,mybatis会使用这个id的值来找到要执行的sql语句,可以自定义,但必须是使用的接口文件的方法名称。resultType:表示结果类型,是sql语句执行后得到resultSet,遍历这个resultSet得到java对象的类型。

StudentDao.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bjpowernode.dao.StudentDao">
    <select id="selectStudents" resultType="com.bjpowernode.entity.Student">
        select id,name,email,age from student order by id
    </select>
</mapper>

(7)创建全局配置文件(如,mybatis.xml 作用:连接数据库)

全局配置文件是mybatis主配置文件,放在resources的目录下

要求如下:

1.在 resources 文件夹下创建配置文件,如:mybatis-config.xml
2.添加别名设置
3.添加数据库连接设置
4.添加 sql 映射文件设置
5.配置日志设置
mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--环境配置,数据库的连接信息
        default:必须和某个environment的id值一样
        告诉mybatis使用哪个数据库的连接信息。也就是访问哪个数据库
    -->
    <environments default="wlz">
        <!--environments(环境):一个数据库信息配置,
            id:一个唯一值,自定义表示环境的名称
        -->
        <environment id="wlz">
        <!--transactionManager:mybatis的事务类型
            type:JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理)
        -->
            <transactionManager type="JDBC"/>
            <!--dataSource:表示数据源,连接数据库的
                type:表示数据源的类型,POOLED表示使用连接池
            -->
            <dataSource type="POOLED">
                <!--driver,url,username,password是固定的,不能自定义-->
                <!--driver:数据库的驱动类名-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--连接数据库的url字符串-->
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <!--访问数据库的用户名-->
                <property name="username" value="root"/>
                <!--密码-->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!--sql mapper(即sql映射文件)的位置-->
    <mappers>
<!--一个mapper标签指定一个文件的位置
    从类路径开始的路径信息,target/classes(类路径)==>反正2个.xml文件必须同级
-->
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
    </mappers>
</configuration>
<!--
    mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置

    1.约束文件
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">

    mybatis-3-config.dtd约束文件名称
    2.configuration:根标签-->

(7)编写执行代码

AppTest.java

package com.bjpowernode;

import com.bjpowernode.entity.Student;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class AppTest {

//SqlSessionFactoryBuilder(类)——>构建SqlSessionFactory对象——>创建SqlSession对象——>执行SQL操作

    //访问mybatis,读取student数据
    public static void main(String[] args) throws IOException {
        //1.定义mybatis主配置文件的名称,从类路径的根开始(target/classes)
        String config="mybatis.xml";
        //2.读取这个config表示的文件
        InputStream in= Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        // 4. 创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        // 5. 创建SqlSession对象
        SqlSession sqlSession = factory.openSession();
        // 6.【重要】指定要执行的sql语句的标识。sql映射文件中的namespace + "." + 标签的id值(作用:找到并执行指定的sql语句)
        //String sqlid = "com.bjpowernode.entity.StudentDao" + "." + "selectStudents";
String sqlid = "com.bjpowernode.entity.StudentDao.selectStudents";
        // 7.【重要】执行sql语句,通过sqlid找到sql语句
        List<Student> studentList = sqlSession.selectList(sqlid);
        //8.输出结果
        //studentList.forEach(stu -> System.out.println(stu));
        for (Student stu : studentList) {
            System.out.println("查询的学生="+stu);
        }
        //9.关闭SqlSession对象
        sqlSession.close();
    }
}

拓展:target文件中的.xml文件缺少的解决办法,前提是pom.xml中有这个build标签的配置,下面4种方法任选其一,一个个试

<build>
    <!--配置文件扫描,扫描到xml文件,不用改,直接复制到pom.xml的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>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

1.点击右侧边上的Maven—>点击自己命名为wlz01_helloMybatis的Maven Modules—>Lifecycle—>clean—>compiler—>运行

2.点击上边栏中的Build—>Rebuild Progect—>运行

3.点击File—>Invalidate Caches—>Invalidate and Restart—>运行

4.直接把自己配置的.xml文件复制粘贴到对应的target文件夹下

在 IntelliJ IDEA 中搭建 MyBatis 开发环境,需要按照以下步骤进行: 1. 安装 Maven Maven 是一个项目管理工具,可以帮助我们统一管理项目依赖和构建过程。我们可以在 Maven 的官网下载最新版本的 Maven,并按照官方文档进行安装。 2. 创建 Maven 项目 在 IntelliJ IDEA 中创建一个 Maven 项目,具体步骤是: - 点击 "File" -> "New" -> "Project" - 在弹出的对话框中选择 "Maven" - 在下一步中设置项目的 GroupId、ArtifactId 和 Version - 完成创建项目 3. 添加 MyBatis 依赖 在 pom.xml 文件中添加 MyBatis 的依赖,具体代码如下: ``` <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> ``` 4. 添加数据库驱动依赖 在 pom.xml 文件中添加数据库驱动的依赖,例如 MySQL 驱动的代码如下: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> ``` 5. 配置 MyBatis 在 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> <typeAliases> <!-- 在这里配置自定义的别名 --> </typeAliases> <mappers> <!-- 在这里配置自定义的 Mapper --> </mappers> </configuration> ``` 6. 配置数据源 在 resources 目录下创建一个名为 db.properties 的文件,并添加以下代码: ``` jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC jdbc.username=root jdbc.password=root ``` 其中,jdbc.url 表示数据库的 URL,jdbc.username 和 jdbc.password 表示数据库的用户名和密码。 7. 编写 Mapper 接口和 SQL 语句 在 src/main/java 目录下创建一个包,例如 com.example.mapper,在该包下创建一个 Mapper 接口,并添加以下代码: ``` public interface UserMapper { User getUserById(int id); } ``` 然后在 resources 目录下创建一个名为 UserMapper.xml 的文件,并添加以下代码: ``` <?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.example.mapper.UserMapper"> <select id="getUserById" parameterType="int" resultType="com.example.entity.User"> select * from user where id = #{id} </select> </mapper> ``` 其中,namespace 表示 Mapper 接口的全限定名,select 标签中的 id 表示方法名,parameterType 表示方法的参数类型,resultType 表示方法的返回值类型。 8. 测试 MyBatis 在测试类中编写代码,测试 MyBatis 是否能够正常工作,例如: ``` public class UserMapperTest { @Test public void testGetUserById() { SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user); sqlSession.close(); } } ``` 9. 运行测试类 在 IntelliJ IDEA 中运行测试类,查看控制台输出,即可测试 MyBatis 是否能够正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值