如何利用MyBatis完成web项目的环境搭建(导入核心依赖包、日志、编译环境,配置文件以及Druid连接池)

目录

项目环境搭建

servlet实例

核心依赖

导入日志

编译环境

mapper注册

resouces中

dao中

MyBatis配置文件

实例效果

导入配置文件

Druid连接池

Druid连接池是什么?

如何配置Druid连接池?

实体类

实例效果


项目环境搭建

1.在pom.xml中变为war包: <packaging>war</packaging>

2.在main目录下新建webapp/WEB-INF; 并创建web.xml

<dependency>
    <!-- servlet编译环境 -->
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <!-- jsp编译环境 -->
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

servlet实例

在src/main/java目录下创建Servlet类及注解映射路径即可开启web访问

@WebServlet("/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello,maven!!!");
    }
}

核心依赖

在pom.xml导入MyBatis核心依赖

 <!--MyBatis核心依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--MySql驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

导入日志

在pom.xml配置文件中导入日志,对于我们后续排查问题会很有帮助

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

可知日志中给我们提供了相关信息,方便我们之后排查问题

i:myBatis的配置,得出框架的关键信息,以及开启了事务

ii:使用预处理执行对象进行操作的

DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@759d26fb]
DEBUG [main] - ==>  Preparing: SELECT count(0) FROM t_student 
DEBUG [main] - ==> Parameters: 
DEBUG [main] - <==      Total: 1
DEBUG [main] - ==>  Preparing: select * from t_student LIMIT ? 
DEBUG [main] - ==> Parameters: 5(Integer)
DEBUG [main] - <==      Total: 5
首页:1
尾页:5
当前页:1
页数量:5

iii:编写日志的配置文件放入资源目录,名字必须log4j.properties

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# 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

编译环境

<dependency>
            <!-- jstl 支持 -->
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <!-- servlet编译环境 -->
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <!-- jsp编译环境 -->
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

mapper注册

resouces中

一般mapper.xml默认在resources中单独设立一个mapper文件

<mappers>
        <!--注册Mapper文件的所在位置-->
        <mapper resource="xxxMapper.xml"/>
    </mappers>
dao中

一般mapper.xml也可以放在导中,这样要先在pom.xml中配置下列文件

<build>
    <resources>
        <resource>
            <!-- 将src/main/java构建成资源路径 -->
            <directory>src/main/java</directory>
            <includes>
                <!-- java下包含多级路径下的任何xml文件 -->
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

之后修改MyBtis配置文件中的mappers的路径

<mappers>
         <mapper resource="com/csdn/dao/xxxxMapper.xml"></mapper>
    </mappers>

MyBatis配置文件

在进行项目之前我们要先把配置文件抽取出来

实例效果

<properties resource="db.properties"></properties>
导入配置文件
<environments default="mysqlDB">
        <environment id="mysqlDB">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="org.apache.ibatis.datasource.pooled.PooledDataSourceFactory">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

Druid连接池

在这里我们使用上面的datasource时传入的时MyBatis自带的连接池,在平常测试时使用绰绰有余,但如果考虑提升性能的话就会考虑使用Druid连接池

Druid连接池是什么?

Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL 解析器组成。该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计 SQL 信息、SQL 性能收集、SQL 注入检查、SQL 翻译等,程序员可以通过定制来实现自己需要的功能。

Druid是目前性能最好的连接池

如何配置Druid连接池?

i:在pom.xml中导入核心依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.18</version>
</dependency>

ii:再utils中创建自定义deDruid的类集成mtbatis连接词功能,构造方法中传入Druid数据源

public class MyDruidFactory extends PooledDataSourceFactory {
    public MyDruidFactory(){
        this.dataSource=new DruidDataSource();
    }
}

iii:在maybatis配置中引入ii中自定义的Druid的类

<environments default="mysqlDB">
        <environment id="mysqlDB">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="com.qf.utils.MyDruidFactory">
                <property name="driverClass" value="${driver}"></property>
                <property name="jdbcUrl" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

实体类

有两种方法选其一即可

定义类的别名

<typeAliases>
    <typeAlias type="com.yj.user" alias="user" />
 </typeAliases>

在MyBatis.xml中设置,以原类名作为别名

<typeAliases>
        <package name="com.yj.entity"/>
    </typeAliases>
实例效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值