项目中使用Mybatis

适合于新手迅速搭建一个mybatis项目,里面涉及到的日志等其他jar,以及mybatis具体细节使用,请看前面的文章,谢谢观看。

一、java包

1.1 mapper包

这个包中主要放一个有个一个实体类操作数据库的接口与xml文件
在这里插入图片描述

⭐mapper.xml的配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jzq.dao.BlogMapper">
    <!--缓存-->
    <!--sql操作标签-->
</mapper>

⭐具体例子:

mapper.java代码:

package com.jzq.dao;

import com.jzq.pojo.Blog;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BlogMapper {
    // 查询一个文章
    Blog queryBlog(@Param("bid") String bid);

    // 插入一篇文章
    int insertBlog(Map<String, Object> map);
}

mapper.xml代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jzq.dao.BlogMapper">
    <!--配置二级缓存-->
    <!--<cache eviction="FIFO"-->
    <!--       flushInterval="60000"-->
    <!--       size="512"-->
    <!--       readOnly="true"/>-->
    <cache/>
    <select id="queryBlog" parameterType="string" resultType="Blog" useCache="true">
        select * from mybatis.blog
        <where>
            bid = #{bid}
        </where>
    </select>


    <insert id="insertBlog" parameterType="map">
        insert into blog values(#{bid}, #{name}, #{title}, #{first_score})
    </insert>
</mapper>

1.2 utils包

这个包主要放一些工具类,以及⭐MybatisUtils类⭐!!!

在这里插入图片描述

⭐ MybatisUtils代码如下:

构建SqlSessionFactory:构建SqlSession的工厂类,需要通过mybatis-config.xml文件。
重载生成SqlSession的方法,自动提交事务与非自动提交事务!

package com.jzq.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 MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory;

    // 从 XML 中构建 SqlSessionFactory
    // 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 既然 有了 SqlSesstionFactory, 顾名思义,我们就可以从中获得SqlSession的实例了
    // SqlSession 完全包含了面向数据库执行SQL命令所需的所有方法。

    public static SqlSession getSqlSession(Boolean commitFlag) {
        // 传参为 true 表示, 自动提交事务
        SqlSession sqlSession = sqlSessionFactory.openSession(commitFlag);
        return sqlSession;
    }

    public static SqlSession getSqlSession() {
        // 传参为 true 表示, 自动提交事务
        SqlSession sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }
}

二、resources包

这个包放一些静态文件,配置文件,例如日志:log4.properties、数据库连接数据: db.properties、mybatis核心配置文件: mybatis-config.xml

在这里插入图片描述

2.1 log4.properties

xml配置如下: (注意修改自己的log输出路径)log4j.appender.file.File=./log/com.jzq.log

log4j.rootLogger=DEBUG,console,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n

#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/com.jzq.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

2.2 db.properties

这里就是连接数据库需要配置的参数,根据自己情况填写!
⭐这是是mybatis-config.xml引入的参数,也可以在mybatis-config.xml设置,账号和密码就在下面的mybatis-config.xml中设置的!!!

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://x.x.x.x:3306/xxxxx?userSSL=true&useUnicode=true&charaterEncoding=UTF-8"

2.3 重要的mybatis-config.xml

非常重要的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 是mybatis的核心配置文件-->
<configuration>

    <!--  引入静态文件  -->
    <properties resource="db.properties">
        <property name="username" value="xxxxxxx"/>
        <property name="password" value="xxxxxxxxx"/>
    </properties>

    <settings>
        <setting name="logImpl" value="LOG4j"/>
        <!--   将数据库的表中的字段的_自动转换成驼峰式     -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--  开启二级缓存  -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!--  可以给实体类起别名  -->
    <!--  指定一个固定类,为其起别名  -->
    <typeAliases>
        <typeAlias type="com.jzq.pojo.Blog" alias="Blog"></typeAlias>
    </typeAliases>

    <!--  指定一个包名, Mybatis会在包名下面搜索Java Bean, 其包下的类默认都是小写字母开头类名-->
<!--    <typeAliases>-->
<!--        <package name="com.com.jzq.pojo"/>-->
<!--    </typeAliases>-->

    <environments default="development">
        <environment id="development">
            <!-- 事务管理-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--  每个mapper.xml都需要在Mybatis核心配置文件中注册!-->
    <mappers>
<!--        <mapper resource="com/jzq/dao/student/StudentMapper.xml"/>-->
        <mapper resource="com/jzq/dao/BlogMapper.xml"/>
    </mappers>
</configuration>

三、pom中需要注意的(Maven项目)

3.1 常用jar包引入

在dependencies标签内引入用到的jar包

<dependencies>
    ... 具体在下文介绍
</dependencies>

⭐测试的jar:junit

	<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

⭐导入mysql的配置文件的jar: mysql-connector-java

	<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.22</version>
    </dependency>

⭐ mybatis的jar:

	<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

⭐ 日志log4j的jar:

	<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

⭐lombok 的jar:

实体类不写代码的jar,不推荐用!

	<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
      <scope>provided</scope>
    </dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值