mybatis整合Mapper通用工具,实现单表基本操作
来源:互联网 发布:php新闻发布系统教程 编辑:程序博客网 时间:2024/05/11 19:42
木秀于林,风必摧之
文档资料:https://github.com/abel533/Mapper
需要导入的maven依赖文件如下:
<dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>3.2.2</version></dependency><dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0</version></dependency>
* 第二个是用于model注解的使用。
mybatis.xml配置文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 配置MyBatis SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:myBatis-config.xml"></property><property name="mapperLocations"value="classpath*:com/citic/gatz/mapping/*Mapper.xml"></property></bean><!-- 采用自动扫描包的形式来实例化dao层 --><bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.citic.gatz.dao.**" /><property name="properties"><value>mappers=tk.mybatis.mapper.common.Mapper</value></property></bean></beans>
mybatis-config.xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="cacheEnabled" value="false" /><setting name="useGeneratedKeys" value="true" /><setting name="defaultExecutorType" value="REUSE" /></settings><!-- 别名配置 --><typeAliases><package name="com.citic.gatz.model" /></typeAliases><plugins><plugin interceptor="com.github.pagehelper.PageHelper"><property name="dialect" value="mysql" /></plugin></plugins></configuration>
IBaseDao:
package com.citic.gatz.base;import tk.mybatis.mapper.common.BaseMapper;/** * * @author fengchao * Mapper中通用的方法: * 继承了base组合接口中的4个组合接口,包含完整的CRUD方法 * * @param <T> */public interface IBaseMapper<T> extends BaseMapper<T> {}
以UserTest为例来说明:
sql:
CREATE TABLE `user_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=78 DEFAULT CHARSET=utf8;
model:
package com.citic.gatz.model;import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Id;import javax.persistence.Table;/** * model层测试类 * @author fengchao * */@Table(name="user_test")public class UserTest implements Serializable {private static final long serialVersionUID = 6626527450093471276L;@Id @Column(name = "id") private Integer id;private String username;private Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}
*若有的属性不需要和数据库挂钩,在使用@Transient进行注解标示
dao:
package com.citic.gatz.dao;import java.util.List;import com.citic.gatz.base.IBaseMapper;import com.citic.gatz.model.UserTest;public interface UserTestMapper extends IBaseMapper<UserTest> {/** * 根据username查找对应的信息 * @param username * @return */List<UserTest> selectByUsername(String username);}
*其中里面有一个特点的业务的方法selectByUsername,只时候需要自己在Mapper文件里面完善。
mapper:
<?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.citic.gatz.dao.UserTestMapper"><resultMap id="BaseResultMap" type="userTest"><id column="id" property="id" jdbcType="INTEGER" /><result column="username" property="username" jdbcType="VARCHAR" /><result column="age" property="age" jdbcType="INTEGER" /></resultMap> <sql id="Base_Column_List" > id,username,age </sql><!-- 根据用户名查找 --><select id="selectByUsername" parameterType="java.lang.String" resultMap="BaseResultMap">select<include refid="Base_Column_List" />fromuser_test utwhere ut.username = #{username}</select></mapper>
测试类如下:
package com.dao.test;import java.util.List;import org.junit.Ignore;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.citic.gatz.dao.UserTestMapper;import com.citic.gatz.model.UserTest;import com.github.pagehelper.PageHelper;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations ={"classpath:beans.xml"})public class UserTestDaoTest {@Autowiredprivate UserTestMapper userTestMapper;@Testpublic void insert() {for(int i = 0; i < 10; i++) {UserTest obj = new UserTest();obj.setUsername("feng" + i);obj.setAge(24 + i);int insert = userTestMapper.insert(obj);System.out.println(insert);}}@Testpublic void delete() {int key = userTestMapper.deleteByPrimaryKey(8);System.out.println(key);}@Testpublic void update() {UserTest userTest = userTestMapper.selectByPrimaryKey(7);userTest.setUsername("saaa");//根据主键更新实体全部字段,null值会被更新int key = userTestMapper.updateByPrimaryKey(userTest);System.out.println(key);}@Testpublic void find() {PageHelper.startPage(2, 3); //第二页 三条数据List<UserTest> list = userTestMapper.selectAll();for (UserTest userTest : list) {System.out.println(userTest.getUsername());}}@Testpublic void findByUsername() {List<UserTest> list = userTestMapper.selectByUsername("feng9");for (UserTest userTest : list) {System.out.println(userTest.getUsername());}}}
除了最后一个方法是自己写的,其余的都是通过Mapper插件完成。 完毕!详细API还是查找文档······
0 0
- mybatis整合Mapper通用工具,实现单表基本操作
- springboot中通用mapper结合mybatis generator的使用 通用mapper是为了方便开发人员对单表进行crud操作而产生的一套通用方法。 通用mapper只支持单表操作,可以
- MyBatis 通用 Mapper 实现原理
- 集成通用Mapper,单表操作从此轻松
- 整合springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现权限管理文件上传下载多数据源切换操作日志记录等功能
- 二十一、SpringBoot整合Mybatis、通用mapper和pageHelp
- Mybatis通用Mapper
- Mybatis通用Mapper
- Mybatis通用Mapper
- Mybatis通用Mapper使用
- Mybatis通用Mapper
- mybatis 通用Mapper
- Mybatis通用Mapper
- MyBatis通用Mapper,Service
- Mybatis通用Mapper
- Mybatis通用Mapper
- Mybatis通用Mapper
- Mybatis通用Mapper
- Oracle实例和Oracle数据库(Oracle体系结构)
- 大话Philm的从无到有(二)满月篇
- [Cocos2d-x 升级IOS9错误解决方案]Unexpected CFBundleExecutable Key.The bundle atXXXX
- 我必须改变2
- haskell读写文件相关(含二进制)
- mybatis整合Mapper通用工具,实现单表基本操作
- [思路+组合数] hdu 3398 String
- Android实战简易教程<四十八>(App引导页面效果实现)
- 解决 maven 工程导入 eclipse 后的问题
- MFC tab控件不同页面间的变量传递和函数调用
- C程序设计实验1
- ios蓝牙开发(三)app作为外设被连接的实现
- HDU 3364 Lanterns(高斯消元)
- unix的计划任务时间设置