首页 > 其他分享 >Mybatis02 - 创建工程

Mybatis02 - 创建工程

时间:2023-02-13 21:15:32浏览次数:38  
标签:salary 实体类 Java name 工程 创建 emp mybatis Mybatis02

1、物理建模

CREATE DATABASE `mybatis-example`;

USE `mybatis-example`;

CREATE TABLE `t_emp`(
  emp_id INT AUTO_INCREMENT,
  emp_name CHAR(100),
  emp_salary DOUBLE(10,5),
  PRIMARY KEY(emp_id)
);

INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("tom",200.33);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("jerry",666.66);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("andy",777.77);

2、逻辑建模

①创建Maven module

②加入Lombok依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
</dependency>

③创建 Java 实体类

实体类是和现实世界中某一个具体或抽象的概念对应,是软件开发过程中,为了管理现实世界中的数据而设计的模型。 实体类的多个不同的叫法: domain:领域模型 entity:实体 POJO:Plain Old Java Object Java bean:一个Java类

/**
 * 和数据库表 t_emp 对应的实体类
 * emp_id INT AUTO_INCREMENT
 * emp_name CHAR(100)
 * emp_salary DOUBLE(10,5)
 *
 * Java 的实体类中,属性的类型不要使用基本数据类型,要使用包装类型。因为包装类型可以赋值为null,表示空,而基本数据类型不可以。
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {

    private Integer empId;

    private String empName;

    private Double empSalary;

}

3、搭建框架开发环境

①导入依赖

<!-- Mybatis核心 -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.7</version>
</dependency>

<!-- junit测试 -->
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>

<!-- MySQL驱动 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.3</version>
</dependency>

②准备配置文件

[1]Mybatis 全局配置文件

习惯上命名为 mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合 Spring 之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。

<?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>

  <!-- environments表示配置Mybatis的开发环境,可以配置多个环境,在众多具体环境中,使用default属性指定实际运行时使用的环境。default属性的取值是environment标签的id属性的值。 -->
  <environments default="development">
  
    <!-- environment表示配置Mybatis的一个具体的环境 -->
    <environment id="development">

      <!-- Mybatis的内置的事务管理器 -->
      <transactionManager type="JDBC"/>

      <!-- 配置数据源 -->
      <dataSource type="POOLED">

        <!-- 建立数据库连接的具体信息 -->
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis-example"/>
        <property name="username" value="root"/>
        <property name="password" value="atguigu"/>
      </dataSource>

    </environment>
  </environments>

  <mappers>
    <!-- Mapper注册:指定Mybatis映射文件的具体位置 -->
    <!-- mapper标签:配置一个具体的Mapper映射文件 -->
    <!-- resource属性:指定Mapper映射文件的实际存储位置,这里需要使用一个以类路径根目录为基准的相对路径 -->
    <!--    对Maven工程的目录结构来说,resources目录下的内容会直接放入类路径,所以这里我们可以以resources目录为基准 -->
    <mapper resource="mappers/EmployeeMapper.xml"/>
  </mappers>

</configuration>

注意:配置文件存放的位置是src/main/resources目录下。

[2]Mybatis 映射配置文件

相关概念:ORM(Object Relationship Mapping)对象关系映射。

  • 对象:Java的实体类对象
  • 关系:关系型数据库
  • 映射:二者之间的对应关系

下表列举的是最简单的单表映射(一个表和一个类):

Java概念 数据库概念
属性 字段/列
对象 记录/行

<?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属性:在Mybatis全局范围内找到一个具体的Mapper配置 -->
<!-- 引入接口后,为了方便通过接口全类名来找到Mapper配置文件,所以通常将namespace属性设置为接口全类名 -->
<mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper">

    <!-- 编写具体的SQL语句,使用id属性唯一的标记一条SQL语句 -->
    <!-- resultType属性:指定封装查询结果的Java实体类的全类名 -->
    <select id="selectEmployee" resultType="com.atguigu.mybatis.entity.Employee">
        <!-- Mybatis负责把SQL语句中的#{}部分替换成“?”占位符,在#{}内部还是要声明一个见名知意的名称 -->
        select emp_id empId,emp_name empName,emp_salary empSalary from t_emp where emp_id=#{empId}
    </select>
</mapper>

注意:EmployeeMapper.xml所在的目录要和mybatis-config.xml中使用mapper标签配置的一致。

标签:salary,实体类,Java,name,工程,创建,emp,mybatis,Mybatis02
From: https://www.cnblogs.com/Ashen-/p/17117786.html

相关文章

  • 开学初软件工程第一次课进行课前测试,要求实现一个完整MIs系统的开发流程
    本次测试经历了三个小时,这次测试使沉醉在假期的我惊醒,我意识到我仍是一名学生,我还有许多的东西要去学习。我先去复习上学期的增删改查,连接数据库之类的知识,之后开始写代码,......
  • 《软件工程》 课前测试试卷
      1、项目需求: 河北省环保监测中心网络新闻为搭建公众信息交流平台,决定建立新闻发布平台。新闻发布平台按内容包括中心新闻、企业环保信息发布等若干新闻栏目,新闻撰......
  • 软件工程课前测验
    1、项目需求:河北省环保监测中心网络新闻为搭建公众信息交流平台,决定建立新闻发布平台。新闻发布平台按内容包括中心新闻、企业环保信息发布等若干新闻栏目,新闻撰稿人可登......
  • 2021级《软件工程》 课前测试试卷(180分钟) 河北省环保监测中心网络新闻发布系统
    2021级《软件工程》课前测试试卷(180分钟) 河北省环保监测中心网络新闻发布系统(卷面成绩40分,占课程过程考核20分) 1、项目需求:河北省环保监测中心网络新闻为搭建公众......
  • execl 子进程创建踩坑
    execl函数:头文件:#include<unistd.h>功能:为进程重载0-3G的用户空间,可与fork函数搭配使用语法:intexecl("绝对路径",“标识符”,“需要的参数”(需要多少传入多少),NULL......
  • 运维工程师监控工作之Mysql数据库监控
    目前互联网公司、金融公司信创建设最常用的数据库是Mysql,由于外部流量压力往往最终落到数据库层面,因此对Mysql数据库的监控几乎是运维工程师的看家本领。数据库监控通常分......
  • RTSP Server(LIVE555)源码分析(二)-服务器创建
    一、设置RTSP服务器配置  步骤1.5:rtspServer_Init--->BasicTaskScheduler::createNew()时序图如下:1)步骤1.54,BasicTaskScheduler0构造函数中创建HandleSet对象,通过Ha......
  • 关于适配服务器创建多线程任务的一些见解
    1、首先理解I/O密集和CPU密集CPU密集型CPU密集型,也叫计算密集型,一般是指服务器的硬盘、内存硬件性能相对CPU好很多,或者使用率低很多。系统运行CPU读写I/O(硬盘/内存)时可......
  • 工程监测多通道振弦模拟信号采集仪VTN常规操作
    工程监测多通道振弦模拟信号采集仪VTN常规操作 一、开关机1、开机VTN4XX有四个开机途径,手动开机、自动定时开机和上电开机、信号触发开机。上电开机:当“工作模式拨码......
  • Linux运维工程师的10个日常使用工具分享
    (Linux运维工程师的10个日常使用工具分享)一、本次分享工具导航1.Adminer数据库管理工具2.Memos碎片化知识管理工具3.Linux服务器集群管理工具APPNode4.webmin——Lin......