当前位置: 首页 > news >正文

配置MyBatis(不用Maven)

步骤

1. 创建项目

2. 创建数据库与表

3. 创建实体类

4. 引入jar包

5. 创建resources资源命令,并创建mappers目录,用于保存接口的映射文件

6. 创建db.properties,保存数据库连接的相关信息

7. 配置mybatis的全局配置文件

8. 测试

1.1先用idea新建一个空项目

新建空项目路径自己选择,不要找不到就好

1.2然后在空项目里建web项目

文件 -> 新建 -> 新模块 -> Java EE -> Web应用程序
在这里插入图片描述
在这里插入图片描述
点击下一步,更改路径和项目名点击完成即可。

1.3在WEB-INF里新建文件夹classes与lib

classes文件夹用于存src文件夹里.java文件编译过后的字节码
lib用于存需要用到的.jar文件
在这里插入图片描述

1. 4配置classes和lib

文件->项目结构
在这里插入图片描述
先将项目的SDK选择好
在这里插入图片描述
然后选择模块->路径, 将编译器输出的输出目录和测试目录都改为刚才新建的classes文件夹
在这里插入图片描述
点击依赖 -> + ->JAR或目录
在这里插入图片描述
找到刚刚新建的lib目录,点击确定就会弹出下面的窗口,然后点击Jar Directory,再点击确定,最后再点击确定即可
在这里插入图片描述

2.创建数据库与表(自行配置好MySql和图形化工具)

数据库和表的创建

在这里插入图片描述

插入数据
在这里插入图片描述

3.创建实体类

实体类要和数据库的字段一一对应,所以实体类的创建如下
先建包和类,然后类里的代码如下
在这里插入图片描述

package com.rw.pojo;

import java.util.Date;

public class User {
    private Integer id;
    private String name;
    private String password;
    private Integer age;
    private Date birthday;

    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 getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                '}';
    }
}

4.引入jar包

将准备好的mybatis.jar包和mysql-connector-java.jar包导入到lib,jar包可以去官网下载自己需要的版本
在这里插入图片描述

5.创建resources资源命令,并创建mappers目录,用于保存接口的映射文件

1.先建立与src同级的目录resources

在这里插入图片描述

2.将resources目录标记为 资源跟

在这里插入图片描述

resources目录下新建mappers文件夹
在这里插入图片描述
mappers文件夹下新建UserMapper.xml文件
在这里插入图片描述

映射文件 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 里的配置不能乱写, 现在无所谓-->
<mapper namespace="UserMapper">

    <!--
        查询USER里的所有记录
        resultType:配置查询的返回结果类型, 应当是实体类的相对路径->包名.类名
    -->
    <select id="getRecord" resultType="com.rw.pojo.User">
        select * from USER
    </select>

</mapper>
6. 创建db.properties,保存数据库连接的相关信息

在resources目录下创建db.properties文件

在这里插入图片描述

db.properties配置如下,注意自己的数据库名,登录的密码与账号

driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/db_mybatis
user = root
password = ****
7. 配置mybatis的全局配置文件

在resources目录下创建mybatis-config.xml文件

在这里插入图片描述

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>

    <!--引入外部的db.properties文件-->
    <properties resource="db.properties"/>

    <!--配置连接数据库的开发环境environments
        environments中可配置多组environment, 每个environment表示一种数据库的连接配置
        default的取值是id的值, 表示默认使用该环境
    -->

    <environments default="mysql">

        <!--MySQL-->
        <environment id="mysql">

            <!--配置事务管理,委托JDBC负责管理事务-->
            <transactionManager type="JDBC"/>

            <!--配置数据源,使用POOLED数据源,作用是创建数据库链接-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${password}"/>
            </dataSource>

        </environment>

    </environments>

    <!--引入外部接口映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>

</configuration>
8. 测试

在src下新建.com.rw.test包, 然后再建测试类UserMapperTest

在这里插入图片描述

UserMapperTest类代码如下

package com.rw.test;

import com.rw.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;

import java.io.InputStream;
import java.sql.Connection;
import java.util.List;

public class UserMapperTest {
    public static void main(String[] args) {
        try {
            // 1.加载mybatis全局配置文件
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

            // 2.创建SqlSessionFactoryBuilder对象, 该对象表示SqlSessionFactory构造器, 用于创建SqlSessionFactory对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

            // 3.创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);

            // 4.创建SqlSession对象,对数据库进行CRUD
            SqlSession sqlSession = sqlSessionFactory.openSession();

            // 5.执行相关方法
            List<User> list = sqlSession.selectList("UserMapper.getRecord");
            for (User user : list) {
                System.out.println(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行结果
在这里插入图片描述

相关文章:

  • 1113: 递归调用的次数统计(函数专题)
  • 安全的 PHP 注销脚本
  • 小学生python编程----学爬虫
  • 如何用一个简单的内容升级心理学技巧将转化率提高了845%
  • 【LeetCode】Day126-正则表达式匹配
  • 09-排序2 Insert or Merge(浙大数据结构)
  • DPDK18.08上对VIRTIO IN ORDER 功能所做的优化
  • java毕业设计软件S2SH人力资源管理系统|人事薪资招聘oa人力请假考勤工资[包运行成功]
  • 关于C/C++中const关键字作用的一些想法
  • STC15单片机-通过PWM调整灯亮度
  • 9.3DDD之集成事件
  • 抖音获取商品原数据API接口展示
  • C++ 删除链表的倒数第N个结点
  • Pinia的使用
  • java — 认识String类的常用方法(上)
  • JavaScript类型识别
  • Java超时控制的实现
  • JAVA多线程机制解析-volatilesynchronized
  • Object.assign方法不能实现深复制
  • QQ浏览器x5内核的兼容性问题
  • RxJS: 简单入门
  • Terraform入门 - 1. 安装Terraform
  • Web设计流程优化:网页效果图设计新思路
  • 程序员该如何有效的找工作?
  • 回流、重绘及其优化
  • 听说你叫Java(二)–Servlet请求
  • 网络应用优化——时延与带宽
  • 微服务核心架构梳理
  • 写给高年级小学生看的《Bash 指南》
  • 由插件封装引出的一丢丢思考
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • %@ page import=%的用法
  • (6)设计一个TimeMap
  • (C++17) optional的使用
  • (java)关于Thread的挂起和恢复
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十六)串口UART
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET NPOI导出Excel详解
  • .Net Winform开发笔记(一)
  • .Net 代码性能 - (1)
  • .net操作Excel出错解决
  • .net流程开发平台的一些难点(1)
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • /etc/fstab和/etc/mtab的区别
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [Angularjs]ng-select和ng-options
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [C#] 基于 yield 语句的迭代器逻辑懒执行