MyBatis程序创建

MyBatis程序创建

​ 首先我们了解MyBatis的作用,其主要的作用是进行对数据进行连接,并且简化掉JDBC的连接操作,从而使开发人员可以专注于在Sql语句的编写,而不是需要分散注意力于在与数据库的连接,和使用PreparedStatement上。

新建Maven项目

修改pom.xml文件

​ 在新建工程后,我们进入工程,然后删除所持有的src文件夹。然后我们需要开始进行对pom.xml配置文件的新增。这样我们以后在此工程中新建模块后我们都会得到当前pom.xml的文件,而不需要在此在新模块中再次修改在模块中的pom.xml的文件配置。

​ 在修改pom.xml文件之前,我们需要首先明白我们在学习MyBatis之前所需要的的.JAR包。我们通过maven来进行对包的导入。

  • mybatis
  • mysql
  • junit

并且由于Maven自身,我们需要进行对文件的过滤,及在依赖项下面补充

   <groupId>com.YUME</groupId>
    <artifactId>MyBatisStudy</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>MyBatisStudy-01</module>
    </modules>

    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>

    <dependencies>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
        <!--myBaits-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resource</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/**/**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

新建模块

创建mybatis-config.xml资源文件

此资源文件的文档可以在MyBatis的官方项目文档中找到模板,我们需要进行修改。注意在url的value值的设定中,我们需要进行对数据库的时区的设置,并且在此文件的url值中,我们所使用的并不是&来进行连接各个参数的设置。

<?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.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;rewriteBatchedStatements=true&amp;serverTime=Asia/shanghai"/>
                <property name="username" value="usename"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/YUME/dao/BirdMapper.xml">
    </mappers>
</configuration>

transactionManager:事务管理

创建MyBatisUtils包

使用了工厂模式,我们需要设置我们在上一步所设置的xml文件路径,使用数据流进行导入,然后创建一个新的工厂。

sqlSessionFactory.openSession();来进行对SqlSession对象的创建。

package com.YUME.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 {
        try {
            String res = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(res);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

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

创建pojo类

创建一个JavaBean类,来对应我们的数据库。

package com.YUME.pojo;

public class Bird {
    private String name;
    private int age;

    public Bird(){}

    public Bird(String name,int age){
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

创建Mapper接口

我们在接口中创建我们所需要使用的方法。

package com.YUME.dao;

import com.YUME.pojo.Bird;

import java.util.List;

public interface BirdMapper {
    List<Bird> getBird();
}

创建Mapper.xml文件

我们在xml文件中进行对在接口中声明的方法进行实现, namespace为我们所实现的接口的路径,id即是所实现的方法名,resultType即是返回的类型。

<?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.YUME.dao.BirdMapper">
    <select id="getBird" resultType="com.YUME.pojo.Bird">
        select * from bird
    </select>
</mapper>

进行测试

我们首先需要进行对SqlSession类的获取,由于我们之前已经书写过获取SqlSession对象的Util包,我们直接调用即可获取。

我们一共有两种的获取Mapper接口的方法,一种是通过SqlSession对象来进行获取Mapper类,另一种即是通过selectList来获取,但是这种方法是在以前使用的,并不推荐使用。

在获取这个Mapper接口后,我们及可以进行对其进行使用方法。

package com.YUME.dao;

import com.YUME.pojo.Bird;
import com.YUME.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.*;
import java.util.List;

public class TestBirdMapper {
    @Test
    public void testGetBird(){
        SqlSession sqlSession = null;
        
        try {
            //获得SqlSession对象
            sqlSession = MyBatisUtils.getSqlSession();

            //获得Mapper
            BirdMapper birdMapper = sqlSession.getMapper(BirdMapper.class);
            List<Bird> birds = birdMapper.getBird();

            //方法二: 不推荐
            //List<Bird> birds = sqlSession.selectList("com.YUME.dao.BirdMapper.getBird");

            for (Bird bird : birds) {
                System.out.print(bird.getName()+"  ");
                System.out.println(bird.getAge());
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            sqlSession.close();
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值