mysql入参映射,Mybatis(4):映射文件与接口代码的传参,使用@Param 注解用法

四部曲:

1.写接口  +  2.写映射sql  + 3.把mapper注册到mybatis的配置文件  + 4.写单元测试和运行

我们都知道,在 UserMapper.java 文件里面可以写了接口,国际惯例的在映射文件里面的parameterType参数注明传参的类型,在sql中使用#{参数}得到参数,这一系列步骤确实规范,但有时会让我们疲于设置,Mybatis提供了一个更快的注释机制---

(1)新建一个UserMapper.java文件,并且编写接口方法:

package com.smbms.dao;

import java.util.List;

import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.smbms.entities.User;

public interface UserMapper {

public int updatePwd(@Param("id") Integer id,@Param("userPassword") String userPassword);

}

(2)新建UserMapper.xml文件,写sql 语句:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

update smbms_user set userCode = #{userCode},userName=#{userName},userPassword=#{userPassword},gender=#{gender},birthday=#{birthday},

phone=#{phone},address=#{address},userRole=#{userRole},modifyBy=#{modifyBy},modifyDate=#{modifyDate}

where id=#{id}

(3)新建一个Mybatis全局配置文件mybatis-config.xml,并注册

UserMapper.xml文件:

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd" >

(4)新建一个单元测试文件 UserTest.java:

package com.smbms.entities;

import java.io.IOException;

import java.io.InputStream;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

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 org.junit.Test;

import com.smbms.dao.ProviderMapper;

import com.smbms.dao.UserMapper;

public class UserTest {

public SqlSession getSqlSession() throws IOException{

String resource = "mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession openSession = build.openSession();

return openSession;

}

}

//updateUser

//@Test

public void test08() throws IOException{

System.out.println("===============test add!");

List userlist = new ArrayList ();

int count = 0;

SqlSession sqlSession = getSqlSession();

User user = new User();

try{

System.out.println(110);

user.setId(1);

user.setAddress("maoming");

Date birthday = new SimpleDateFormat("YYYY-MM-dd").parse("1992-1-1");

user.setBirthday(birthday);

user.setPhone("000000");

user.setUserCode("test01");

user.setUserName("mmb");

user.setUserPassword("scua-electical");

user.setGender(2);

user.setUserRole(110);

user.setCreatedBy(1);

user.setCreationDate(new Date());

UserMapper mapper = sqlSession.getMapper(UserMapper.class);

System.out.println(111);

mapper.updateUser(user);

System.out.println(112);

sqlSession.commit();

userlist = mapper.Usershow();

for(User user1 : userlist){

System.out.println("***: "+user1);

}

//模拟异常

//int i = 2/0;

}catch(Exception e){

System.out.println(222);

e.printStackTrace();

sqlSession.rollback();

count=0;

}finally{

sqlSession.close();

}

}

综上,完成一个Update的Demo。

知识点:

(1)date数据模型的设定,在java代码里要导入Util库,赋初值的方式是:

Date birthday = new SimpleDateFormat("YYYY-MM-dd").parse("1992-1-1");

(2)事务回滚,当有异常发生(传参有误等)的情况,修改不能超过上传,便需要将状态回滚到原来的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值