NO.1 MyBatis配置文件:配置连接数据库的环境,实现数据库连接

本文详细介绍了MyBatis中配置数据库环境的两种方式:直接在核心配置文件中配置和引入properties文件,以及创建JdbcUtil工具类进行数据库连接的管理。通过示例展示了如何设置数据源和事务管理,并进行了数据库连接测试。
摘要由CSDN通过智能技术生成

目录

1、MyBatis配置数据库环境的连接方式

1.1连接方式一:MyBatis核心配置文件配置数据库连接信息

1.2连接方式二:在MyBatis核心配置文件中引入properties文件,配置数据库的环境

2、MyBatisd核心配置文件连接数据库的环境完整配置信息

3、配置文件中各个属性说明

4、创建数据库连接工具类JdbcUtil

5、数据库连接测试

6、数据库连接测试结果

1、MyBatis配置数据库环境的连接方式

MyBatis配置连接数据库的环境有两种方式,方式一在MyBatis的核心配置文件中配置数据库连接信息;方式二在MyBatis核心配置文件中引入properties文件,此后在MyBatis核心配置文件中使用访问方式获取相应的value

1.1连接方式一:MyBatis核心配置文件配置数据库连接信息

该方式在只需要在MyBatis的核心配置文件中配置连接数据库的各个属性值(如:driver、url、username、password等属性)即可。

案例如下所示:

<environments default="development">
        <environment id="development">
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/MyDataSrouce"/>
                <property name="username" value="root"/>
                <property name="password" value="MyPassword"/>
            </dataSource>
        </environment>
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/MyDataSrouce"/>
                <property name="username" value="root"/>
                <property name="password" value="MyPassword"/>
            </dataSource>
        </environment>
</environments>

1.2连接方式二:在MyBatis核心配置文件中引入properties文件,配置数据库的环境

第一步:首先在项目的main文件加下的resources文件夹下创建数据库连接的配置文件(这里命名为jdbc)

jdbc文件的配置信息如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/MyDataSource
jdbc.username=root
jdbc.password=MyPassword

第二步:在MyBatis核心配置文件中,在properties标签中给属性resource配置数据源(数据库配置文件)。

<properties resource="jdbc.properties"/>

第三步:在environments标签中通过${}的方式给数据库连接的各个属性赋值

<environments default="development">
        <environment id="development">
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
</environments>

2、MyBatisd核心配置文件连接数据库的环境完整配置信息

连接数据库环境的完整配置信息如下所示:

<properties resource="jdbc.properties"/>
<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <property name="username" value="root"/>
                <property name="password" value="123456789"/>
            </dataSource>
        </environment>
</environments>

3、配置文件中各个属性说明

environments标签:配置连接数据库的环境
属性:
default:设置默认使用的环境的id

transactionManager:设置事务管理器
属性:
type:设置事务管理的方式,有两种方式:JDBC、MANAGED
JDBC:表示使用JDBC中原生的事务管理方式
MANAGED:被管理,例如Spring

dataSource:设置数据源
属性:
type:设置数据源的类型,有三种类型:POOLED、UNPOOLED、JNDI
POOLED:表示使用数据库连接池
UNPOOLED:表示不使用数据库连接池
JNDI:表示使用上下文中的数据源

4、创建数据库连接工具类JdbcUtil

将JdbcUtil工具类放在src/main/java/项目名称/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 JdbcUtil {

    public static SqlSession getSqlSession(){
        SqlSession sqlSession;
        try {
            //创建配置信息输入流
            InputStream is= Resources.getResourceAsStream("mybatis_config.xml");
            //创建SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
            //创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
            //实例化SqlSession对象
            sqlSession=sqlSessionFactory.openSession();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return sqlSession;
    }
    
    public static void closeSqlSessionAndCommit(SqlSession sqlSession){
        sqlSession.commit();
        sqlSession.close();
    }
}

5、数据库连接测试

创建数据库连接的测试类

import com.review.mybatis.utils.JdbcUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import static org.junit.Assert.*;

public class JdbcUtilTest {

    @Test
    public void testConnection(){
        SqlSession sqlSession= JdbcUtil.getSqlSession();
        System.out.println(sqlSession);
        JdbcUtil.closeSqlSessionAndCommit(sqlSession);
    }
}

6、数据库连接测试结果

控制台输出以下 内容说明能连接到数据库,MyBatis配置连接数据库的环境成功。

根据提供的引用内容,报错信息"DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [42000][1049] Unknown database 'cuijun'"表示连接数据库时出现了未知数据库的错误。可能的原因是数据库名称错误或者数据库不存在。 解决这个问题的方法是: 1. 确保数据库名称正确:检查连接数据库配置文件或代码中指定的数据库名称是否正确,保与实际数据库名称一致。 2. 确保数据库存在:在MySQL中,使用命令`SHOW DATABASES;`可以列出所有存在的数据库。确保指定的数据库存在于数据库列表中。 以下是一个示例代码,演示了如何使用MyBatisX连接数据库并处理数据库连接错误: ```java import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisExample { public static void main(String[] args) { String databaseName = "cuijun"; // 替换为实际的数据库名称 // 加载 MyBatis 配置文件 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创建 SqlSession SqlSession sqlSession = null; try { sqlSession = sqlSessionFactory.openSession(); // 执行数据库操作 // ... } catch (Exception e) { e.printStackTrace(); System.out.println("连接数据库失败:" + e.getMessage()); } finally { if (sqlSession != null) { sqlSession.close(); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值