Java框架--Mybaits(一)

  1. 为什么要使用Mybatis?
  2. 快速入门
  3. 高级映射
  4. 动态SQL

1. 为什么要使用Mybatis?

image.png
  • 通过简单配置就可以实现JDBC的效果
  • 使用的人多

2. 快速入门

通过使用增删改查来进行快速入门

2.0数据库结构表

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'jack', 'F', 22);
INSERT INTO `user` VALUES (2, 'lucy', 'M', 25);
INSERT INTO `user` VALUES (3, 'Anna', 'F', 20);

image.png
image.png
image.png

2.1 配置db.properties文件

driver = com.mysql.cj.jdbc.Driver
username = root
password = 123456
url = jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC

2.2 配置mybatis-config.xml文件

  • properties 标签:配置properties文件路径
  • mapper resource标签:配置Mapper.xml路径
  • package标签:扫描包下的Mapper.xml




    
    
    
    
        
    
    
    
        
            
            
                
                
                
                
            
        
    
    
    
        
        
    


2.3 配置UserMapper.xml文件

  • namespace:必填,对应dao接口路径
  • id:对应方法
  • parameterType:传入参数类型
  • resultType:返回参数类型




    

    

    
        insert into user (id,name,sex,age) values(#{id},#{name},#{sex},#{age});
    

    
        delete from user where id = #{id};
    

    
        update user set name = #{name} where id = #{id};
    


2.4 配置MybatisUtils文件

package utils;

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;

public class MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        String resource = "resource/mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }

    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

2.5 实现DAO业务接口UserMapper

package dao;
import pojo.User;
import java.util.List;

public interface UserMapper {

    /**
     * 查找全部用户
     * @return 用户List集合
     */
    List findAllUser();

    /**
     * 查找一个用户
     * @param id 用户id
     * @return 返回一个用户
     */
    User findUserById(int id);

    /**
     * 增加一个用户
     * @param user 增加用户的对象
     * @return 返回成功与否
     */
    int addUser(User user);
    /**
     * 删除一个用户
     * @param id
     * @return
     */
    int deleteUser(int id);

    /**
     * 更新一个用户的名字
     * @param user
     * @return
     */
    int updateUserName(User user);
}

2.6 编写测试类进行测试

package test;

import dao.UserMapper;
import org.apache.ibatis.session.SqlSession;
import pojo.User;
import utils.MybatisUtils;
import java.util.List;

public class MybatisTest {
    public static void main(String[] args) throws Exception{
        
        SqlSession sqlSession = MybatisUtils.getSqlSession();

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

        //查找全部用户
        List userList = userMapper.findAllUser();
        for (User user : userList) {
            System.out.println("ID:" + user.getId() + ",NAME:" + user.getName()
                    + ",SEX:" + user.getSex() + ",AGE:" + user.getAge());
        }

        //查找单一用户
        User user1 = userMapper.findUserById(1);
        System.out.println(user1);
        
        //增加一个用户
        User user2 = new User(4,"aaa","F",12);
        int a = userMapper.addUser(user2);
        sqlSession.commit();
        sqlSession.close();
        System.out.println(a);
        
        //删除一个用户
        int b = userMapper.deleteUser(4);
        sqlSession.commit();
        sqlSession.close();
        System.out.println(b);
        
        //修改一个用户
        User user3 = new User();
        user3.setId(3);
        user3.setName("Anna");
        int c = userMapper.updateUserName(user3);
        sqlSession.commit();
        sqlSession.close();
        System.out.println(c);

    }
}

你可能感兴趣的:(Java框架--Mybaits(一))