二,mybatis基本增删改查

1 查询

使用select元素实现,必选属性sql的唯一标识id,返回值类型resultType或resultMap

1 传入一个值

同入门程序,需要注意,使用$的情况下,若当传入的参数为java的自有类型,int String等单个值,使用的情况下,要使用内置参数_parameter,或使用@Param进行指定。

select * from users where uid =#{_parameter}

2 传入多个值

​ 同入门程序

3 返回List集合

 List<User> findById(参数);
userMapper mapper = sqlSession.getMapper(userMapper.class);
List<User> user = mapper.findById(user1);

2 插入

  • 使用insert元素

  • commint提交事务

  • 接收返回的主键,KeyProperty = “接收主键值的属性名”,usegenerateKeys = “true”

<insert id="insertUser" useGeneratedKeys="true" keyProperty="uid">
        insert users_info(uname, uage, uphone) 
    VALUES(#{uname},#{uage},#{uphone})
</insert>
 @Test
    public void test02(){
        User user1 = new User();
        user1.setUname("zzz");
        user1.setUphone("13464515");
        user1.setUage(12);
        SqlSession sqlSession = MyBatisUtils.geSqlSession();
        userMapper mapper = sqlSession.getMapper(userMapper.class);
        int a = mapper.insertUser(user1);
        System.out.println(user1);
        sqlSession.commit();
        sqlSession.close();
    }

可以使用before After对demo进行进一步优化

import com.yiwu.mapper.userMapper;
import com.yiwu.pojo.User;
import com.yiwu.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;

public class UserTest {
 private userMapper mapper;
 private SqlSession sqlSession;

 @Before
 public void init(){
 sqlSession = MyBatisUtils.geSqlSession();
 mapper = sqlSession.getMapper(userMapper.class);
}
 @Test
 public void test01(){
     User user1 = new User();
     user1.setUid(1);
     user1.setUage(12);
     List<User> user = mapper.findById(user1);
     System.out.println(user);
 }


 @Test
 public void test02(){

     User user1 = new User();
     user1.setUname("zzz");
     user1.setUphone("13464515");
     user1.setUage(12);
     int a = mapper.insertUser(user1);
     System.out.println(user1);

 }

 @After
 public void destory(){
     sqlSession.commit();
     sqlSession.close();
 }
}

3 更新

使用update元素

update tableName set xxx = “xxx” , xxx = “xxx” where xxx = xxx

 <update id="updateUserById">
        update users_info
        set uname = #{uname}
        where uid = #{uid};
 </update>
//int updateUserById(User user);  
@Test
    public void test03(){
        User user = new User();
        user.setUid(7);
        user.setUname("hahhahaha");
        mapper.updateUserById(user);

    }

4 删除

delete from tableName where xxxx

<delete id="deleteUserById">
       delete
       from users_info
       where uid = #{id};
</delete>
//int deleteUserById(int id);
@Test
    public void test04(){
        mapper.deleteUserById(7);
    }

5 其他元素

sql

抽取相同sql语句中的重复部分

<sql id="cName">
    users_info (uname, uage, uphone)
</sql>

<insert id="insertUser" useGeneratedKeys="true" keyProperty="uid">
   insert
    <include refid="cName"/>
    VALUES(#{uname},#{uage},#{uphone})
</insert>

resultMap

解决变量名与表名不一致无法完成自动映射的问题。

public class User2 {
    private int uid;
    private String uname2;
    private int uage2;
    private String uphone;
}
<select id="findById2" resultMap="User2Map">
        select * from users_info where uid =  #{uid}
    </select>
<resultMap id="User2Map" type="com.yiwu.pojo.User2">
    <result column="uname" property="uname2"/>
    <result column="uage" property="uage2"/>
</resultMap>
@Test
public void test05(){
     User2 byId2 = mapper.findById2(3);
     System.out.println(byId2);
}

mybatis基础教程【5小时36讲全套】

重录版-推荐(36讲,无法分享组,点击前往bilibili查看全集)

6 select操作


课堂实录版-时间长,不推荐。

mybatis简单增删改查


更正:40分钟左右sql注入举例,sql语句为 or

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老去的90后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值