2.mybatis的开发环境搭建

用Java开发利器idea创建一个Maven工程,引入mybatis的依赖,包括日志,lombok,数据库驱动(我这里用的MySQL)

<dependencies>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.10</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.36</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.32</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.49</version>
    </dependency>
  </dependencies>

在数据库随便创建一张表并且随便插入几条数据

 建立一个实体类,跟这个表对应上,直接上代码:

package com.bky.entity;

import java.io.Serializable;
import lombok.Data;

/**
 * 
 * @TableName student
 */
@Data
public class Student implements Serializable {
    /**
     * 主键id,自动自增
     */
    private Long id;

    /**
     * 姓名
     */
    private String username;

    /**
     * 性别
     */
    private String gender;

    private static final long serialVersionUID = 1L;
}

新建一个接口,这个接口主要用来对数据库的crud,上代码:

public interface StudentMapper {

}

还要新建一个接口所对应的xml映射文件,这个文件里面就是上面接口里面方法的实现,当然肯定是用sql来实现的。而且这个xml文件的位置要和这个接口同一个包,并且名称要跟接口名称相同

StudentMapper.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">
<!--这里的namespace取值就是接口全限定类目-->
<mapper namespace="com.bky.mapper.StudentMapper">

</mapper>

好的。到此为止,我们将操作数据库的接口和对应的实现(xml)已经绑定起来了。接下来,我们还少一个非常重要的配置文件,这个配置文件主要用来连接数据库,并且告知mybatis,我们的操作数据库的接口在什么地方,对应的实体类(Studentd)在什么地方。配置文件内容如下:

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>
    <settings>
<!--        运行的过程中打印sql语句-->
        <setting name="logImpl" value="log4j"/>
    </settings>
<!--    数据库连接的基本信息-->
    <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/mydb3?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="Shw@root"/>
            </dataSource>
        </environment>
    </environments>

<!--    操作数据库的mapper接口(StudentMapper)所在的包-->
    <mappers>
        <package name="com.bky.mapper"/>
    </mappers>
</configuration>

为了方便调试,我们还要通过日志打印sql语句,之前已经引入日志依赖了,那么还要建立一个日志配置文件log4j.properties

log4j.rootLogger=debug,console,logFile
log4j.additivity.org.apache=true
log4j.logger.org.mybatis=INFO
log4j.logger.java.sql=INFO
log4j.logger.java.sql.Statement=INFO
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.java.sql.PreparedStatement=INFO
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=debug
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile=org.apache.log4j.FileAppender
log4j.appender.logFile.Append=true
log4j.appender.logFile.File=D:/logs/log.log4j
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] -%m%n

 好的,以上准备工作结束。我来截个图给大家看看。

posted @   诸葛匹夫  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示