java web 之mybatis使用教程(二)

我们已经初步搭建了 MyBatis 框架,实现了findById功能,接下来继续完善,实现findAll,insert,update,delete功能。

目录结构跟上篇一样。更新的文件主要是UserMapper.xml和UserTest.java文件,写完一个接口,再写一个测试接口,测试驱动开发,这种模式简直太美妙了。

直接上代码:

UserMapper.xml如下:

<?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.cx.pojo.User">
    <select id="findById" parameterType="int" resultType="com.cx.pojo.User">
        SELECT * FROM User WHERE id=#{id}
    </select>

    <!-- 查询功能,resultType 设置返回值类型 -->
    <select id="findAll" resultType="com.cx.pojo.User">  <!-- 书写 SQL 语句 -->
        SELECT * FROM user
    </select>

    <insert id="insert" parameterType="com.cx.pojo.User">
        INSERT INTO user (id,name,age) VALUES (#{id},#{name},#{age})
    </insert>

    <!-- 修改功能 -->
    <update id="update" parameterType="com.cx.pojo.User">
        UPDATE user set name=#{name},age=#{age}
        WHERE id = #{id}
    </update>

    <!-- 删除功能 -->
    <delete id="deleteById" parameterType="integer">
        DELETE FROM user
        WHERE id = #{id}
    </delete>
</mapper>

UserTest.java文件如下:

package com.cx.test;

import com.cx.pojo.User;
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.*;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

public class UserTest {

    @BeforeClass
    public static void globalInit() {  // 在所有方法执行之前执行
        System.out.println("@BeforeClass标注的方法,在所有方法执行之前执行...");
    }

    @AfterClass
    public static void globalDestory() {  // 在所有方法执行之后执行
        System.out.println("@AfterClass标注的方法,在所有方法执行之后执行...");
    }

    @Before
    public void setUp() {  // 在每个测试方法之前执行
        System.out.println("@Before标注的方法,在每个测试方法之前执行...");
    }

    @After
    public void tearDown() {  // 在每个测试方法之后执行
        System.out.println("@After标注的方法,在每个测试方法之后执行...");
    }

    @Test
    public void testFindById() {
        String resource ="mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession();
            User user = session.selectOne("findById",2);
            session.commit();
            System.out.println(user.getName());
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    @Test
    public void testFindAll() {
        String resource ="mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession();

           List<User> list =  session.selectList("findAll");

            session.commit();
            System.out.println("list.size=======" + list.size());
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    @Test
    public void testInsert(){

        String resource ="mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession();
            User user = new User();
            user.setId(5);
            user.setName("gavin");
            user.setAge(12);
            session.insert("insert", user);
            session.commit();
        }catch (IOException e){
            e.printStackTrace();
        }
    }


    @Test
    public void testUpdate(){

        String resource ="mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession();

            User user = session.selectOne("findById",2);
            user.setName("adadf");
            user.setAge(12);
            session.insert("update", user);

            session.commit();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    @Test
    public void testDelete(){

        String resource ="mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sqlSessionFactory.openSession();

            session.delete("deleteById",5);

            session.commit();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

每一个都是成功的。本人亲测。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值