配置MAPPER的方式有四种,不过现在只用了两种。
一种是通过XML方式配置,另一种是通过接口+注解
先看第一种:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lonton.mybatis.filemapper">
<select id="findPage" parameterType="map" resultType="fileinfo">
select * from file_info limit #{begin},#{size}
</select>
<select id="findPageOrder" parameterType="map" resultType="fileinfo">
select * from file_info order by #{column} #{order} limit #{begin},#{size}
</select>
<select id="findAll" resultType="fileinfo">
select * from file_info
</select>
<select id="search" parameterType="String" resultType="fileinfo">
select * from file_info where name like #{name}
</select>
<select id="selectCount" resultType="int">
select count(*) from file_info
</select>
</mapper>
通过接口+注解:
package com.lonton.testMyBatis.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.lonton.testMyBatis.pojo.Fileinfo;
public interface FileinfoDao {
@Select("select * from file_info")
public List<Fileinfo> findAll();
@Select("select * from file_info limit #{begin},#{size}")
public List<Fileinfo> findPage(@Param("map")int page,int pageSize);//注解参数的意思是传给MyBatis API的参数
public List<Fileinfo> findPageOrder(int page,int pageSize,String column,String order);
@Select("select count(*) from file_info")
public int getCount();
@Select("select * from file_info where name like #{name}")
public List<Fileinfo> search(@Param("name") String name);
}
最后的实现类是这样的:
package com.lonton.testMyBatis.daoImpl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.lonton.testMyBatis.dao.BaseDao;
import com.lonton.testMyBatis.dao.FileinfoDao;
import com.lonton.testMyBatis.pojo.Fileinfo;
public class FileinfoDaoImpl extends BaseDao implements FileinfoDao{
@Override
public List<Fileinfo> findAll() {
return sessionFactory.openSession().selectList("com.lonton.mybatis.filemapper.findAll");
}
@Override
public List<Fileinfo> findPage(int page, int pageSize) {
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("begin", (page-1)*pageSize);
map.put("size", pageSize);
//XML
//return sessionFactory.openSession().selectList("com.lonton.mybatis.filemapper.findPage", map);
//interface
return sessionFactory.openSession().selectList("com.lonton.testMyBatis.dao.FileinfoDao.findPage",map);
}
@Override
public int getCount() {
/*
* XML MAPPER
* 路径是 namespace+id
*/
//return sessionFactory.openSession().selectOne("com.lonton.mybatis.filemapper.selectCount");
/*
* interface MAPPER
* 路径应该是:包名+类名+方法
*/
return sessionFactory.openSession().selectOne("com.lonton.testMyBatis.dao.FileinfoDao.getCount");
}
@Override
public List<Fileinfo> search(String name) {
return sessionFactory.openSession().selectList("com.lonton.mybatis.filemapper.search", "%"+name+"%");
}
@Override
public List<Fileinfo> findPageOrder(int page, int pageSize, String column,
String order) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("begin", (page-1)*pageSize);
map.put("size", pageSize);
map.put("column", column);
map.put("order", order);
return sessionFactory.openSession().selectList("com.lonton.mybatis.filemapper.findPageOrder", map);
}
}
分享到:
相关推荐
Mybatis执行SQL语句的方式
if 、where、set、trim、choose 、foreach等在mybatis中的具体用法,有具体实例可供参考,玩转mybatis
mybatis+spring 框架中配置日志中显示sql语句
在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...
适用于springboot(整合过mybatis的)和常规SSM项目,可以获取完整的mybatis执行的sql语句,用于直观的看到执行sql是否异常
拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL语句即可在数据库工具中执行。 使用方法: 找到你springboot项目中的配置文件,增加如下配置即可 application.yml 配置如下: sql: slow...
把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...
该工具可以将mybatis输出的sql日志提取出来,并将其格式化为可以直接执行的sql语句,节约开发人员时间
NULL 博文链接:https://benworld.iteye.com/blog/1841031
mybatis动态sql
JDBC读取数据库元数据,生成JAVA实体类,SQL语句,Mybatis动态sql语句,详细内容见博客地址https://blog.csdn.net/zi971553/article/details/82862039
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在MyBatis中,动态SQL使用的主要方式是通过使用XML或注解来编写SQL语句。下面我将简单介绍一下MyBatis动态SQL的使用方法和常用的功能。 1. if标签:if标签是动态SQL中最常用的功能之一。它允许我们根据条件判断是否...
mybatis动态SQL语句--基于xml配置。
本篇文章主要介绍了在mybatis执行SQL语句之前进行拦击处理实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了Mybatis中 SQL语句复用,需要的朋友可以参考下
mybatis动态sql:SQL 映射 XML 文件是所有 sql 语句放置的地方。需要定义一个 workspace,一般定义为对应的接口类的路径。写好 SQL 语句映射文件后需要在 MyBAtis 配置文件 mappers 标签中引用。
关于mybatis自动生成语句,还有一些jar,需要的联系我
附件是MyBatis 动态 SQL 示例,MyBatis 是一个持久层框架,它允许用户在 XML 文件中编写动态 SQL 语句。MyBatis 的动态 SQL 功能非常强大,它允许开发者根据运行时的条件动态地生成 SQL 语句。这使得 MyBatis 能够...
附件是MyBatis 动态SQL示例,MyBatis 是一个持久层框架,它允许用户在 XML 文件中编写动态 SQL 语句。MyBatis 的动态 SQL 功能非常强大,它允许开发者根据运行时的条件动态地生成 SQL 语句。这使得 MyBatis 能够灵活...