第一个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了,不然会覆盖掉!!!!!!!!!!

相关推荐
下次再写1 小时前
【Redis实战】深入理解Redis缓存策略:从原理到Spring Boot实践
java·spring boot·redis·缓存穿透·缓存击穿·分布式缓存·缓存策略
超梦dasgg1 小时前
智慧充电系统计费定价服务Java 实现
java·开发语言·spring·微服务
敲敲千反田1 小时前
ThreadLocal和CompletableFuture
java·网络·jvm
码云数智-园园1 小时前
Spring循环依赖:三级缓存到底解决了什么,没解决什么?
java·后端·spring
vx-程序开发1 小时前
PHP书店网站-计算机毕业设计源码05274
开发语言·php·课程设计
陈eaten1 小时前
windows上协调多版本python以及虚拟环境
开发语言·windows·python·pycharm·pip·虚拟环境·py
龙亘川1 小时前
城市更新×智慧治理:老旧小区改造中的数字化创新实践
java·大数据·人工智能·机器学习·智慧城市
无所事事O_o1 小时前
OPENSSL生成非对称加密公私钥
java·加密
一晌小贪欢1 小时前
告别 `datetime` 混乱:使用 Python 类型注解构建健壮的时间处理管道
开发语言·python·时间·时间类型·时间模块