首页 > 其他分享 >MyBatis注解模式和优化

MyBatis注解模式和优化

时间:2024-01-27 14:44:46浏览次数:27  
标签:配置文件 数据库 private MyBatis 注解 优化 public

MyBatis注解模式

之前我们使用xml文件方式实现sql语句的编写,我们也可以使用注解模式编写sql语句。

前面的基本配置一致,不再叙述。

第一步:创建实体类

根据数据库的列名与表名设计实体类

数据库信息:(表名t_student)

实体类:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
    private Integer id;
    private String name;
    private String phone;
    private String email;
    private String profession;
    private Integer age;
}

第二步:创建对应dao接口

使用注解方式语法:

//@注解(sql语句)
@Select("select * from t_student")
//方法
public List<Student> queryAll(); 

增删改查都有其对应的注解:

添加:@Insert()
删除:@Delete()
修改:@Update()
查询:@Select()

映射接口:

public interface StudentDao {
    //通过注解的方式查询所有学生
    @Select("select * from t_student")
    public List<Student> queryAll();
}

dao接口放到MyBatis配置文件中

第三步:测试

public class StudentTest {
    @Test
    public void queryTest() throws Exception{
        //读取 MyBatis配置文件资源
        //import org.apache.ibatis.io.Resources; 注意这里导入的包必须是ibatis下的
        Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
        //创建SqlSessionFactory工厂(根据读取mybatis配置文件进行创建)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
        //开启SqlSession会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //通过映射关系,获取映射文件中对应的接口
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        //通过接口调用相关查询方法
        List<Student> studentList = studentDao.queryAll();
        //将结果输出
        System.out.println("roleList = " + studentList);
    }
}

效果展示:

 注意:注解的模式适用于单表操作,对于多表操作仍然推荐使用xml文件的方式。

优化

1. 引入数据库属性文件

使用数据库属性文件可以将数据库连接的信息更加方便管理,当数据库信息需要修改时,只需要修改数据库属性文件即可实现全部修改。

①在resources目录下创建一个数据源的属性文件db.properties

#dirver名字随便起,但是需要做到见名知意 driver表示驱动器
driver=com.mysql.cj.jdbc.Driver
#url表示数据库的路径
url=jdbc:mysql://localhost:3306/day124?serverTimezone=Asia/Shanghai
#username表示数据库的名称
username=root
#password表示数据库的密码
password=1qaz2wsx

②在MyBatis配置文件下添加资源文件

 2. 可以为实体类起别名

在MyBatis配置文件中使用标签<typeAliases>起别名

<typeAliases>
    <!-- typeAlias:为一个指定的实体类起别名  type:实体类的路径全称  alias:为这个实体类起别名-->
    <typeAlias type="com.hrc.entity.Role" alias="Role"/>
    <!-- package:为包下所有的实体类起一个默认的别名    默认别名是其对应的类名       -->
    <package name="com.hrc.entity"/>
</typeAliases>

在映射文件中使用别名:

 

标签:配置文件,数据库,private,MyBatis,注解,优化,public
From: https://www.cnblogs.com/gzyhrc/p/17991318

相关文章

  • 洞察驱动增长:数字化转型中的用户行为分析与优化策略
    文末给出一个用户行为分析的案例在数字化转型中,越来越多的企业认识到对用户的实时深入洞察,以及数据资产的沉淀已成为业务增长的重要引擎。用户行为结合场景带来的用户洞察和业务增长带来新的可能,是每一个做管理、营销、运营的人都应该深入了解和探究的。分析用户行为,优化用户体验使......
  • 注解@CrossOrigin详解
    转载自:https://blog.csdn.net/MobiusStrip/article/details/84849418文章目录注解@CrossOrigin一、跨域(CORS)支持:二、使用方法:1、controller配置CORS1.1、controller方法的CORS配置1.2、为整个controller启用@CrossOrigin1.3、同时使用controller和方法级别的C......
  • 搭建MyBatis工程
    快速搭建MyBatis工程第一步:创建一个maven的工程这里使用maven来创建MyBatis工程第二步:导入相关依赖需要导入MyBatis工程中对应的依赖,以及后期所需要的依赖<dependencies><!--mybatis的依赖--><dependency><groupId>org.mybatis</groupId>......
  • MyBatis简易教程
     MyBatis是数据库访问层框架,是一个应用层框架。 MyBatis简易教程(01):mybatis基础MyBatis简易教程(02):mybatis动态sqlMyBatis简易教程(03):mybatis关联映射(一对一)MyBatis简易教程(04):mybatis关联映射(一对多、多对一)MyBatis简易教程(05):mybatis关联映射(多对多)MyBatis简易教程(06):MyBati......
  • spring boot mybatis plus & tk-mybatis
    使用Mybatis时,最大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务逻辑SQL语句之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这大量增加了程序员的负担。避免重复书写CRUD映射的框架有两个通用mybati......
  • Java 应用部署包优化经验分享
    背景最近接手了一个2018年的老项目,因为太久远了,功能上的代码不敢乱动。但是这个项目还有一个问题,打包模块打出的全量包部署不起来。拿到这个项目的部署包,400多兆,网速慢的情况下,下载、上传都得好半天。分析了一下部署包,决定先优化一下,本文记录这个Java应用的部署包优化过程。优......
  • 网站SEO优化有什么注意事项?
    网站上线后,需要从多方面进行SEO优化,提高网站的权重排名和流量,使网站更加成熟,增加访客与转化。那么,在SEO优化中需要考虑什么呢?景安虚拟主机小编与大家分享下SEO优化需要考虑的内容,一起看看吧!首先百度推出了微风算法来点击标题关键词是否有堆砌,然后在推出熊掌之后,对原来的保......
  • 将关键词优化到搜索引擎首页的方法?
    将关键词优化到搜索引擎首页的方法?下面跟北京wordpress建站公司小编一起来了解详细内容:新手在做网站SEO优化时,如何提高网站首页的关键词排名?其实这也很简单,就是优化用户喜欢的内容到搜索引擎首页,这样网站才能有更好的排名,并吸引更多准确的用户流量。在资金充足的情况下......
  • 通达信极品MACD优化版副图指标公式源码
    该指标,简单实用,看盘必备指标金叉在点阵下方时,尽量不要参与 仅在点阵上方时,可大胆介入 在点阵上方金叉的,涨势会非常顺滑DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);DIF:EMA(CLOSE,12)-EMA(CLOSE,26),LINETHICK2;DEA:EMA(DIF,9),COLORWHITE;MACD:(DIF-DEA)*2,NODRAW;DRAWBAND(......
  • 一种轻量分表方案-MyBatis拦截器分表实践
    背景部门内有一些亿级别核心业务表增速非常快,增量日均100W,但线上业务只依赖近一周的数据。随着数据量的迅速增长,慢SQL频发,数据库性能下降,系统稳定性受到严重影响。本篇文章,将分享如何使用MyBatis拦截器低成本的提升数据库稳定性。 业界常见方案针对冷数据多的大表,常用的策略......