栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis的学习2(关于xml映射文件的insert、update、delete、select以及参数值获取)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis的学习2(关于xml映射文件的insert、update、delete、select以及参数值获取)

xml的映射文件,是用来写sql语句的配置文件,其中insert、update、delete的用法基本上是一样的,select用法会比较复杂一点。
1、insert、update、delete用法:基本用法其实很简单,就是需要用什么就用什么标签,传入的参数值用#{}、${}表示,后面做详细介绍
mapping配置文件:


	
        insert into admin(admin_account,admin_pwd) values (#{account},#{pwd})
    

    
        update admin set admin_pwd = #{pwd} where admin_account = #{account}
    

    
        delete from admin where admin_account = #{account}
    

dao层传入参数的接口

public interface AdminDao {
    public Integer save(Admin admin);
    public Integer delete(String account);
    public Integer update(Admin admin);

实体类

public class Admin {
    private String adminAccount;
    private String adminPwd;

    public String getAdminAccount() {
        return adminAccount;
    }

    public void setAdminAccount(String adminAccount) {
        this.adminAccount = adminAccount;
    }

    public String getAdminPwd() {
        return adminPwd;
    }

    public void setAdminPwd(String adminPwd) {
        this.adminPwd = adminPwd;
    }

    @Override
    public String toString() {
        return "Admin{" +
                "adminAccount='" + adminAccount + ''' +
                ", adminPwd='" + adminPwd + ''' +
                '}';
    }
}

id:用来标识跟dao接口中匹配的方法,必须与方法中的名字一一对应
flushCache:用来标识当前sql语句的结果是否进入二级缓存
statementType:用来选择执行sql语句的方式
(1)statement:最基本的jdbc的操作,用来表示一个sql语句,不能防止sql注入
(2)PREPARED:preparedStatement:采用预编译的方式,能够防止依赖注入,设置参数的时候需要将对象来进行设置
(3)CALLABLE:调用存储过程
useGeneratedKeys:放完成插入操作的时候,可以将自增生成的主键返回到具体的对象中
keyProperty:指定返回的主键要赋值到具体哪个属性中

2、select:查询的引用有许多种
select标签中常用属性:
id:用来设置当前sql语句匹配的dao接口的方法,必须跟方法的名字统一
resultType:表示返回结果类型,一般使用不多,只能返回单一对象,而做多表关联查询的时候,需要自定义结果集。
当返回结果是一个集合时(List),不需要用resultMap,用resultType指定集合中的元素类型即可


        select admin_account adminAccount,admin_pwd adminPwd from admin where admin_account = #{122}
    
    
    
        
        select * from ${arg0} where admin_account = #{arg1}

(2)当查询语句中包含多个参数的时候,应该如何获取参数值呢
a、如果是单个参数:
基本数据类型:可以用#{}随便获取,也就是括号中的值可为任意值
引用数据类型:使用#{}获取值要必须使用对象的属性名
b、如果是多个参数:
在sql语句中包含多个参数,获取参数值的时候不能随便设置值了,需要使用arg0、arg1…param1、param2…
若是想要采用参数名进行获取,可以使用@Param注解,设置注解中value的值,该值是sql语句中的参数值
public Admin selectNameTest2(@Param(“name”) String name, @Param(“account”) String account);
c、自定义map,其实就是利用map中的key传入sql中,获得想要获取的数据
d、返回值存在map时,可以用@mapkey指定key

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号