IDEA搭建MyBatis工作环境(不使用Maven)

参考文章
https://blog.csdn.net/FJJ543/article/details/81064891?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/FJJ543/article/details/81064891?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
注释:
1.第一个的配置过程+第二个的配置文件=解决问题
(第一个的配置文件略有问题,且两个的结构都较为复杂)
2.除了batis的配置,其他的都可以略过,第二个的idea连接数据库需要下载文件(需要外网),此步可以省略
参考这个文章出现的一些问题记录

我的配置 (可能出现的问题写在最后)

1.先看我的目录,主要有四个配置文件,配置文件放在在哪里都一样,只要路径配置正确在这里插入图片描述
我的是官方jar包集合,不需要Junit(测试框架,用不到)
下载地址:https://download.csdn.net/download/qq_42733641/12276170
在这里插入图片描述
2.我的配置文件和博主略有不同,精简了很多,更改了一些配置,一直出错的可以试一试我的
jdbc.properties 这个单独配置,也可以直接写道config.xml中,单独配置需要引用,注意这里url后面是跟了参数的

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=alpha

config.xml mybratis的主要配置文件

<?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>

    <!-- 引入外部配置文件 -->
    <properties resource="jdbc.properties"></properties>



    <!-- 配置mybatis运行环境 -->
    <environments default="cybatis">
        <environment id="cybatis">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />

            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <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>

    <!--mybatis.cfg.xml里注册UserMapper.xml文件-->
    <mappers>
        <!--&lt;!&ndash; 告知映射文件方式1,一个一个的配置,务必使用斜杠而不是点,会报错-->
        <mapper resource="mapper.xml"/>
        <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
        <!--<package name="com/cy/mybatis/mapper"/>-->
    </mappers>

</configuration>

mapper.xml namespace的命名就是测试代码中要填写的路径,可以随便写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace随便写,不要和包名重复-->
<mapper namespace="a.b">
    <select id="selectAll" resultType="com.alpha.mybatis.Country">
        SELECT * FROM country
    </select>


</mapper>

log4j.properties 日志配置,必须,bratis中调用了日志,所以必须配置

### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug,stdout,logfile

### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

test 测试代码



import com.alpha.mybatis.Country;
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;
import java.util.List;

/**
 * @Auther Alpha
 * @Data 2020-03-27 16:43
 * @Dscription:
 */
public class test {
    public static void main(String[] args) throws IOException {
        InputStream is = Resources.getResourceAsStream("config.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = factory.openSession();
        List<Country> list = session.selectList("a.b.selectAll");
        for (Country country : list){
            System.out.println(country.toString());
        }
        session.close();
    }
}

容易出现的问题:
1.没有配置日志
2.路径没有写对(80%的问题),config的路径映射是斜杠,包名+点不生效在这里插入图片描述

在 IntelliJ IDEA搭建 MyBatis 开发环境,需要按照以下步骤进行: 1. 安装 Maven Maven 是一个项目管理工具,可以帮助我们统一管理项目依赖和构建过程。我们可以在 Maven 的官网下载最新版本的 Maven,并按照官方文档进行安装。 2. 创建 Maven 项目 在 IntelliJ IDEA创建一个 Maven 项目,具体步骤是: - 点击 "File" -> "New" -> "Project" - 在弹出的对话框中选择 "Maven" - 在下一步中设置项目的 GroupId、ArtifactId 和 Version - 完成创建项目 3. 添加 MyBatis 依赖 在 pom.xml 文件中添加 MyBatis 的依赖,具体代码如下: ``` <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> ``` 4. 添加数据库驱动依赖 在 pom.xml 文件中添加数据库驱动的依赖,例如 MySQL 驱动的代码如下: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> ``` 5. 配置 MyBatis 在 resources 目录下创建一个 mybatis-config.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> <typeAliases> <!-- 在这里配置自定义的别名 --> </typeAliases> <mappers> <!-- 在这里配置自定义的 Mapper --> </mappers> </configuration> ``` 6. 配置数据源 在 resources 目录下创建一个名为 db.properties 的文件,并添加以下代码: ``` jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC jdbc.username=root jdbc.password=root ``` 其中,jdbc.url 表示数据库的 URL,jdbc.username 和 jdbc.password 表示数据库的用户名和密码。 7. 编写 Mapper 接口和 SQL 语句 在 src/main/java 目录下创建一个包,例如 com.example.mapper,在该包下创建一个 Mapper 接口,并添加以下代码: ``` public interface UserMapper { User getUserById(int id); } ``` 然后在 resources 目录下创建一个名为 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.example.mapper.UserMapper"> <select id="getUserById" parameterType="int" resultType="com.example.entity.User"> select * from user where id = #{id} </select> </mapper> ``` 其中,namespace 表示 Mapper 接口的全限定名,select 标签中的 id 表示方法名,parameterType 表示方法的参数类型,resultType 表示方法的返回值类型。 8. 测试 MyBatis 在测试类中编写代码,测试 MyBatis 是否能够正常工作,例如: ``` public class UserMapperTest { @Test public void testGetUserById() { SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user); sqlSession.close(); } } ``` 9. 运行测试类 在 IntelliJ IDEA 中运行测试类,查看控制台输出,即可测试 MyBatis 是否能够正常工作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值