【MyBatis】03.接口开发 动态代理方式的CRUD

一、创建mapper文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mybatis.demo1.mapper.UserMapper" >
    <!-- 通过name查询一条记录 -->
    <select id="findUserByName" resultType="com.mybatisdemo.demo1.entity.User" parameterType="java.lang.String">
        SELECT NAME,AGE,SEX FROM USER WHERE NAME = #{name}
    </select>
    <!-- 添加一个用户 -->
    <insert id="createUser" parameterType="com.mybatisdemo.demo1.entity.User">
        INSERT INTO USER (NAME, AGE, SEX) VALUES (#{name}, #{age}, #{sex})
    </insert>
    <!-- 删除一个用户 -->
    <delete id="deleteUser" parameterType="java.lang.String">
        DELETE FROM USER WHERE NAME = #{name}
    </delete>
    <!-- 修改一个用户 -->
    <update id="updateUser" parameterType="com.mybatisdemo.demo1.entity.User">
        UPDATE USER SET AGE = #{age}, SEX = #{sex} WHERE NAME = #{name}
    </update>
    <!-- 查询所有用户 -->
    <select id="selectAllUser" resultType="com.mybatisdemo.demo1.entity.User">
        SELECT NAME,AGE,SEX FROM USER
    </select>

</mapper>

二、创建mapper接口

package com.mybatisdemo.demo1.mapper;

import com.mybatisdemo.demo1.entity.User;

import java.util.List;

public interface UserMapper {

    User findUserByName(String name);

    void createUser(User user);

    void deleteUser(String name);

    void updateUser(User user);

    List<User> selectAllUser();
}

三、编写测试代码

package com.mybatisdemo.demo1;

import com.mybatisdemo.demo1.entity.User;
import com.mybatisdemo.demo1.mapper.UserMapper;
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.InputStream;
import java.util.List;

public class MyBatisApp {

    public static void main(String[] args) throws IOException {

        //加载配置,创建SqlSessionFactory
        String resource = "mybatis.mapper/conf.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sessionFactory.openSession();

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

        //1.查询name为xiaoming的用户
        User user = userMapper.findUserByName("xiaoming");
        System.out.println(user);

        //2.创建用户
        User lisi = new User();
        lisi.setName("lisi");
        lisi.setAge(29);
        lisi.setSex("male");
        userMapper.createUser(lisi);

        //3.删除name为lisi的用户
        userMapper.deleteUser("lisi");

        //4.更新name为xiaoming的用户sex属性值为female
        User xiaoming = userMapper.findUserByName("xiaoming");
        xiaoming.setSex("female");
        userMapper.updateUser(xiaoming);

        //5.查询所有用户
        List<User> userList = userMapper.selectAllUser();
        System.out.println(userList);

        sqlSession.commit();
        sqlSession.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值