当前位置:首页 > 生活百科

java脚本注释格式(java的三种注释类型)

栏目:生活百科日期:2025-06-05浏览:0

Mybatis动态SQL

Mybatis,在带注解的映射器接口类中使用动态SQL,可使用script元素,即:&<script&>&</script&>。

案例代码

Model

package com.what21.mybatis.model;import lombok.Data;@Datapublic class Employee {    // ID    private Integer id;    // 名称    private String name;    // 邮箱    private String email;    // 性别    private String gender;    // 年龄    private Integer age;}

Mapper&<映射器接口&>

package com.what21.mybatis.demo03.mapper;import com.what21.mybatis.model.Employee;import org.apache.ibatis.annotations.*;import java.util.List;public interface EmployeeMapper {    @Select(value = "select * from `employee` where id = #{id}")    @ResultType(Employee.class)    public Employee findEmployeeById(Integer id);    @Update(value = "&<script&>" +            "update `employee` " +            "   &<set&>" +            "       &<if test='name != null'&>" +            "           `name`=#{name}," +            "       &</if&>" +            "       &<if test='email != null'&>" +            "            `email`=#{email}," +            "       &</if&>" +            "       &<if test='gender != null'&>" +            "             `gender`=#{gender}," +            "       &</if&>" +            "       &<if test='age != null'&>" +            "            `age`=#{age}  " +            "       &</if&>" +            "   &</set&>" +            "where id = #{id}" +            "&</script&>")    public int updateEmployee(Employee employee);    @Delete(value = "&<script&>" +            "   delete from `employee` where id in" +            "       &<foreach collection='idList' item='id' open='(' separator=',' close=')'&>" +            "           #{id}" +            "       &</foreach&>" +            "&</script&>")    public int deleteEmployeeByIds(@Param("idList") List&<Integer&> idList);}

配置文件:

&<?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="mapUnderscoreToCamelCase" value="true"/&>    &</settings&>    &<typeAliases&>        &<typeAlias type="com.what21.mybatis.model.Employee" alias="employee"/&>    &</typeAliases&>    &<plugins&>        &<plugin interceptor="com.github.pagehelper.PageInterceptor"&>            &<!--默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果--&>            &<!--如果某些查询数据量非常大,不应该允许查出所有数据--&>            &<property name="pageSizeZero" value="true"/&>        &</plugin&>    &</plugins&>    &<environments default="development"&>        &<environment id="development"&>            &<transactionManager type="jdbc"/&>            &<dataSource type="POOLED"&>                &<property name="driver" value="com.mysql.jdbc.Driver"/&>                &<property name="url" value="jdbc:mysql://localhost:3306/demo?characterEncoding=UTF8&&useSSL=false&&serverTimezone=UTC&&rewriteBatchedStatements=true"/&>                &<property name="username" value="root"/&>                &<property name="password" value="root"/&>            &</dataSource&>        &</environment&>    &</environments&>    &<mappers&>        &<mapper class="com.what21.mybatis.demo03.mapper.EmployeeMapper" /&>    &</mappers&>&</configuration&>

测试类&<main方法测试&>:

package com.what21.mybatis.demo03;import com.what21.mybatis.demo03.mapper.EmployeeMapper;import com.what21.mybatis.model.Employee;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.Reader;import java.util.Arrays;import java.util.List;public class MybatisDemoMain {    /**     * 创建sessionFactory     *     * @param mybatisConfig     * @return     */    private static SqlSessionFactory getSessionFactory(String mybatisConfig) {        SqlSessionFactory sessionFactory = null;        try {            Reader reader = Resources.getResourceAsReader(mybatisConfig);            sessionFactory = new SqlSessionFactoryBuilder().build(reader);        } catch (IOException e) {            e.printStackTrace();        }        return sessionFactory;    }    public static void main(String&[] args) {        String resource = "com/what21/mybatis/demo03/mybatisConfig.xml";        // 从SessionFactory中获取SqlSession        SqlSession sqlSession = getSessionFactory(resource).openSession();        // Mapper        EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);        // select操作        Employee findEmployee = employeeMapper.findEmployeeById(2);        System.out.println(findEmployee);        findEmployee.setName("学习测试demo");        findEmployee.setEmail("leran@demo.com");        findEmployee.setAge(34);        findEmployee.setGender("1");        int updateOperate = employeeMapper.updateEmployee(findEmployee);        System.out.println("update操作结果:" + updateOperate);        List&<Integer&> idsList = Arrays.asList(findEmployee.getId());        // delete操作        int deleteOperate = employeeMapper.deleteEmployeeByIds(idsList);        // SQL正确,没有删除任何一条数据,返回结果为:0        System.out.println("delete操作结果:" + deleteOperate);        // 提交        //sqlSession.commit();    }}

“java脚本注释格式(java的三种注释类型)” 的相关文章

hosts目录在哪里(hosts文件格式及作用)

Hosts文件是一个没有扩展名的系统文件,但可以用记事本等软件打开它。默认情况下当我们访问某个网址时先使用DNS域名解析服务器进行解析访问,但如果有特殊需要时可...

ps怎么让字体有弧度(教你6个PS实用小技巧)

这6个PS实用小技巧,十分好用,省时省力,很多人都知道,同样也有很多人不知道,特别是新手,现在手把手教你。对PS不太熟悉的你,有必要get一下。或许你全都知道,...

办公用无线键鼠推荐(分享雷柏M650键鼠使用体验)

随着笔记本电脑、二合一平板等便携终端的普及,移动办公时代已悄然来临。然而笔电等设备虽然功能性上无可挑剔,但本身的操作手感却难以令人满意,触控板手感和鼠标相差巨大...

医疗器械三类许可证怎么办理,其申办流程和条件介绍

随着医疗器械行业竞争的不断加剧,大型医疗器械企业间并购整合与资本运作日趋频繁,国内优秀的医疗器械生产企业愈来愈重视对行业市场的研究,特别是对企业发展环境和客户需...

csv文件是什么意思(打开CSV格式文件的方法)

Hello,大家好,今天跟大家分享下我们如何快速的汇总多个csv文件,这个也是之前一个粉丝问道的问题,前几太忙没时间写,今天就跟大家分享下Csv文件常见于我们从...

brothermfc7360打印机驱动程序安装(兄弟7360扫描仪使用

最近遇到一客户换了新的台式电脑,系统是win10,在安装兄弟7360打印机驱动,连接usb线后没有反应,找到新硬件,换了很多驱动都无法正常安装。后经咨询厂家技术...

volte是什么功能在哪里打开(手机volte功能介绍)

我们在购买手机的时候,经常会在产品介绍页面看到支持VoLTE语音的字样,似乎不配上这样的字眼,都不好意思叫旗舰机。那么,VoLTE到底是什么?又有什么优势呢?今...

吸尘器哪个牌子好,购买吸尘器的注意事项

打扫房间有多麻烦,我想大家肯定都深有体会,床底、沙发下、客厅、墙角、卫生间、楼梯口&&#8230;一整个工程下来不花去大半天都不算完,而且还特别耗费体力,累到不...

iphone3价格多少钱(苹果手机价格大全)

果粉之家,专业苹果手机技术研究十年!您身边的苹果专家~今天凌晨1点,我们终于等来了苹果的首个秋季新品发布会。不知道有多少果粉跟小编一样熬夜看完了这场科技“春晚”...

2023年阴阳师免费礼包码(类似vip888激活码的礼包)

阴阳师兑换码大全历来就是玩家关注的焦点。游戏自开测以来,太肝成为了玩家集体吐槽的地方,为了解决这个问题,大家可尽情领取阴阳师兑换码兑换资源。接下来就让琵琶网小编...