mysql通用mapper_通用Mapper(Mybatis)

 2023-11-12 阅读 12 评论 0

摘要:1.Mapper的簡單介紹2.Mapper的作用通用Mapper可以通過Mybatis的攔截器原理,動態的幫我們實現單表的增刪改查功能,大大降低了我們的開發成本,減少了我們的工作量。3.Mapper的使用該Mapper是一個接口,里面提供給了一系列的方法,導入依賴

1.Mapper的簡單介紹

6ba5ee58786ff08fd37ba73253f09c40.png

2.Mapper的作用

通用Mapper可以通過Mybatis的攔截器原理,動態的幫我們實現單表的增刪改查功能,大大降低了我們的開發成本,減少了我們的工作量。

3.Mapper的使用

該Mapper是一個接口,里面提供給了一系列的方法,導入依賴,配置插件,利用Mybatis使用通用的Mapper接口,首先繼承該接口,泛型為類中的類型。這樣就沒有配置文件了,所以要在Mybatis核心配置文件中,配置掃描的包。編寫測試類。

3.1導入依賴(首先搭建好Mybatis的環境)

com.github.abel533

mapper

2.3.4

3.2配置插件(Mapper在Mybatis的攔截器)

3.3編寫接口UserMapper繼承Mapper(略)

3.4配置實體類與表之間的關系

b9ba384d1aaaf73e34dc71dea62362ba.png

packagecn.mybatis.pojo;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.Column;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Table;

@Table(name="tb_user")public class User implementsSerializable{/****/

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)privateLong id;//用戶名

privateString userName;//密碼

privateString password;//姓名

privateString name;//年齡

privateInteger age;//性別,1男性,2女性

privateInteger sex;//出生日期

privateDate birthday;//創建時間

privateDate created;//更新時間

privateDate updated;publicLong getId() {returnid;

}public voidsetId(Long id) {this.id =id;

}publicString getuserName() {returnuserName;

}public voidsetuserName(String userName) {this.userName =userName;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicInteger getAge() {returnage;

}public voidsetAge(Integer age) {this.age =age;

}publicInteger getSex() {returnsex;

}public voidsetSex(Integer sex) {this.sex =sex;

}publicDate getBirthday() {returnbirthday;

}public voidsetBirthday(Date birthday) {this.birthday =birthday;

}publicDate getCreated() {returncreated;

}public voidsetCreated(Date created) {this.created =created;

}publicDate getUpdated() {returnupdated;

}public voidsetUpdated(Date updated) {this.updated =updated;

}

@OverridepublicString toString() {return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", name=" +name+ ", age=" + age + ", sex=" + sex + ", birthday=" + birthday + ", created=" +created+ ", updated=" + updated + "]";

}

}

3.5.編寫測試類

packagecn.mapper.test;importjava.io.InputStream;importjava.util.List;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Before;importorg.junit.Test;importcn.mybatis.dao.UserMapper;importcn.mybatis.pojo.User;importcom.github.abel533.entity.Example;public classTestMappers {

UserMapper usermapper;

String resource= "mybatis-config.xml";

InputStream inputStream;

SqlSessionFactory sqlsessionFactory;

SqlSession sqlSession;

@Beforepublic void setUp() throwsException {

inputStream=Resources.getResourceAsStream(resource);

sqlsessionFactory= newSqlSessionFactoryBuilder().build(inputStream);

sqlSession=sqlsessionFactory.openSession();//動態代理實現

usermapper = this.sqlSession.getMapper(UserMapper.class);

}/*** 查詢1個用戶*/@Testpublic voidtest() {

User user= newUser();

user.setuserName("zhangsan");

User one= this.usermapper.selectOne(user);

System.out.println(one);

}/*** 查找用戶,接收一個User對象。*/@Testpublic voidtestselect(){

User user= newUser();

user.setSex(2);

List list = this.usermapper.select(null);for(User user2 : list) {

System.out.println(user2);

}

System.out.println("-------------");

List list2 = this.usermapper.select(user);for(User user2 : list2) {

System.out.println(user2);

}

}/*** 查詢總條數*/@Testpublic voidtestSlecteCount(){int count = this.usermapper.selectCount(null);

System.out.println(count);

System.out.println("--------");

User user= newUser();

user.setSex(1);int count2 = this.usermapper.selectCount(user);

System.out.println(count2);

}/*** 根據主鍵查詢*/@Testpublic voidtestSelectByPrimaryKey(){

User user= this.usermapper.selectByPrimaryKey(1L);

System.out.println(user);

}

@Testpublic voidtestInsert(){

User user= newUser();

user.setAge(22);

user.setPassword("11111");//this.usermapper.insert(user);

this.usermapper.insertSelective(user);//提交

this.sqlSession.commit();

}

@Testpublic voidtestDelete(){

User user= newUser();

user.setAge(22);int i = this.usermapper.delete(user);this.sqlSession.commit();

System.out.println(i);

}

@Testpublic voidtestUpdate(){

User user= newUser();

user.setId(18L);

user.setuserName("kk0");;int i = this.usermapper.updateByPrimaryKeySelective(user);this.sqlSession.commit();

System.out.println(i);

}

@Testpublic voidtestSelectByExample(){

Example example= new Example(User.class);

example.createCriteria().andEqualTo("sex", 1).andBetween("age", 10, 22);

example.or(example.createCriteria().andLike("name", "李"));

example.setOrderByClause("age desc");

List list = this.usermapper.selectByExample(example);for(User user : list) {

System.out.println(user);

}

}

}

總結:通用mapper 的要求:

1.默認表名為類名(@Table())

2.默認字段名就是類屬性名(在駝峰規則內),如果不一致,使用@Column注解

3.主鍵字段必須聲明@Id

4.實現ID的回寫@GeneratedValue(strategy=GenerationType.IDENTITY)

5.忽略該字段@Transtient(映射字段) ?表中沒有的字段 ,在類中有的字段

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/172295.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息