MyBatis——MyBatis开发流程

MySql驱动依赖日志依赖:Log4J测试依赖:junit连换池依赖

这些都是项目基础的依赖配置,后面根据项目需求可添加其他的依赖项,比如:分页组件依赖等。我们是在pom.xml文件中配置的,在pom.xml文件中的project标签中加入下面的信息:

org.mybatis

mybatis

3.4.6

mysql

mysql-connector-java

5.1.25

log4j

log4j

1.2.17

junit

junit

4.12

test

com.alibaba

druid

1.1.16

我这里选用的连接池是阿里的druid连接池,目前来说应该是比较好的连接池了,大家可根据自己的需求自行调整,更换其他的连接池。

依赖的版本之间可能存在冲突现象,大家可选择普遍都用的版本,可参考Maven存储库。


3.0创建并编写MyBatis配置文件(mybatis-config.xml)

=======================================

在resources目录下创建「mybatis-config.xml』配置文件,这个文件就是我们MyBatis项目的配置文件,之后我们也要通过它来创建SqISessionFactory对象,因一步来创建SqlSession对象。

mybatis-conf ig.xml』初始模板:

<?xml version="1.0" encoding="UTF-8"?>

我们是在configuration标签中添加我们的配置项的,配置项是有顺序的,必须依照官方给的顺序从上往下依次放置,否则会导致一些问题,比如配置失效等。

3.1数据库配置信息(jdbc.properties )

============================

MyBatis要和数据库打交道,那肯定需要连换数据库了,所以,我们现在要配置的就是数据库信息。首先,在resources目录下创建『jdbc.properties』配置文件,这个是数据库配置文件,在里面添加如下信息:

org.mybatis

mybatis

3.4.6

mysql

mysql-connector-java

5.1.25

log4j

log4j

1.2.17

junit

junit

4.12

test

com.alibaba

druid

1.1.16

大家根据自己的信息,替换配置中的{XXX]。上面这个是MySQL的连换配置,如果大家连接的是其他数据库的话,可更该此配置中的信息。

然后,我们需要『mybatis-config.xml』的configuration标签中配置相关信息:大家根据自己的信息,替换配置中的{XXX]。上面这个是MySQL的连换配置,如果大家连接的是其他数据库的话,可更该此配置中的信息。

然后,我们需要『mybatis-config.xml』的configuration标签中配置相关信息:

我们导入了jdbc的配置文件,然后在environments标签项中配置相关信息,default属性和id属性可根据自己意愿填写(其实就是个名字而已),我们在这选用的是MyBatis默认的连换池,dataSource 标签的type属性就是,之后我们可选择更改性能更好的连换池。

其他的配置信息应和上述配置一致。

3.2日志配置信息( log4j.properties )

=============================

我们之前已经导入了Log4j日志框架的依赖,这个日志框架可以帮我们输出日志信息,以便我们更好的调试可开发项目。我们还需要做的是编写一个日志配置文件,填写相关配置信息。

在resources目录下创建『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

好了,日志配置已完成,MyBatis会自动检索配置信息。

4.0创建表(数据库表)

============

在刚才『jdbc. properties』配置文件中所填的数据库中创建数据表,我们在这以users表为例:

CREATE TABLE users (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL,

password varchar(50) DEFAULT ‘12345’,

sex varchar(1) DEFAULT NULL,

birthday datetime DEFAULT NULL,

registtime datetime DEFAULT NULL,

PRIMARY KEY (id)

)DEFAULT CHARSET=utf8;

创建成功后,在表中添加一些信息,如:


5.0创建实体映射(entity实体)

===================

好了,我们需要创建一个实体,来对应数据库中的表中的数据项。

在java目录下创建com.entity实体类包,在包中创建User实体类:

User实体类的属性要和数据表的字段对应,类型和名字要相同,最好使用驼峰命名法,因为当MyBatis从数据库中得到数据后时进行set注入的,就是调用对应属性名字的set方法进行赋值,如果属性名字不一致,MyBatis就无法找到其set方法,其值会为默认值。

当名字不一致时我们的解决方法是:Sql语句加别名或者添加关系映射(推荐使用)。

例如下面的User实体的最后一个属性名就和数据表的最后一个字段名不一致,我们在后面会进行处理。User实体类如下:

<?xml version="1.0" encoding="UTF-8"?>

5.1定义别名

=======

我们还需要在MyBatis配置文件『mybatis-config.xml』中为我们的实体类定义别名,这样我们就不用总带着包名一起来书写了,可以提高我们的书写效率。

定义别名有两种方式,一般我们选择第二种:

我们还需要在MyBatis配置文件『mybatis-config.xml』中为我们的实体类定义别名,这样我们就不用总带着包名一起来书写了,可以提高我们的书写效率。

定义别名有两种方式,一般我们选择第二种:


6.0创建Dao层

=========

换下来我们要编写数据访问层了,也就是DAO层。

在java目录下创建一个包:com. Dao.

6.1创建xxDao接口文件

==============

在刚才所创建的包内创建User实体类所对应的Dao接口文件:UserDao. java.

在这个接口文件中,定义我们要对数据进行的操作方法,如:

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/{数据库名}?useUnicode=true&characterEncoding=utf-8

jdbc.username={用户名}

jdbc.password={密码}

在上面的方法中涉及到参数的传递,也就是参数绑定方式,常见的参数绑定方式有:

序号参数绑定

注解参数绑定(推荐)Map参数绑定

对象参数绑定

我们上面所用的就是注解参数绑定,因为篇幅考虑,就不做过多阐述了。

6.2创建xxDaoMapper.xml配置文件

========================

创建了上面的这些方法,如何去实现它们呢?

这就要靠我们的Mapper配置文件了,一个Dao接口文件对应一个Mapper配置文件。MyBatis替我们封装了数据访问的其他操作,我们只需要关注Sql语句本身就可以了,而Sql语句写在哪呢?就是Mappe配置文件中。

在com. Dao包中创建Mapper配置:UserDaoMapper. xml。


7.0配置xxDaoMapper.xml

====================

下面是Mapper文件的初始模板:

mapper标签中的namespace属性是我们这个Mapper文件所对应的Dao接口文件,mapper标签中书写Dao接口中每个方法所对应的Sql语句。

上面的Dao接口所对应的完整Mapper配置如下:

<?xml version="1.0" encoding="UTF-8" ?>

select id, name, password,sex,birthday,registtime

from s_user where

select * from s_user

id = #{id}

name like concat(‘%’,#{keyword},‘%’)

SELECT LAST_INSERT_ID()

insert into s_user

values(#{id},#{name},#{password},#{sex},#{birthday},#{registTime})

delete from s_user

where id=#{id}

update s_user set name=#{name},password=#{password},sex=#{sex},birthday=#{birthday},

registtime=#{registTime} where id=#{id}

resultMap 标签就是我们上面提到的属性关系映射,来解决字段名不一致的问题,当我们需要用的时候,将select标签的resultType属性改为resultMap就可以了。

每种操作有对应的标签,id就是其方法名,后面是传递的值类型。

7.1注册Mapper

===========

写完Mapper后,是需要注册的,在『mybatis-config.xml』的configuration标签内添加如下信息:

注册成功后,MyBatis才会去寻找这个配置文件。

7.2配置编译路径

=========

此时这个配置文件,MyBatis是找不到的,为什么呢?因为MyBatis只会自动查找resources目录下的配置文件,而我们的Mapper配置文件并不在resources目录下。那如何解决呢?

我们需要在pom.xml文件的project标签中添加如下信息:

org.mybatis

mybatis

3.4.6

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值