mybatis CRUD
除了XML配置,還有註解方式
首先,
/**
* @author gacl
* 定義sql對映的介面,使用註解指明方法要執行的SQL
*/
public interface UserMapperI {
//使用@Insert註解指明add方法要執行的SQL
@Insert("insert into users(name, age) values(#{name}, #{age})")
public int add(User user);
//使用@Delete註解指明deleteById方法要執行的SQL
@Delete("delete from users where id=#{id}")
public int deleteById(int id);
//使用@Update註解指明update方法要執行的SQL
@Update("update users set name=#{name},age=#{age} where id=#{id}")
public int update(User user);
//使用@Select註解指明getById方法要執行的SQL
@Select("select * from users where id=#{id}")
public User getById(int id);
//使用@Select註解指明getAll方法要執行的SQL
@Select("select * from users")
public List<User> getAll();
}
需要說明的是,我們不需要針對UserMapperI介面去編寫具體的實現類程式碼,這個具體的實現類由MyBatis幫我們動態構建出來,我們只需要直接拿來使用即可。
同時,在conf.xml檔案中註冊這個對映介面:
<mappers>
<!-- 註冊userMapper.xml檔案,
userMapper.xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml-->
<mapper resource="me/gacl/mapping/userMapper.xml"/>
<!-- 註冊UserMapper對映介面-->
<mapper class="me.gacl.mapping.UserMapperI"/>
</mappers>
使用時:
SqlSession sqlSession = MyBatisUtil.getSqlSession(true);
//得到UserMapperI介面的實現類物件,UserMapperI介面的實現類物件由sqlSession.getMapper(UserMapperI.class)動態構建出來
UserMapperI mapper = sqlSession.getMapper(UserMapperI.class);
User user = new User();
user.setName("使用者xdp");
user.setAge(20);
int add = mapper.add(user);
//使用SqlSession執行完SQL之後需要關閉SqlSession
sqlSession.close();
System.out.println(add);
public class MyBatisUtil {
/**
* 獲取SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getSqlSessionFactory() {
String resource = "conf.xml";
InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
return factory;
}
/**
* 獲取SqlSession
* @return SqlSession
*/
public static SqlSession getSqlSession() {
return getSqlSessionFactory().openSession();
}
/**
* 獲取SqlSession
* @param isAutoCommit
* true 表示建立的SqlSession物件在執行完SQL之後會自動提交事務
* false 表示建立的SqlSession物件在執行完SQL之後不會自動提交事務,這時就需要我們手動呼叫sqlSession.commit()提交事務
* @return SqlSession
*/
public static SqlSession getSqlSession(boolean isAutoCommit) {
return getSqlSessionFactory().openSession(isAutoCommit);
}
}
相關文章
- Mybatis-02 CRUDMyBatis
- MyBatis-03(CRUD)MyBatis
- 2. MyBatis-CRUDMyBatis
- spring 整合 mybatis 及mybatis 的 crud 操作SpringMyBatis
- MyBatis 的簡單 CRUD 操作MyBatis
- Mybatis:CRUD操作及配置解析MyBatis
- 3. 使用Mybatis完成CRUDMyBatis
- JPA和mybatis的CRUD比較MyBatis
- mybatis 的crud及批量cud操作MyBatis
- 【mybatis-plus】CRUD必備良藥,mybatis的好搭檔MyBatis
- MyBatis-Plus:簡化 CRUD 操作的藝術MyBatis
- 第一個mybatis程式,實現增刪改查CRUDMyBatis
- Spring Boot整合Mybatis完成級聯一對多CRUD操作Spring BootMyBatis
- 【mybatis annotation】資料層框架應用--Mybatis(二) 基於註解實現資料的CRUDMyBatis框架
- IDEA SpringBoot-Mybatis-plus 實現增刪改查(CRUD)IdeaSpring BootMyBatis
- 【mybatis xml】資料層框架應用--Mybatis 基於XML對映檔案實現資料的CRUDMyBatisXML框架
- SpringBoot第十一篇:SpringBoot+MyBatis+Thymelaf實現CRUDSpring BootMyBatis
- 07-SpringBoot+MyBatis+Spring 技術整合實現商品模組的CRUD操作Spring BootMyBatis
- 你可以 CRUD,但你不是 CRUD 程式設計師!程式設計師
- Elasticsearch CRUD基本操作Elasticsearch
- mysql CRUD筆記MySql筆記
- go操作mongo CRUDGo
- 方便好用CRUD封裝封裝
- MongoDB 新手入門 - CRUDMongoDB
- Go + MySQL的CRUD案例教程GoMySql
- ZooKeeper客戶端CRUD命令客戶端
- 使用PreparedStatement實現CRUD操作
- influxdb 筆記: API & CRUDUX筆記API
- Laravel Lego :Save you from CRUDLaravelGo
- Java Hibernate 之 CRUD 操作Java
- 6.CRUD[摘自網路]
- MongoDB 4.X CRUD基本操作MongoDB
- ElasticSearch核心概念和文件的CRUDElasticsearch
- Elasticsearch——叢集管理及文件CRUDElasticsearch
- Hibernate中常用CRUD程式碼
- JPA工程的建立和CRUD操作
- Vue+Element UI實現CRUDVueUI
- MyBatis(二)MyBatis入門程式(MyBatis demo)MyBatis