mybatis
文章平均质量分 95
爱吃肉c
关关难过关关过,前路漫漫亦灿灿
展开
-
spring 集成 mybatis
○ Account,属性私有化,提供公开的setter getter和toString。○ mybatis-spring:mybatis提供的与spring框架集成的依赖。○ 该文件可以没有,大部分的配置可以转移到spring配置文件中。○ 如果遇到mybatis相关的系统级配置,还是需要这个文件。● 第九步:编写mybatis-config.xml配置文件。○ 在配置文件中配置命名空间,以及每一个方法对应的sql。● 第十一步:编写测试程序,并添加事务,进行测试。● 第六步:编写mapper配置文件。原创 2024-04-13 20:59:21 · 877 阅读 · 0 评论 -
mybatis(9)-逆向工程+PageHelper+注解方式开发
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。所谓的逆向工程是:根据数据库表逆向生成Java的pojo类,SqlMapper.xml文件,以及Mapper接口类等。当然,使用注解式开发的话,sql语句是写在java程序中的,这种方式也会给sql语句的维护带来成本。mybatis中也提供了注解式开发方式,采用注解可以减少Sql映射文件的配置。原创 2024-04-13 09:53:35 · 708 阅读 · 0 评论 -
mybaits(8)-缓存机制
mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库。第二种:第一次查询和第二次查询之间,执行了增删改操作。● 或者集成其它第三方的缓存:比如EhCache【Java语言开发的】、Memcache【C语言开发的】等。第二次并没有执行sql,而是从二级缓存中读取了,因为一级缓存关闭,会将其内容保存在二级缓存中。进行了增删改的操作,就会导致二级缓存清空,二级缓存此时会失效。缓存的作用:通过减少IO的方式,来提高程序的执行效率。原创 2024-04-12 11:27:41 · 1146 阅读 · 0 评论 -
mybatis(7)--高级关系映射
开启全局延迟加载之后,所有的sql都会支持延迟加载,如果某个sql你不希望它支持延迟加载怎么办呢?select 是我们接下来要执行的语句,而column 是我们传给sql语句的参数,column是我们查询出来的列名。● 第三种方式:两条SQL语句,分步查询。优点二是支持懒加载。多对一 所以 多的那个表为主表,一的那个为副表,即在Student主表中添加Clazz副表。● 第二种方式:一条SQL语句,association。此时班级是主表,学生是副表。● 第一种方式:一条SQL语句,级联属性映射。原创 2024-04-12 09:33:05 · 879 阅读 · 0 评论 -
mybatis-动态sql
需求:先根据品牌查询,如果没有提供品牌,再根据指导价格查询,如果没有提供指导价格,就根据生产日期查询。比如我们只更新提交的不为空的字段,如果提交的数据是空或者"",那么这个字段我们将不更新。主要使用在update语句当中,用来生成set关键字,同时去掉最后多余的“,”如果让第一个为空,此时不会出现错误,会自动帮我们去掉多余的and。● 所有条件都为空时,where标签保证不会生成where子句。● 自动去除某些条件前面多余的and或or。可以自动增加前缀,后缀,删除前缀,删除后缀。只有一个分支会被选择!原创 2024-04-10 20:55:01 · 1267 阅读 · 0 评论 -
mybatis(5)参数处理+语句查询
使用了param注解,底层也是帮我们封装成了map集合,但是是将我们自己定义的名字封装为key,且这里argx不能再用,但是paramx仍可以使用。比如 char 类 我们可以通过parameterType 来告诉mybatis 参数类型是什么,其他基本数据类型都一样,不在举例。注意:如果我们传的是实体类,则#{},{}里应该是实体类的属性名,不能是其他。传入多参数时,其实mybatis底层是帮我们封装成了map集合。我们也可以显示标注类型,省去mybatis的类型匹配。就相当于帮我们封装成。原创 2024-04-10 09:54:55 · 520 阅读 · 0 评论 -
mybatis(4) 代理机制以及小技巧
此时当我们插入时,就会将自动生成的主键值赋给id,如果为false,则我们输出时car的id为null,虽然数据库中car的id是有值的,但是由于没有回显,输出就为null。在上一篇mybtis的web项目中,我们最后有一个问题没有解决,就是dao的实现类,其代码很类似,只是具体执行的sql语句不同,那么我们是否可以只编写dao的接口,而不用编写其具体实现类呢?虽然我们插入的car id为null,但是当我们再次获取输出car时我们可以看到其id是有值的,当需要进行sql语句关键字拼接的时候。原创 2024-04-09 17:16:06 · 642 阅读 · 0 评论 -
spring6-代理模式
它既可以代理接口,又可以代理类,底层是通过继承的方式实现的。通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。并且这种方式要为每一个接口都实现一个类,如果我们的接口很多,就会导致类爆炸,使用动态代理可以解决这个问题,动态代理不要求我们写出代理类,而是会在内存中自动生成且实例化一个对象。在程序运行阶段,在内存中动态生成代理类,被称为动态代理,目的是为了减少代理类的数量。解决代码复用的问题。原创 2024-04-01 09:59:45 · 805 阅读 · 0 评论 -
mybatis(2)核心配置文件
这样就有了自己的数据源比如你可以写一个属于自己的数据库连接池(数据库连接池是提供连接对象的,所以数据库连接池就是一个数据源)。: 这是一个底层设置,如果获取连接花费了相当长的时间,连接池会打印状态日志并重新尝试获取一个连接(避免在误配置的情况下一直失败且不打印日志),默认值:20000 毫秒(即 20 秒)。:即我们的连接池中最多会有几个活跃连接数量,超过该连接数量之后,之后的连接就要等待之前的连接释放。连接池的优点:1每次链接都从池中拿,效率高2.每次只能从池中拿,连接对象的创建数量是可控的。原创 2024-03-31 17:06:43 · 600 阅读 · 0 评论 -
Mybatis(3) web项目
实现一个转账系统。原创 2024-03-31 16:49:29 · 628 阅读 · 0 评论 -
Mybatis (1)
如果我们有多个mapping.xml文件,且sql语句的id是一致的,此时命名空间就很重要了,因为我们将这个xml文件都配置到mybatis-config.xml文件中,此时如果我们只写id名来找该sql语句的话,就会出错,因为不知道是哪一个。我配置文件也没有开启驼峰式映射,不知道为什么我没有起别名,但是也是对的,他自动帮我匹配到了我的类属性名,好像是会自动开启驼峰式映射?如果我们使用的是一个对象传值,则#{},{}里填写的是getXxx,去掉get第一个字母变小写后的名字,而不是说就是属性名。原创 2024-03-29 15:44:51 · 620 阅读 · 0 评论 -
Mybatis-plus
Mybatis-plus原创 2023-12-09 10:11:22 · 434 阅读 · 0 评论 -
Mybatis简介(二)
resultType只能进行单表映射,所以对于多表映射,我们需要resulMap属性来编写对应的映射关系。ORM(Object-Relational Mapping,对象-关系映射)是一种将数据库和面向对象编程语言中的对象之间进行转换的技术。它将对象和关系数据库的概念进行映射,最后我们就可以通过方法调用进行数据库操作!!最终: **让我们可以使用面向对象思维进行数据库操作!!!****ORM 框架通常有半自动和全自动两种方式。**原创 2023-10-27 16:24:30 · 261 阅读 · 0 评论 -
Mybatis 简介(一)
这里使用的是3.5.11版本MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。- JDBC - SQL 夹杂在Java代码中耦合度高,导致硬编码内伤 - 维护不易且实际开发需求中 SQL 有变化,原创 2023-10-24 20:24:09 · 208 阅读 · 0 评论