Mybatis操作数据库实现增、删、改、查

可看以往文章JDBC操作数据库实现增删改查

一、数据库中建表

1、classinfo表
在这里插入图片描述
2、student表
在这里插入图片描述

二、后台功能

1、创建mybatis.xml文件进行连接数据库

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">


<configuration>
    <typeAliases>
        <package name="src.main.java.domain"></package>
    </typeAliases>

    <!--数据库环境的配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <!--数据源-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/school2"></property>
                <property name="username" value="root"></property>
                <property name="password" value="123456"></property>
            </dataSource>
        </environment>
    </environments>

    <!--文件路径配置-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

2、构建学生表的实体类

package domain;

public class User {
    
    
    private String studentid;
    private String studentName;
    private String studentSex;
    private String studentPhone;
    private String studentAddress;
    private int studentAge;
    private int stuclassid;
    private String className;

    public String getStudentid() {
    
    
        return studentid;
    }

    public void setStudentid(String studentid) {
    
    
        this.studentid = studentid;
    }

    public String getStudentName() {
    
    
        return studentName;
    }

    public void setStudentName(String studentName) {
    
    
        this.studentName = studentName;
    }

    public String getStudentSex() {
    
    
        return studentSex;
    }

    public void setStudentSex(String studentSex) {
    
    
        this.studentSex = studentSex;
    }

    public String getStudentPhone() {
    
    
        return studentPhone;
    }

    public void setStudentPhone(String studentPhone) {
    
    
        this.studentPhone = studentPhone;
    }

    public String getStudentAddress() {
    
    
        return studentAddress;
    }

    public void setStudentAddress(String studentAddress) {
    
    
        this.studentAddress = studentAddress;
    }

    public int getStudentAge() {
    
    
        return studentAge;
    }

    public void setStudentAge(int studentAge) {
    
    
        this.studentAge = studentAge;
    }

    public int getStuclassid() {
    
    
        return stuclassid;
    }

    public void setStuclassid(int stuclassid) {
    
    
        this.stuclassid = stuclassid;
    }

    public String getClassName() {
    
    
        return className;
    }

    public void setClassName(String className) {
    
    
        this.className = className;
    }

    // 创建有参的构造方法
    public User(String studentid, String studentName, String studentSex, String studentPhone, String studentAddress, int studentAge, int stuclassid, String className) {
    
    
        this.studentid = studentid;
        this.studentName = studentName;
        this.studentSex = studentSex;
        this.studentPhone = studentPhone;
        this.studentAddress = studentAddress;
        this.studentAge = studentAge;
        this.stuclassid = stuclassid;
        this.className = className;
    }

    public User(String studentid, String studentName, String studentSex, String studentPhone, String studentAddress, int studentAge, int stuclassid) {
    
    
        this.studentid = studentid;
        this.studentName = studentName;
        this.studentSex = studentSex;
        this.studentPhone = studentPhone;
        this.studentAddress = studentAddress;
        this.studentAge = studentAge;
        this.stuclassid = stuclassid;
    }

    // 创造无参的构造方法
    public User() {
    
    
    }
}

3、接口UserMapper

package mapper;

import domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    
    

    // 查询所有用户
    public List<User> findAllUser();

    // 通过id查找用户
    public User findUserById(String id);

    // 通过姓名模糊查询查找用户
    public List<User> findUserByName(String name);

    // Map集合
    public List<User> findUserByMap(Map<String,Object> map);

    // 通过年龄查找用户   @Param("age")指代xml配置文件中的studentAge>#{age}
    public List<User> findUserByAge(@Param("age") int age);

    // 修改用户
    public int update(User user);

    // 删除用户
    public int delete(String id);

    // 添加用户
    public int insert(User user);
}

4、创建与接口同名的xml文件编写SQL语句

