搭建mybatis框架,完成单表增删改查操作,测试

1.创建maven工程

(1)首先打开idea点击idea中的File->New->Project...

(2)在左侧找到Maven,然后点击Next。写好工程名和路径,如下图

--创建表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(10) DEFAULT NULL COMMENT '学生编号',
  `name` varchar(20) DEFAULT NULL COMMENT '学生姓名',
  `password` varchar(20) DEFAULT NULL COMMENT '学生密码',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--在表中添加数据
INSERT INTO `student` VALUES ('1', '孙权', '123');
INSERT INTO `student` VALUES ('2', '刘备', '123');
INSERT INTO `student` VALUES ('3', '关羽', '123');
INSERT INTO `student` VALUES ('4', '张飞', '123');
INSERT INTO `student` VALUES ('5', '诸葛亮', '123');
INSERT INTO `student` VALUES ('5', '曹操', '123');

二、在idear中创建工程Maven工程

1.new project

 

注意:建工程时注意版本号,后续中可能因为版本号不同报错 

2.设置包名

 3.引入Mybatis(映射)

(1)可能会出现文件资源获取失败的问题,可以直接将下面的代码复制在项目的pom.xml配置文件中即可。

 <!--在build中配置resources,来防止资源导出失败的问题-->
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

(2)需要在resoutces包下创建mybatis-config.xml文件,文件名可以是其他的,但是最好和官方文件名相符;将官方给出的配置文件代码复制粘贴到自己新创建的配置文件中。

(3)<mapper></mapper>中的配置自己的数据库连接数据。提供连接数据库的信息。

三,代码实现增删改查
规范使用MVC架构(一个新的类 到底往哪个目录下的哪个文件夹里写?此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。)controller存放控制层代码,dao包中存放数据库工具类,pojo包中存放Student实例类,service包中存放业务接口和相对应的配置文件。

(1)控制层controller代码


package com.kid.controller;
 
import com.kid.dao.MyBatisUtil;
import com.kid.pojo.Student;
import com.kid.service.StudentService;
import org.apache.ibatis.session.SqlSession;
 
import java.util.List;
 
public class StudentController {
 
    /**
     * 重载,没有参数就查询所有学生信息
     *
     * @return 返回所有学生的信息列表
     */
    public List<Student> selectStudent() {
        return getStudentAll();
    }
 
    /**
     * 重载,根据参数,选择调用查找学生的方法
     *
     * @param object 查找学生需要的参数的值
     * @param str    查找学生需要的参数的类型,Sid,Id,Name,Sex,Age
     * @return
     */
    public List<Student> selectStudent(Object object, String str) {
        List<Student> list = null;
 
        if (str == null) {
            list = getStudentAll();
        } else {
 
            switch (str) {
                case "sid":
                case "Sid":
                    list = getStudentBySid((String) object);
                    break;
                case "id":
                case "Id":
                    list = getStudentById((int) object);
                    break;
                case "name":
                case "Name":
                    list = getStudentByName((String) object);
                    break;
                case "age":
                case "Age":
                    list = getStudentByAge((int) object);
                    break;
                case "sex":
                case "Sex":
                    list = getStudentBySex((String) object);
                    break;
            }
        }
 
        return list;
    }
 
    /**
     * 查找所有学生信息
     *
     * @return 返回所有学生的信息列表
     */
    public List<Student> getStudentAll() {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentAll();
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据Sid查找学生信息
     *
     * @param sid 学生唯一标识
     * @return 返回符合查询条件的学生信息列表
     */
    public List<Student> getStudentBySid(String sid) {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentBySid(sid);
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据学生Id学号查询学生信息
     *
     * @param id 学生的学号
     * @return 返回符合查询条件的学生信息列表
     */
    public List<Student> getStudentById(int id) {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentById(id);
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据学生姓名查询学生信息
     *
     * @param name 学生姓名
     * @return 返回符合查询条件的学生信息列表
     */
    public List<Student> getStudentByName(String name) {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentByName(name);
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据学生年龄查询学生信息
     *
     * @param age 学生年龄
     * @return 返回符合查询条件的学生信息列表
     */
    public List<Student> getStudentByAge(int age) {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentByAge(age);
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据学生性别查询学生信息
     *
     * @param sex 学生性别
     * @return 返回符合查询条件的学生信息列表
     */
    public List<Student> getStudentBySex(String sex) {
        List<Student> list = null;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        list = StudentService.getStudentBySex(sex);
        sqlSession.close();
        return list;
    }
 
    /**
     * 根据提供的学生对象,添加学生信息
     *
     * @param student 学生对象
     * @return 插入成功返回真,否则返回假
     */
    public boolean insertStudent(Student student) {
        boolean result = false;
        SqlSession session = MyBatisUtil.getSqlSession();
        StudentService StudentService = session.getMapper(StudentService.class);
        result = StudentService.insertStudent(student) > 0 ? true : false;
        session.close();
        return result;
    }
 
    /**
     * 根据参数,选择调用删除学生信息的方法
     *
     * @param object 需要的参数值
     * @param str    删除学生的依据,根据Sid,Id,Name,Sex,Age
     * @return 删除成功返回真,否则返回假
     */
    public boolean deleteStudent(Object object, String str) {
        boolean flag = false;
 
        switch (str) {
            case "sid":
            case "Sid":
                flag = deleteStudentBySid((String) object);
                break;
            case "id":
            case "Id":
                flag = deleteStudentById((int) object);
                break;
            case "name":
            case "Name":
                flag = deleteStudentByName((String) object);
                break;
            case "age":
            case "Age":
                flag = deleteStudentByAge((Integer) object);
                break;
            case "sex":
            case "Sex":
                flag = deleteStudentBySex((String) object);
                break;
        }
        return flag;
    }
 
    /**
     * 根据学生Sid删除学生
     *
     * @param sid
     * @return
     */
    public boolean deleteStudentBySid(String sid) {
        boolean result;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.deleteStudentBySid(sid) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 
    /**
     * 根据学生编号删除学生
     *
     * @param id 学生的Id编号
     * @return 删除成功返回真, 否则返回假
     */
    public boolean deleteStudentById(int id) {
        boolean result;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.deleteStudentById(id) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 
    /**
     * 根据名字删除学生
     *
     * @param name 学生姓名
     * @return 删除成功返回真, 否则返回假
     */
    public boolean deleteStudentByName(String name) {
        boolean result;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.deleteStudentByName(name) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 
    /**
     * 根据年龄删除学生
     *
     * @param age 学生的年龄
     * @return 删除成功返回真, 否则返回假
     */
    public boolean deleteStudentByAge(int age) {
        boolean result;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.deleteStudentByAge(age) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 
    /**
     * 根据性别删除学生
     *
     * @param sex 学生的性别
     * @return 删除成功返回真, 否则返回假
     */
    public boolean deleteStudentBySex(String sex) {
        boolean result;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.deleteStudentBySex(sex) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 
    /**
     * 根据提供的学生对象,更新学生信息
     *
     * @param student 学生的对象
     * @return 更新成功返回真,否者返回假
     */
    public boolean updateStudent(Student student) {
        boolean result = false;
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentService StudentService = sqlSession.getMapper(StudentService.class);
        result = StudentService.updateStudent(student) > 0 ? true : false;
        sqlSession.close();
        return result;
    }
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值