Mybatis连接数据库

1.下载依赖

mybatis和对应的数据库驱动

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
        
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.3.3</version>
        </dependency>
    </dependencies>

2.创建数据库表的实体类

testdemo表内有username和age字段,实体类如下

public class TestDemo {
    //在没有使用另名的情况下,这里需要和数据库字段名称一致
    private String username;
    private int age;

    @Override
    public String toString() {
        return "TestDemo{" +
                "username='" + username + '\'' +
                ", age='" + age + '\'' +
                '}';
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAge() {
        return age;
    }

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

3创建mapper.xml映射文件

每个xml文件都有对应的namespace
即mybatis是通过名称空间来查找对应的java类或者接口

<?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.cq.mybatis.maaper">
    <select id="select" resultType="com.cq.mybatis.module.TestDemo">
        select * from test_demo
    </select>
</mapper>

4.创建mybatis配置文件

<?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="dev">
<!--        可以配置多个environment-->
        <environment id="dev">
            <transactionManager type="JDBC"/>            
            <dataSource type="POOLED">
                <property name="driver" value="sql driver"/>
                <property name="url" value="you url"/>
                <property name="username" value="username"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
<!--    查找的mapper-->
    <mappers>
<!--        这里输入资源路径,不是包-->
        <mapper resource="usermapper.xml"/>        
    </mappers>
</configuration>

运行时找不到包的处理方法
默认情况下,只会去查找resources文件下的配置文件,且不会编译进去
在maven配置文件中增加如下配置

    <build>
        <resources>
            <resource>
                <directory>/src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>/src/main/resources</directory>
            </resource>
        </resources>
    </build>

#5调用方式
使用TestNg新建测试类的方式,也可以直接写一个main方法

public class test {
    SqlSession sqlSession;
    @BeforeTest
    public void setup() throws IOException {
        //读取mybatis配置文件
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatisConfig.xml"));
        sqlSession = factory.openSession();

    }
    @Test
    public void testSelect(){
        //读取对应的sql
        // selectList的参数是mapper.xml中 namespace.id 的方式
        List<TestDemo> demos = sqlSession.selectList("com.cq.mybatis.maaper.TestDemo.select");
        for (TestDemo demo:
                demos) {
            System.out.println(demo);
        }

    }
    @AfterTest
    public void teardown(){
        sqlSession.close();
    }
}

第二种方法

实体类不用变,需要创建对应的配置文件映射接口,再创建对应的配置文件

1.创建映射接口

public interface UserMapper {
    //注意是,这里的方法名和xml文件中的id一致,否则会找不到调用
    List<TestDemo> getDemos();
}

2.创建xml文件

注意

  1. xml的文件名,需要和映射接口的接口名一致,否则会找不到映射
  2. xml中的namespace需要是完整的接口名
  3. sql语句的id需要和接口方法名称一致
<?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.cq.mybatis.maaper.UserMapper">
<!--    这里的id需要和映射接口中的方法名一致-->
    <select id="getDemos" resultType="com.cq.mybatis.module.TestDemo">
        select * from test_demo
    </select>
</mapper>

3.配置查找路径

在mybatis配置文件中,修改mapper的查找方式如下
即接口文件和配置文件所在的包下

    <mappers>
        <package name="com.cq.mybatis.maaper"/>
    </mappers>

4.调用方式

在方法一的基础上,增加一个读取mapper的语句

public class test {
    SqlSession sqlSession;
    UserMapper mapper;
    @BeforeTest
    public void setup() throws IOException {
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatisConfig.xml"));
        sqlSession = factory.openSession();
        // 读取接口给变量,然后由mybatis去查找对应sql语句
        mapper = sqlSession.getMapper(UserMapper.class);
    }
    @Test
    public void testSelect(){
//        List<TestDemo> demos = sqlSession.selectList("com.cq.mybatis.maaper.TestDemo.select");
        List<TestDemo> demos = mapper.getDemos();
        for (TestDemo demo:
             demos) {
            System.out.println(demo);
        }
    }
    @AfterTest
    public void teardown(){
        sqlSession.close();
    }
}

步骤总结

  1. 创建数据库
  2. 创建数据库实体类
  3. 创建映射接口
  4. 根据映射接口创建映射xml文件(namespace=接口全名)
  5. 创建mybatis配置文件(mapper选择包扫瞄)
  6. 使用 SqlSessionFactoryBuilder 得到factory对象
  7. factoty.openSession()得到操作对象
  8. 操作对象使用getMapper(接口.class)得到实例
  9. 实例直接调用方法即可实现数据库调用
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一种开源的持久层框架,它可以帮助 Java 程序员将 SQL 语句与数据对象进行解耦,从而使程序的开发更加简单、快捷、可维护。下面是 MyBatis 连接数据库的基本步骤: 1. 引入 MyBatis 的依赖包,可以通过 Maven 或手动下载 jar 包的方式引入。 2. 在项目中创建 MyBatis 的配置文件 mybatis-config.xml,该文件包含了 MyBatis 的全局配置信息,例如数据库连接池、类型别名等。 3. 在配置文件中配置数据库连接信息,包括数据库驱动、连接 URL、用户名和密码等。 4. 创建映射文件,该文件用于将 SQL 语句与 Java 对象进行映射,其中包括查询语句、参数映射、结果映射等。 5. 在 Java 代码中通过 SqlSessionFactoryBuilder 创建 SqlSessionFactory 对象,SqlSessionFactory 是 MyBatis 的核心类,它可以创建 SqlSession 对象。 6. 通过 SqlSession 对象进行数据库操作,例如查询、插入、更新等。 7. 最后记得关闭 SqlSession 对象和数据库连接资源。 下面是一个简单的示例代码: ```java // 1. 引入依赖包 // 2. 配置 mybatis-config.xml 文件 // 3. 配置数据库连接信息 <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> // 4. 创建映射文件 <mappers> <mapper resource="com/example/mapper/ExampleMapper.xml"/> </mappers> </configuration> // 5. 创建 SqlSessionFactory 对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 6. 通过 SqlSession 进行数据库操作 try (SqlSession session = sqlSessionFactory.openSession()) { ExampleMapper mapper = session.getMapper(ExampleMapper.class); Example example = mapper.selectById(1); System.out.println(example); } // 7. 关闭资源 ``` 以上是 MyBatis 连接数据库的基本步骤,需要注意的是,MyBatis 连接数据库的方式不仅仅限于上述操作,还可以通过 Spring 等框架进行集成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值