Mybatis入门使用

参考官网:https://mybatis.net.cn/getting-started.html

1.新建Maven项目,新建——选择SDK找到jdk包——填入GroupId和ArtifactId——选择路径——完成

GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
  groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织
  比如我创建一个项目,我一般会将groupId设置为cn.xx,cn表示域为中国,xx任意,artifactId设置为testProject,表示你这个项目的名称是testProject,依照这个设置,你的包结构是cn.xx.testProject打头的,如果有个StudentDao,它的全路径就是cn.xx.testProj.dao.StudentDao

2.【配置Mybatis环境】导入Mybatis的jar包+导入Mysql的jar包,在pom.xml中编辑

<packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
    </dependencies>
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>

 

3.连接数据库,在resource目录里新建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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/数据库名?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
</configuration>
数据库
复制代码
复制代码
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
<!--    configuration内,environments外-->
日志(同数据库文件中)
复制代码
复制代码
<!--        日志-->
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.1</version>
        </dependency>
日志(pom.xml文件中)
复制代码
复制代码
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.com.cyk.mapper=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
日志(新建log4j.properties文件写入)
复制代码

配置三种datasource type[三种数据源:UNPOOLED、POOLED、JNDI]

还有很多可以在 XML 文件中配置的选项,上面的示例仅罗列了最关键的部分。 注意 XML 头部的声明,它用来验证 XML 文档的正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。

 

4.【业务代码编写and测试】在src/main/java文件里新建包[domian(实体类),dao(接口),test(测试)]

在写实体类的时候需要实现序列化接口,才能保证数据传输

implements Serializable

 写完实体类,接口,然后到test包里写测试程序,在函数前如需要引用@Test/@After/@Before等时候,(自动)会在pom.xml文件里增添以下代码(选择到+Alt+Enter)

     <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

然后就是在业务程序中 构建 SqlSessionFactory、获取 SqlSession ,写具体业务程序

【SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。】

复制代码
String resource = "my.xml";
InputStream in = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = sqlSessionFactory.openSession(true);
Dao类 Dao类对象= session.getMapper(Dao类.class);
...
session.close();
in.close();
构建and获取会话参考代码
复制代码
复制代码
InputStream in;
SqlSession session;
Dao类 Dao类对象;
@Before
public void Init() throws IOException {
    String resource = "my.xml";
    in = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
    session = sqlSessionFactory.openSession(true);
    Dao类对象 = session.getMapper(Dao类.class);
}
@After
public void end() throws IOException {
    session.close();
    in.close();
}
函数形式
复制代码

【注:my.xml文件也就是前面配置数据连接的xml文件】

 

 5.在resource文件路径下,新建(接口层)Dao层同名路径,新建"实体类Mapper.xml"文件,在该文件中实现Dao层里的函数

复制代码
<?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="在java包下的Dao层全名路径">
    此处写入sql语句
</mapper>
参考code
复制代码

 

6.最后在配置数据库文件内<mappers></mappers>添加一组对应的映射器

<mapper resource="在resource包下实体类Mapper.xml的全名路径"></mapper>

 

7.可以测试业务程序了(数据库内需要先建实体类对应的表)

posted @   Renhr  阅读(22)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示