MyBatis创建第二个项目

Mysql文件配置

  1. /*
    Navicat Premium Data Transfer

    Source Server         : Mybatis
    Source Server Type   : MySQL
    Source Server Version : 50528
    Source Host           : localhost:3306
    Source Schema         : mybatis

    Target Server Type   : MySQL
    Target Server Version : 50528
    File Encoding         : 65001

    Date: 14/03/2022 18:09:01
    */

    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;

    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES (1, '张三', '123');
    INSERT INTO `user` VALUES (2, '李四', '236');
    INSERT INTO `user` VALUES (3, '王五', '456');
    INSERT INTO `user` VALUES (5, '法外狂徒', '478');

    SET FOREIGN_KEY_CHECKS = 1;

配置pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <modelVersion>4.0.0</modelVersion>

       <groupId>com.wfy</groupId>
       <artifactId>MybatisDemo</artifactId>
       <version>1.0-SNAPSHOT</version>

       <properties>
           <maven.compiler.source>8</maven.compiler.source>
           <maven.compiler.target>8</maven.compiler.target>
       </properties>
       <dependencies>
           <dependency>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis</artifactId>
               <version>3.5.2</version>
           </dependency>
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>8.0.11</version>
           </dependency>
           <dependency>
               <groupId>junit</groupId>
               <artifactId>junit</artifactId>
               <version>4.12</version>
               <scope>test</scope>
           </dependency>
       </dependencies>
       <build>
           <resources>
               <resource>
                   <directory>src/main/java</directory>
                   <includes>
                       <include>**/*.properties</include>
                       <include>**/*.xml</include>
                   </includes>
                   <filtering>true</filtering>
               </resource>
           </resources>
       </build>
    </project>

创建数据库连接信息配置文件 db.properties

  1. mysql.driver=com.mysql.cj.jdbc.Driver
    mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\
    characterEncoding=utf8&useUnicode=true&useSSL=false
    mysql.username=root
    mysql.password=root

创建MyBatis核心配置文件 mybatis-config.xml

  1. <?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"/>
               <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>
           <mapper resource="com/wfy/mapper/CustomerMapper.xml"/>
       </mappers>
    </configuration>

创建pojo实体

  1. package com.wfy.pojo;

    public class Customer {
       private  int id ;
       private  String username;
       private  String jobs ;
       private  String phone;

       public  Customer(){

      }

       public Customer(int id, String username, String jobs, String phone) {
           this.id = id;
           this.username = username;
           this.jobs = jobs;
           this.phone = phone;
      }

       public int getId() {
           return id;
      }

       public void setId(int id) {
           this.id = id;
      }

       public String getUsername() {
           return username;
      }

       public void setUsername(String username) {
           this.username = username;
      }

       public String getJobs() {
           return jobs;
      }

       public void setJobs(String jobs) {
           this.jobs = jobs;
      }

       public String getPhone() {
           return phone;
      }

       public void setPhone(String phone) {
           this.phone = phone;
      }

       @Override
       public String toString() {
           return "Customer{" +
                   "id=" + id +
                   ", username='" + username + '\'' +
                   ", jobs='" + jobs + '\'' +
                   ", phone='" + phone + '\'' +
                   '}';
      }
    }

创建工具类

  1. package com.wfy.utils;
    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.Console;
    import java.io.InputStream;

    public class MyBatisUtils {

       static    SqlSessionFactory factory=null;

       static {
           String configFile= "mybatis-config.xml";
           try {
               InputStream stream= Resources.getResourceAsStream(configFile);
               factory = new SqlSessionFactoryBuilder().build(stream);
          }
           catch (Exception e)
          {
               System.out.println(e);
          }

      }

       public static SqlSession getSession()
      {
           return factory.openSession();
      }
    }


