
MyBatis
文章平均质量分 84
MyBatis 系列
春风野马wuhu
这个作者很懒,什么都没留下…
展开
-
MyBatis 逆向工程生成代码
下载项目 已上传至百度网盘 网盘链接:https://pan.baidu.com/s/1m2YcxD6hGp6rQrGNhAEjYw 提取码:iu9y 生成代码 由于使用数据表时,我们需要给每一个表都创建对应的实体类,每个实体类都有对应的 Mapper 接口和 Mapper.xml 文件,这些其实都是一些重复的工作,我们可以通过第三方工具来完成。 MyBatis 逆向工程非常多,我们 IDEA 里边,也有对应的插件可以使用。 这里以 mybatis-generator-core-1.3.1 工具为例,拿原创 2021-01-18 21:29:49 · 216 阅读 · 0 评论 -
再谈 MyBatis 复杂查询
一对一查询 在实际开发中,经常会遇到一对一查询,一对多查询等。这里我们先来看一对一查询。例如:每本书都有一个作者,作者都有自己的属性,根据这个,我来定义两个实体类: public class Book { private Integer id; private String name; private Author author; // 省略 getter/setter } public class Author { private Inte原创 2021-01-18 21:24:08 · 286 阅读 · 0 评论 -
MyBatis 中使用 Mapper 简化代码
前面文章所写的增删改查是存在问题的。每执行一次 SQL,都要开启一次会话,并且需要提交并关闭,主要问题就是冗余代码过多,模板化代码过多。 例如,我想开发一个 UserDao,可能是下面这样: 简化前的 UserDao public class UserDao { private SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getInstance(); public User getUserById(In原创 2021-01-18 21:23:17 · 257 阅读 · 0 评论 -
MyBatis 的映射文件详解
mapper 映射文件,是 MyBatis 中最重要的部分,涉及到的细节也是非常非常多。 parameterType 这个表示输入的参数类型。 $ 和 # 这是一个非常非常高频的面试题,虽然很简单。在面试中,如果涉及到 MyBatis,一般情况下,都是这个问题。在 MyBatis 中,我们在 mapper 引用变量时,默认使用的是 #,像下面这样: <select id="getUserById" resultType="com.antonio.hello.mybatis.entity.User"&g原创 2021-01-18 21:22:05 · 254 阅读 · 0 评论 -
MyBatis 全局配置
全局配置中的属性非常多,主要有如下几方面: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源) mappers(映射器) properties properties 可以用来引入一个外部原创 2021-01-18 21:21:23 · 543 阅读 · 0 评论 -
Java 持久层框架 MyBatis
JDBC 存在的问题 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。 Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。 使用 preparedStatement 向占位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。 对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,如果能将数据库记录原创 2021-01-18 21:20:55 · 331 阅读 · 0 评论