日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis构建sql语法

發(fā)布時(shí)間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis构建sql语法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

構(gòu)建sql:

  • 之前通過注解開發(fā)時(shí),相關(guān) SQL 語(yǔ)句都是自己直接拼寫的。一些關(guān)鍵字寫起來比較麻煩、而且容易出錯(cuò)。
  • MyBatis 給我們提供了 org.apache.ibatis.jdbc.SQL 功能類,專門用于構(gòu)建 SQL 語(yǔ)句

常用方法:

查詢功能的實(shí)現(xiàn):
  • @SelectProvider:生成查詢用的 SQL語(yǔ)句注解
    • type 屬性:生成 SQL 語(yǔ)句功能類對(duì)象
    • method 屬性:指定調(diào)用方法
新增功能的實(shí)現(xiàn):
  • @InsertProvider:生成新增用的 SQL 語(yǔ)句注解。
    • type 屬性:生成 SQL 語(yǔ)句功能類對(duì)象
    • method 屬性:指定調(diào)用方法
修改功能的實(shí)現(xiàn):
  • @UpdateProvider:生成修改用的 SQL 語(yǔ)句注解。
    • type 屬性:生成 SQL 語(yǔ)句功能類對(duì)象
    • method 屬性:指定調(diào)用方法
刪除功能的實(shí)現(xiàn):
  • @DeleteProvider:生成刪除用的 SQL 語(yǔ)句注解
    • type 屬性:生成 SQL 語(yǔ)句功能類對(duì)象
    • method 屬性:指定調(diào)用方法
演示:

SQL類:

public class ReturnSql {//定義方法,返回查詢的sql語(yǔ)句public String getSelectAll() {return new SQL() {{SELECT("*");FROM("student");}}.toString();}//定義方法,返回新增的sql語(yǔ)句public String getInsert(Student stu) {return new SQL() {{INSERT_INTO("student");INTO_VALUES("#{id},#{name},#{age}");}}.toString();}//定義方法,返回修改的sql語(yǔ)句public String getUpdate(Student stu) {return new SQL() {{UPDATE("student");SET("name=#{name}","age=#{age}");WHERE("id=#{id}");}}.toString();}//定義方法,返回刪除的sql語(yǔ)句public String getDelete(Integer id) {return new SQL() {{DELETE_FROM("student");WHERE("id=#{id}");}}.toString();} }

接口:

public interface PersonMapper {//查詢?nèi)?/span>//@Select("SELECT * FROM student")@SelectProvider(type = ReturnSql.class , method = "getSelectAll")public abstract List<Student> selectAll();//新增功能//@Insert("INSERT INTO student VALUES (#{id},#{name},#{age})")@InsertProvider(type = ReturnSql.class , method = "getInsert")public abstract Integer insert(Student stu);//修改功能//@Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}")@UpdateProvider(type = ReturnSql.class , method = "getUpdate")public abstract Integer update(Student stu);//刪除功能//@Delete("DELETE FROM student WHERE id=#{id}")@DeleteProvider(type = ReturnSql.class , method = "getDelete")public abstract Integer delete(Integer id); }

測(cè)試:

@Testpublic void selectAll() throws Exception {//1.加載核心配置文件InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");//2.獲取SqlSession工廠對(duì)象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);//3.通過工廠對(duì)象獲取SqlSession對(duì)象SqlSession sqlSession = sqlSessionFactory.openSession(true);//4.獲取One接口的實(shí)現(xiàn)類對(duì)象PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);//5.調(diào)用實(shí)現(xiàn)類的方法,接收結(jié)果List<Student> list = mapper.selectAll();//6.處理結(jié)果for (Student c : list) {System.out.println(c);}//7.釋放資源sqlSession.close();is.close();}

總結(jié)

以上是生活随笔為你收集整理的Mybatis构建sql语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。