<?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="mapper.UserMapper">

    <resultMap id="stulist" type="domain.User">
        <result property="studentid" column="studentid"></result>
        <result property="studentName" column="studentName"></result>
        <result property="studentSex" column="studentSex"></result>
        <result property="studentPhone" column="studentPhone"></result>
        <result property="studentAddress" column="studentAddress"></result>
        <result property="studentAge" column="studentAge"></result>
        <result property="stuclassid" column="stuclassid"></result>
        <result property="className" column="className"></result>
    </resultMap>

    <!--查找所有用户-->
    <select id="findAllUser" resultMap="stulist">
        SELECT s.*,c.className FROM student s,classinfo c WHERE s.stuclassid=c.classid
    </select>

    <!--通过id查找用户-->
    <!--resultType结果类型  parameterType参数类型-->
    <select id="findUserById" resultType="domain.User" parameterType="String">
        SELECT * from student WHERE studentid=#{studentid}
    </select>

    <!--通过姓名进行模糊查询用户-->
    <select id="findUserByName" resultType="domain.User" parameterType="String">
        SELECT * FROM student WHERE studentName LIKE concat(concat('%',#{studentName}),'%')
    </select>

    <!--通过map集合查询用户-->
    <select id="findUserByMap" resultType="domain.User" parameterType="Map">
        SELECT * FROM student WHERE studentName LIKE concat(concat('%',#{studentName}),'%') AND studentAge>#{studentAge}
    </select>

    <!--通过年龄查询用户-->
    <select id="findUserByAge" resultType="domain.User" parameterType="int">
        SELECT * FROM student WHERE studentAge>#{age}
    </select>

    <!--修改用户信息-->
    <update id="update" parameterType="domain.User">
        UPDATE student SET studentName=#{studentName},studentSex=#{studentSex} WHERE studentid=#{studentid}
    </update>

    <!--删除用户-->
    <update id="delete" parameterType="String">
        DELETE FROM student WHERE studentid=#{studentid}
    </update>

    <!--添加用户-->
    <update id="insert" parameterType="domain.User">
        INSERT into student VALUES (#{studentid},#{studentName},#{studentSex},#{studentPhone},#{studentAddress},#{studentAge},#{stuclassid})
    </update>
</mapper>

5、测试类

package test;

import org.apache.ibatis.session.SqlSession;
import domain.User;
import mapper.UserMapper;
import util.MybatisUtil;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    
    
    public static void main(String[] args) {
    
    
//        test01();
//        test02();
//        test03();
//        test04();
//        test05();
//        test06();
//        test07();
        test08();
    }

    // 添加用户
    private static void test08() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int insert = mapper.insert(new User("s123456", "朱怀昌", "男", "12321432", "河南南阳", 22, 3));
        if (insert>0){
    
    
            System.out.println("添加成功");
        }
        // 提交之后事物才会生效
        session.commit();
    }

    // 删除用户
    private static void test07() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.findUserById("s123451");
        if (user!=null){
    
    
            int delete = mapper.delete("s123451");
            if (delete>0){
    
    
                System.out.println("删除成功");
            }
        }
        // 提交事物之后才会生效
        session.commit();
    }

    // 修改用户
    private static void test06() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.findUserById("s123453");
        user.setStudentName("洋葱");
        user.setStudentSex("女");

        int update = session.getMapper(UserMapper.class).update(user);
        if (update>0){
    
    
            System.out.println("修改成功");
        }

        // 添加、修改、删除的操作都会产生事物,需要提交之后才会生效
        session.commit();

    }

    // 通过年龄查询用户
    private static void test05() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> lists = mapper.findUserByAge(20);
        for (User list:lists){
    
    
            System.out.println(list.getStudentName());
        }
    }

    // 通过map集合查询用户
    private static void test04() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("studentName","博");
        map.put("studentAge",20);

        List<User> lists = mapper.findUserByMap(map);
        for (User list:lists){
    
    
            System.out.println(list.getStudentName());
        }
    }

    // 通过姓名的模糊查询查找用户
    private static void test03() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> lists = mapper.findUserByName("博");
        for (User list:lists){
    
    
            System.out.println(list.getStudentName());
        }
    }

    // 通过id查找用户
    private static void test02() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.findUserById("s123455");
        System.out.println(user.getStudentName());
    }

    // 查询所有的用户
    private static void test01() {
    
    
        SqlSession session = MybatisUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> lists = mapper.findAllUser();
        for (User list:lists){
    
    
            System.out.println(list.getStudentName());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/s990420/article/details/114988146