java--MyBatis入门

java–MyBatis入门

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。



SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):

  • cache – 给定命名空间的缓存配置。
  • cache-ref – 其他命名空间缓存配置的引用。
  • resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
  • sql – 可被其他语句引用的可重用语句块。
  • insert – 映射插入语句。
  • update – 映射更新语句。
  • delete – 映射删除语句。
  • select – 映射查询语句。


如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中。



简单实例(需要导入架包:数据库驱动架包和mybatis的架包):

实体类还是用UserInfo

mapper类:

package cn.zbw.mapper;

import cn.zbw.entity.UserInfo;

import java.util.List;

public interface UserInfoMapper {
    
    
    public List<UserInfo> findUserAll();
}

mapper.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="cn.zbw.mapper.UserInfoMapper">
    <select id="findUserAll" resultType="cn.zbw.entity.UserInfo">
        select * from user
    </select>
</mapper>

工具类:

package cn.zbw.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 MybatisUtil {
    
    
    private static SqlSessionFactory sqlSessionFactory;
    static {
    
    
        String resource = "mybatis.xml";
        try {
    
    
            InputStream is = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
    public static SqlSession getSession(){
    
    
        return sqlSessionFactory.openSession();
    }
    public static void closeSession(SqlSession sqlSession){
    
    
        if (sqlSession!=null){
    
    
            sqlSession.close();
        }
    }
}

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>
    <environments default="zbw">
        <environment id="zbw">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/zh_demo?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC"></property>
                <property name="username" value="root"></property>
                <property name="password" value="123456"></property>
            </dataSource>
        </environment>
    </environments>

    <!--配置接口所对应的xml文件-->
    <mappers>
        <mapper resource="cn/zbw/mapper/UserInfoMapper.xml"></mapper>
    </mappers>
</configuration>

测试类:

package cn.zbw.test;

import cn.zbw.entity.UserInfo;
import cn.zbw.mapper.UserInfoMapper;
import cn.zbw.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class Test01 {
    
    
    public static void main(String[] args) {
    
    
        test01();
    }

    private static void test01() {
    
    
        SqlSession session= MybatisUtil.getSession();
        List<UserInfo> lists=session.getMapper(UserInfoMapper.class).findUserAll();
        for (UserInfo u:lists){
    
    
            System.out.println(u.getUsername());
        }
    }
}

结果是:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45686583/article/details/114669105
今日推荐