Mybatis 学习记录 续


项目结构如下:

1、数据库建表

  表名:user

  结构:

  

  内容:

2、pom.xml文件更新如下:

注:其中build部分尤其需要重视

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.demogroupId>
    <artifactId>Mybatis_testartifactId>
    <packaging>pompackaging>
    <version>1.0-SNAPSHOTversion>
    <modules>
        <module>mybatis01module>
    modules>

    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
            <scope>providedscope>
        dependency>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.5.3version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.47version>
        dependency>
    dependencies>

<build> <resources> <resource> <directory>src/main/resourcesdirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> resource> <resource> <directory>src/main/javadirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> resource> resources> build> project>

3、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.demo.dao.Userdao">
    
    <select id="getUserList" resultType="com.demo.pojo.User">
        select * from calss.user
    select>
mapper>

4、测试类

直接上代码了

package com.demo.dao;

import com.demo.pojo.User;
import com.demo.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

/**
 * @author June
 * @date 2022/1/7 14:16
 */
public class UserDaoTest {
    @Test
    public void test()
    {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            List userList=userdao.getUserList();
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");

            for (User user:userList) {
                System.out.println(user.getId()+user.getName()+user.getPwd());
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
}

测试结果如下:

终版,完善后(即添加了CRUD后)的相关代码如下:

Userdao.java

package com.demo.dao;

import com.demo.pojo.User;

import java.util.List;

/**
 * @author June
 * @date 2022/1/6 17:44
 */
public interface Userdao {
    //获取全部用户
    List getUserList();
    //根据id查询用户
    User getUserbyid(int id);
    //insert 插入一个用户
    int addUser(User user);
    //update用户
    int updateUser(User user);
    //删除一个用户
    int deleteUser(int id);
}

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.demo.dao.Userdao">
    
    <select id="getUserList" resultType="com.demo.pojo.User">
        select * from calss.user
    select>

    <select id="getUserbyid" parameterType="int" resultType="com.demo.pojo.User">
        select * from calss.user where id = #{id}
    select>

    <insert id="addUser" parameterType="com.demo.pojo.User">
        insert into calss.user (id,name,pwd) values (#{id},#{name},#{pwd});
    insert>

    <update id="updateUser" parameterType="com.demo.pojo.User">
        update calss.user set name = #{name},pwd = #{pwd} where id = #{id};
    update>

    <delete id="deleteUser" parameterType="int">
        delete from calss.user where id = #{id};
    delete>
mapper>

UserDaoTest.java

package com.demo.dao;

import com.demo.pojo.User;
import com.demo.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

/**
 * @author June
 * @date 2022/1/7 14:16
 */
public class UserDaoTest {
    //查询所有用户
    @Test
    public void test() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            List userList=userdao.getUserList();
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");

            for (User user:userList) {
                System.out.println(user.getId()+user.getName()+user.getPwd());
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
    //根据id查询用户
    @Test
    public void getUserbyid() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            User user=userdao.getUserbyid(1);
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");
            System.out.println(user.getId()+user.getName()+user.getPwd());

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
    //添加一个用户
    @Test
    public void addUser() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            int number = userdao.addUser(new User(3,"信","333"));
            if(number!=0){
                System.out.println("插入成功!!!");
            }
            //提交事务
            sqlSession.commit();
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
    //修改某个用户
    @Test
    public void updateUser() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            int number = userdao.updateUser(new User(3,"sndi","323243"));
            if(number!=0){
                System.out.println("修改成功!!!");
            }
            //提交事务
            sqlSession.commit();
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
    //删除某个用户
    @Test
    public void deleteUser() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession= MybatisUtils.getSqlSession();
        try {
            //getMapper     方式一
            Userdao userdao=sqlSession.getMapper(Userdao.class);
            int number = userdao.deleteUser(3);
            if(number!=0){
                System.out.println("删除成功!!!");
            }
            //提交事务
            sqlSession.commit();
            //方式二
            //List userList1=sqlSession.selectList("com.demo.dao.Userdao.getUserList");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭
            sqlSession.close();
        }
    }
}