首页 > 其他分享 >10.24

10.24

时间:2023-10-24 23:35:06浏览次数:37  
标签:10.24 id emp time import public Emp

今天学习了使用mybatis通过注解的方式实现对数据库最基本的增删改查

定义了一个Emp的类对象

Emp.java

package com.itheima.mybatisdatabaseexample.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private short gender;
    private String imag;
    private short job;
    private LocalDate entrydate;
    private Integer deptId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

 

定义了一个EmpMapper的接口

EmpMapper.java

package com.itheima.mybatisdatabaseexample.mapper;

import com.itheima.mybatisdatabaseexample.pojo.Emp;
import org.apache.ibatis.annotations.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

@Mapper

public interface EmpMapper {
    //删除数据
    @Delete("delete from mybaits.emp where id=#{id}")
    public void delete(Integer id);

    @Options(keyProperty = "id", useGeneratedKeys = true)
    @Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +
            " VALUES (#{username},#{name},#{gender},#{imag},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")
    public void insert(Emp emp);

    @Update("update  emp set username=#{username},name=#{name},gender=#{gender},image=#{imag},job=#{job},entrydate=#{entrydate},dept_id=#{deptId},update_time=#{updateTime} where id=#{id};")
    public void update(Emp emp);
//@Select("select *  from emp where id=#{id}")
//    public Emp select(Integer id);


//查询完善的方式一:起别名
//@Select("select id, username, password, name, gender, image, job, entrydate, dept_id deptId, create_time createTime, update_time updateTime from emp where id=#{id}")
//public Emp select(Integer id);


//方式二 通过@Result @Results手动注解封装
//    @Results({
//            @Result(property = "deptId",column = "dept_id"),
//            @Result(property = "createTime",column = "create_time"),
//            @Result(property = "updateTime",column = "update_time"),
//    })
//    @Select("select *  from emp where id=#{id}")
//    public Emp select(Integer id);


//    方案三:开启mybatis的驼峰命名自动映射开关

    @Select("select *  from emp where id=#{id}")
    public Emp select(Integer id);
//多条件查询
//    @Select("select * from emp where name like '%张%' " +
//            "and gender=1 and entrydate between'2010-01-01' and '2023-01-01'" +
//            " order by update_time desc ;")
//    public List<Emp>list();

    //    使用字符串拼接
    @Select("select * from emp where name like concat('%','张','%')" +
            "and gender=1 and entrydate between'2010-01-01' and '2023-01-01'" +
            " order by update_time desc ;")
    public List<Emp> list();

//    @Select("select * from emp where name like '%${name}%' " +
//            "and gender=#{gender} and entrydate between#{begin} and #{end}" +
//            " order by update_time desc ;")
//    public List<Emp>list(String name,short gender, LocalDate begin, LocalDate end);
}

同时在测试类中定义函数来实现函数

MybatisDatabaseExampleApplicationTests.java

package com.itheima.mybatisdatabaseexample;

import com.itheima.mybatisdatabaseexample.mapper.EmpMapper;
import com.itheima.mybatisdatabaseexample.pojo.Emp;
import org.apache.ibatis.annotations.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@SpringBootTest
class MybatisDatabaseExampleApplicationTests {
    @Autowired
    private EmpMapper empMapper;

    @Test
    public void testDelete() {
        empMapper.delete(17);
    }

    @Test
    public void insert() {
        Emp emp = new Emp();
        emp.setUsername("Tom1");
        emp.setName("汤姆1");
        emp.setGender((short) 1);
        emp.setImag("1.jpg");
        emp.setJob((short) 1);
        emp.setEntrydate(LocalDate.now());
        emp.setDeptId(1);
        emp.setCreateTime(LocalDateTime.now());
        emp.setUpdateTime(LocalDateTime.now());
        empMapper.insert(emp);
        System.out.println(emp.getId());
    }

    @Test
    public void update() {
        Emp emp = new Emp();
        emp.setUsername("Tom5");
        emp.setName("汤姆5");
        emp.setGender((short) 1);
        emp.setImag("3.jpg");
        emp.setJob((short) 2);
        emp.setEntrydate(LocalDate.of(2022, 10, 15));
        emp.setDeptId(2);
        emp.setUpdateTime(LocalDateTime.now());
        emp.setId(20);
        empMapper.update(emp);
    }