创建映射文件CustomerMapper.xml

  1. <?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.wfy.mapper.CustomerMapper">
       <select id="findByNameAndJob" resultType="com.wfy.pojo.Customer" >

    select * from customer
    <where>
       <if test=" username !=null and username !=''">
          and username like concat ('%',#{username},'%')
       </if>
       <if test=" jobs !=null and jobs !=''">
          and jobs =#{jobs}
       </if>
    </where>
       </select>
       <select id="findByNameOrJob" resultType="com.wfy.pojo.Customer">
          select * from customer
           <where>
           <choose>
               <when test="username != null and username !=''">
                  and username like concat ('%',#{username},'%')
               </when>
               <when test="jobs !=null and jobs !=''">
                  and jobs =#{jobs}
               </when>
               <otherwise>
                  and phone is not null
               </otherwise>
           </choose>
           </where>
       </select>

       <select id="findCustomerByNameAndJob" resultType="com.wfy.pojo.Customer">
          select * from customer
    <trim prefix="where" prefixOverrides="and">
       <if test="username !=null and username != ''">
          and username like concat('%',#{username},'%')
       </if>
       <if test=" jobs !=null and jobs !=''">
          and jobs =#{jobs}
       </if>
    </trim>
       </select>

       <update id="updateCustomerBySet" parameterType="com.wfy.pojo.Customer" >
          update customer
           <set>
               <if test="username!=null and username!=''">
                  username=#{username},
               </if>
               <if test="jobs!=null and jobs!=''">
                  jobs=#{jobs},
               </if>
               <if test="phone!=null and phone!=''">
                  phone=#{phone},
               </if>
           </set>
          where id=#{id}
       </update>

    </mapper>

创建接口CustomerMapper

  1. package com.wfy.mapper;

    import com.wfy.pojo.Customer;
    import org.apache.ibatis.annotations.Param;

    import java.util.List;

    public interface CustomerMapper {
       List<Customer> findByNameAndJob(@Param("username") String username , @Param("jobs") String jobs) ;

       List<Customer> findByNameOrJob( @Param("username") String username , @Param("jobs") String jobs);

       List<Customer> findCustomerByNameAndJob(@Param("username") String username,@Param("jobs") String jobs);

       int updateCustomerBySet(Customer customer);
    }

创建测试类

  1. package Test;

    import com.wfy.mapper.CustomerMapper;
    import com.wfy.pojo.Customer;
    import com.wfy.utils.MyBatisUtils;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;

    import java.util.List;

    public class CustomerTest {

       @Test
       public void  TestfindByNameAndJob( ){
      //获取连接
           SqlSession sqlSession = MyBatisUtils.getSession();
           CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
           List<Customer> customers= (List<Customer>) mapper.findByNameAndJob("张三","教师");
           for(Customer customer:customers)
           System.out.println(customer);

           sqlSession.close();
      }

       @Test
       public void findByNameOrJobTest(){
           //获取连接
           SqlSession sqlSession = MyBatisUtils.getSession();
           CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
           List<Customer> customers =mapper.findByNameOrJob("WFY","CEO");
           for (Customer customer : customers) {
               System.out.println(customer);
          }
           sqlSession.close();
      }

       @Test
       public  void findCustomerByNameAndJob(){
           SqlSession sqlSession = MyBatisUtils.getSession();
           CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
           List<Customer> customerList = mapper.findCustomerByNameAndJob("绫小路清隆", "学生");
           for (Customer customer : customerList) {
               System.out.println(customer);
          }
              sqlSession.close();
      }

       @Test
       public  void updateCustomerByTest(){
           SqlSession sqlSession = MyBatisUtils.getSession();
           CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
         int rows = mapper.updateCustomerBySet(new Customer(1,"法外狂徒","律师","12345678"));
    if(rows>0){
       System.out.println("成功修改"+rows+"条数据");
    }else {
       System.out.println("执行修改操作失败");
    }
    sqlSession.commit();
    sqlSession.close();
      }

    }

MyBatis创建第二个项目的更多相关文章

  1. 11. IDEA 在同一工作空间创建多个项目

    1.创建项目 二..创建工作空间 JavaWorkspace 1.File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2 ...

  2. IDEA 在同一工作空间创建多个项目

    1.创建项目 二..创建工作空间 JavaWorkspace 1.File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2 ...

  3. 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战

    mabitis中的一对一关系项目实战: 1.首先根据创建以mybatis为基础的web项目(1)中的流程将web项目部署好 打开IDE,建立web工程 在lib下面粘贴mybatis的jar,log4 ...

  4. 快速创建一个springboot项目

    创建一个maven项目(springboot.mybatis-plus) 目标:可以访问ftl页面.对象(json字符串),可以进行单元测试 1.新建一个maven项目,选择模板maven-arche ...

  5. maven系列之二maven项目的创建和maven项目的结构

    maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...

  6. maven安装配置及使用maven创建一个web项目

    今天开始学习使用maven,现在把学习过程中的资料整理在这边. 第一部分.maven安装和配置. http://jingyan.baidu.com/article/295430f136e8e00c7e ...

  7. eclipse中创建一个maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  8. IntelliJ IDEA 创建 Maven简单项目

    创建简单Maven项目 使用IDEA提供的Maven工具,根据artifact创建简单Maven项目.根据下图操作,创建Maven项目. 使用IDEA提供的Maven工具创建的Maven简单项目目录结 ...

  9. springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

    包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...

随机推荐

  1. PTA(BasicLevel)-1014 福尔摩斯的约会

    一.问题描述 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明 ...

  2. 构建 API 的7个建议【翻译】

    迄今为止,越来越多的企业依靠API来为客户提供服务,以确保竞争的优势和业务可见性.出现这个情况的原因是微服务和无服务器架构正变得越来越普遍,API作为其中的关键节点,继承和承载了更多业务. 在这个前提 ...

  3. Note -「Dijkstra 求解 MCMF」

    食用前请先了解 SPFA + Dinic/EK 求解 MCMF. Sol. 总所周知,SPFA 牺牲了.于是我们寻求一些更稳定的算法求解 MCMF. 网络流算法的时间属于玄学,暂且判定为混乱中的稳定. ...

  4. 86开关、家电、台扇等6键6路6感应通道高抗干扰触摸IC-VK3606D,稳定性好,抗干扰能力强

    概述: VK3606D SOP16具有6个触摸按键,可用来检测外部触摸按键上人手的触摸动作.该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测.提供了6路1对1直接输出低电平有效.最长输 ...

  5. 算法竞赛进阶指南0x35高斯消元与线性空间

    高斯消元 目录 高斯消元 ACWing207. 球形空间产生器(点击访问) 求解思路 代码 ACWing208. 开关问题(点击访问) 思路 代码 总结 欣赏 线性空间 定义 ACWing209. 装 ...

  6. jsx/tsx使用cssModule和typescript-plugin-css-modules

    目录 1,前言 2,效果图 3,如何使用 3.1,安装 3.2,配置 4,示例 5,插件错误处理 5.1,错误触发原因 5.2,解决办法 1,前言 在vite/webpack搭建的项目中,不管是vue ...

  7. 网易云UI模仿-->侧边栏

    侧边栏 效果图 界面分解 可以看到从上到下的流式布局.需要一个Column来容纳,并且在往上滑动的过程中顶部的个人信息是不会动的.所以接下来需要将剩余部分占满使用Flexibel组件. 实现 个人信息 ...

  8. 5.23 NOI 模拟

    $5.23\ NOI $模拟 \(T1\)简单的计算几何题 \(zjr:\)我当时没改,那么自己看题解吧 倒是有个简单的随机化方法(能获得\(72pts,\)正确性未知)\(:\) 随机两条切椭圆的平 ...

  9. 万答#11,MySQL中char与varchar有什么区别

    万答#11,MySQL中char与varchar有什么区别 1.实验场景 GreatSQL 8.0.25 InnoDB 2.实验测试 2.1 区别 参数 char varchar 长度是否可变 定长 ...

  10. 基于webgl(threejs)的路面编辑

    楔子 在很多应用中,特别是一些园区类的应用. 都需要对园区的地面 环境进行展示,路面就是地面的一部分. 通常的做法是,都是建模的时候把相关的元素都建好,然后导入到展示系统中进行展示. 不过有些情况下, ...