第一个Mybatis

环境配置

注意事项:先配置资源过滤,免得@Test下面找不到资源

注意作用域提高之后,不要再新new一个对象,避免覆盖

搭建环境

搭建数据库

新建项目:

1 新建一个普通Maven项目:注意名字,注意Maven是不是自己的还是idea自带的

2 删掉src目录,把他当作一个父工程

3 导入依赖:数据库驱动 mybitis junit

4 创建一个模块new module,一个普通的,nest ,Artifactld按照规范:mybatis-01(这样创建的好处,子项目不需要每次去导包)

编写核心配置文件

1 编写mybatis的核心配置文件Mybatis-config.xml

2 编写工具类MybatisUtils

3 编写实体类,和dao层的接口,接口下面编写Mapper

4 测试里面调用

测试作用(把接口变成一个对象,以便调用方法)

和javaweb是一样的那个是先拿到连接,这个是在工厂里面先拿到SqlSession

1 拿到Session

2 把接口变成一个对象

3 调用

核心配置

就是配置数据库相关的,mappers,用/,放我们配置接口的Mapper.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="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=mybatis;encrypt=true;trustServerCertificate=true"/>
        <property name="username" value="sa"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/counter/dao/UserMapper.xml"/>
  </mappers>
</configuration>

utils工具类

复制代码
package com.counter.utils;
​
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
​
import java.io.InputStream;
​
public class MybatisUtils {
    private  static  SqlSessionFactory sqlSessionFactory ;
    static {
        try {
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = MybatisUtils.class.getClassLoader().getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            System.out.println("MybitsUtils cg");
            System.out.println(sqlSessionFactory);
​
        }catch (Exception e) {
            System.out.println("NybitsUtils sb");
            e.printStackTrace();
        }
    }
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}
​

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.counter.dao.Userdao">
    <select id="getUsers" resultType="com.counter.pojo.User">
        select * from [user]
    </select>
</mapper>

namepace放接口位置

id里面放方法名,resultType返回类型

先创建一个配置文件

再创建一个工具类

创建实体类

创建接口

创建xml文件调用这个接口

复制代码
<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>

!!!!!重点:提升作用域

如果我在方法前提升了作用域,下面记得就不要new了,不然会覆盖掉!!!!!!!!!!

相关推荐
隔窗听雨眠4 分钟前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨29 分钟前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝1 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区1 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
弥树子1 小时前
踩坑记录:服务器内网调用接口,真实请求URL与官方公开URL不一致问题排查
开发语言·php
金銀銅鐵1 小时前
[Java] 如何理解 class 文件中方法的 descriptor?
java·后端
云烟成雨TD2 小时前
Spring AI Alibaba 1.x 系列【63】AI Agent 长期记忆
java·人工智能·spring
z落落2 小时前
C# ToCharArray + foreach遍历 + String与StringBuilder
开发语言·c#
憧憬成为java架构高手的小白2 小时前
苍穹外卖--day09
java·spring boot·百度
学代码的真由酱2 小时前
Java多用户一对一网页聊天室-测试报告
java·开发语言·功能测试·测试