    @Test
    public void select() {
        Emp emp = empMapper.select(7);
        System.out.println(emp);
    }


    @Test
    public void selectByCondition() {
        List<Emp> empList = empMapper.list();
        System.out.println(empList);
    }
//    @Test
//    public void selectByCondition()
//    {
//List<Emp>empList=empMapper.list("张",(short)1,LocalDate.of(2010,01,01),LocalDate.of(2020,01,01));
//        System.out.println(empList);
//    }
}

当然在application.properties的配置文件中 我们需要配置连接数据库的基本设置

application.properties

#?????
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#???????url
spring.datasource.url=jdbc:mysql://localhost:3306/mybaits
#?????????
spring.datasource.username=root
#??
spring.datasource.password=123456789
#??mybatis?????????????
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#kaiqi tuofengmingming zidongyingshe kaiguan
mybatis.configuration.map-underscore-to-camel-case=true

第一行说明我们需要的连接数据库驱动,同时第二行是要链接的url地址,第三行是连接数据库的地址,第四行是连接数据库的密码,第五行是配置是现在控制台打印出运行与数据库连接的日志信息,第六行是配置出开启驼峰命名自动映射的开关,此开关的作用是可以在搜查元素时,当java代码中的变量名和数据库表中不一致时,且java代码的变量是驼峰命名,数据库中是下划线命名时,自动匹配相应信息。

标签:10.24,id,emp,time,import,public,Emp
From: https://www.cnblogs.com/zzqq1314/p/17786012.html

相关文章

  • 2023.10.24——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.mybatis明日计划:学习......
  • 23.10.24(jsp下拉框添加默认值)
    通过查阅网上资料,得到jsp下拉框默认值的设置方式:<selectname="zy"id="zy"required><optionvalue="0"></option><optionvalue="信息工程"<%=selectValue.equals("信息工程")?"selected&......
  • 大二打卡(10.24)
    今天做了什么:数据结构,第一节课复习,第二节课开始对哈夫曼相关知识讲解,都是离散里面学过的,除了代码实现,还算轻松的一节课,下节课就要开始讲图了,一天天过的真快啊马原,今天座位占的好,在第四排,虽然离老师不近,但是还是可以的,下次抢个再考前一点点的位置晚上白话文,金瓶mei,以前只知道是......
  • 10.24日记
    CPU 计算机硬件基本系统有五大部分组成:运算器,控制器,存储器,输入设备,输出设备。 存储器分为内部存储器(即内存,容量小,速度快,临时存放数据)和外部存储器(即硬盘,光盘等,容量大,速度慢,长期保存数据) 中央处理单元组成:由运算器,控制器,寄存器组和内部总线组成 中央处理单元功能:实现程序控制,操......
  • 10.24
    今日代码:200行今日时间:4小时学习内容:今天学习了spark的相关知识,受益匪浅,留了点作业  编程实践:参考教程https://dblab.xmu.edu.cn/blog/4322/,任意选择以下一种方式通过SparkAPI编写一个独立应用程序。(一)使用sbt对Scala独立应用程序进行编译打包(二)使用Maven对Java独立应用......
  • 10.24送温暖,把“猿”节过的圆圆满满(文末双重福利!)
    "IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。程序员之歌在那山的那边海的那边......
  • pod启动时报错:failed to set bridge addr: "cni0" already has an IP address differe
    今天创建pod的时候,一直不running,describepod后看到报错:Failedcreatepodsandbox:rpcerror:code=Unknowndesc=failedtosetupsandboxcontainer"bb8a1493......
  • cv学习总结(SVM,softmax)10.24-10.30
          本周完成了SVM课程笔记的阅读,包括SVM的基本原理以及SVM的优化过程,以及实现了SVM的两种损失函数(svm以及softmax)的线性分类器,以及学习了反向传播以及神经网......
  • 10.24-10.28周末回顾
    目录一、购物车二、hashlib模块1.加密的含义,如何理解加密2.加密算法的基本使用3.加密补充说明4.加密操作的用处5.优秀hash算法的特性三、子进程模块subprocess模块四、logg......
  • 10.24集训解题报告
    T1方程(\(equation\))题面:给定\(4\)个正整数\(a\),\(b\),\(c\),\(d\),并且保证\(c\)\(×\)\(d\)\(≤\)\(10^6\),请你求出有多少组正整数对\((x,y)\)满足如......