MyBatis

mybatis整合不输出日志问题

这一生的挚爱 提交于 2020-04-07 08:36:03
最近整合ssm框架时,整合log4j时,控制台不输出sql语句。查看log4j.properties的配置文件,确定没问题后,各处查资料,查找解决办法。最终在一篇博客里找到解决办法,博客地址(目前忘记了)找到后再一并贴出。 解决办法:web.xml中添加配置: <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/properties/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> 注意:此段代码应放在最前面,在开启监听之前。 如下图所示: 重启项目后,可以看到控制台打印的sql,如下图: 就此完美解决控制台输出问题。至于原因,有空深究。 附带:log4j.properties配置文件 log4j

mybatis 详解(六)------通过mapper接口加载映射文件

狂风中的少年 提交于 2020-04-07 07:49:45
通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:      改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.ys.po.User; public interface UserMapper { //根据 id 查询 user

Spring3 Mybatis 异常处理

浪子不回头ぞ 提交于 2020-04-07 05:59:15
Spring3 Mybatis 异常处理 通常在 Dao 层将所有异常都转嫁到 Spring 的 RuntimeException 体系中来 -DataAccessException Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是 与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦 合在一起。DataAccessException是RuntimeException,是一个无须检测的异常,不要求代码去处理这类异常,遵循了 Spring的一般理念:异常检测会使代码到处是不相关的catch或throws语句,使代码杂乱无章;并且 NestedRuntimeException的子类,是可以通过NestedRuntimeException的getCause()方法获得导致该异 常的另一个异常。Spring的异常分类有 Spring的DAO异常层次 异常 何时抛出 CleanupFailureDataAccessException 一项操作成功地执行,但在释放数据库资源时发生异常(例如,关闭一个Connection) DataAccessResourceFailureException 数据访问资源彻底失败

mybatis 详解(六)------通过mapper接口加载映射文件

风格不统一 提交于 2020-04-07 05:51:33
通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:      改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.ys.po.User; public interface UserMapper { //根据 id 查询 user

MyBatis Generator介绍目录

放肆的年华 提交于 2020-04-06 19:54:52
1. MyBatis Generator介绍 2. MyBatis Generator新增功能 3. MyBatis Generator 快速入门指南 4. 运行 MyBatis Generator 5. 运行 MyBatis Generator 后的任务 6. Migrating from Ibator 7. Migrating from Abator 8. MyBatis Generator XML 配置参考 9. 使用生成的对象 10. 使用注意事项 11. 参考资料 来源: oschina 链接: https://my.oschina.net/u/1024408/blog/490699

MyBatis动态SQL,含分页功能

依然范特西╮ 提交于 2020-04-06 19:21:17
1. 写一个SqlProvider类: public class DynamicSql { public String sql(String sql){ return sql; } } 2. 写一个Mapper类: @Mapper public interface DynamicMapper { @SelectProvider(type=DynamicSql.class, method = "sql") List< HashMap<String,Object>> get(String sql); } 3. 使用实例: List< HashMap<String,Object>> clients = dynamicMapper.get(" SELECT * FROM client"); 4. 带分页功能: PageHelper.startPage(1, 10); List< HashMap<String,Object>> clients = dynamicMapper.get(" SELECT * FROM client"); return AjaxResult.success( new PageInfo(clients)); //此行按需求灵活处理 来源: oschina 链接: https://my.oschina.net/u/4006447/blog/3215512

使用MyBatis编写Dao的两种语法

若如初见. 提交于 2020-04-06 18:51:14
原文链接: http://www.yiidian.com/mybatis/mybatis-dao.html 在MyBatis中,我们有两种Dao的写法,一种叫传统Dao写法,一种叫Mapper代理接口。下面看看如何实现。 1 传统Dao写法 1.1 编写CustomerDao接口 package com.yiidian.dao; import com.yiidian.domain.Customer; import java.util.List; /** * Dao接口 *一点教程网 - www.yiidian.com */ public interface CustomerDao { /** * 查询所有用户 */ public List<Customer> findAll(); /** * 添加 */ public void save(Customer customer); /** * 修改 */ public void update(Customer customer); /** * 查询一个 */ public Customer findById(Integer id); /** * 条件查询 */ public List<Customer> findByName(String name); /** * 删除 */ public void delete(Integer id)

mybatis 详解(六)------通过mapper接口加载映射文件

吃可爱长大的小学妹 提交于 2020-04-06 18:42:16
目录 1、定义 userMapper 接口 2、在全局配置文件 mybatis-configuration.xml 文件中加载 UserMapper 接口(单个加载映射文件) 3、编写UserMapper.xml 文件 4、测试 5、批量加载映射文件 6、注意    通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:   改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations

mybatis在spring boot的加载过程

我的梦境 提交于 2020-04-06 15:21:56
mybatis在spring boot的加载过程 springboot 默认会加载mybatis-spring-boot-autoconfigure-1.3.0.jar下的spring.factories文件 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration MybatisAutoConfiguration加载mybatis相关类 // 初始化SqlSessionFactory @Bean @ConditionalOnMissingBean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setDataSource(dataSource); /// return factory.getObject(); } // 初始化SqlSessionTemplate @Bean