APP下载

基于mybatis的面向数据库自动生成技术

2014-07-01黄艳秀

河南科技 2014年4期
关键词:配置文件开发人员调用

黄艳秀

(河南省人才交流中心,河南郑州 450003)

基于mybatis的面向数据库自动生成技术

黄艳秀

(河南省人才交流中心,河南郑州 450003)

基于在项目开发中减少代码对数据库语言依赖性的目的,采用mybatis框架,通过自动生成类、接口和代码,结合Spring翻转注入的工厂方法,完成了对程序员的解放,降低了代码耦合度,增加项目的可移植性。

持久;映射;数据库连接;接口;耦合度;封装

在以JAVA语言为基础的面向对象设计的项目中,肯定需要对数据库进行连接。而JAVA中对象类都需要在数据库中有相对应的表,所以就需要去编写每一个类的每一个属性的数据库语句。但是在项目建设过程中会经常对对象类或者数据库中的表进行修改,那么每一次修改都需要再去修改相对应的数据库语句,那么每一次工作中,代码量是十分巨大的。Mybatis在这里向大家提供了一种可以根据数据库中的表自动生成数据库和java类的方法,十分便捷。

1 mybatis介绍

Mybatis本来是阿帕奇公司(即apache,tomcat出品公司)研究的一个面向广大用户的开源项目“ibatis”。其本意是Internet和abatis两个单词的组合,是提供给大家的一个持久层框架[1]。后来apache公司将其转让给了谷歌公司,并且更名为mybatis。Mybatis自动生成方式替代了几乎所有的JDBC代码和参数设置以及结果搜索。它通过简单的XML文件对原始映射和属性进行配置,直接生成接口和JAVA对象的数据库表或者将数据库表生成接口和JAVA类。Mybatis主要有三层主要功能框架:

1.1 API接口层:将自动生成的JDBC代码封装提供给生成类以外的类或程序使用的接口API,开发人员通过这些本地API对数据库进行操作。接口层一接收到外来调用请求就会调用数据处理层来完成具体的数据处理。

1.2 数据处理层:有具体的JDBC代码,是接口层接口的具体化代码,包括具体的SQL查找、解析、执行和执行结果反应处理等功能。它主要的目的是根据调用的API请求转为具体的代码,然后由代码完成一次数据库操作。

1.3 基础支撑层:负责最基础的管理功能,包括数据库连接和事务管理、数据库配置加载和缓存处理等内容,这些本应该是最基础的东西,将他们合成一个最基本的组件,为上层的数据处理层提供服务。

2 项目中mybatis应用方法

2.1 数据库配置

在底层数据库要将每一个需要调用的类配置成一个表的形式,并将数据类型和长度按照需要配置,如图1。

图1

在表中,一定只能配置一个主健,并且将主键的配置完成。如图中,id即为主键,且每一个属性名的类型都一定要选择清除,将长度配置完毕。

2.2 XML文件配置

Mybatis基本只需要两个最主要的XML文件,一个是mybatis-config.xml,一个是generatorConfig.xml,第一个是mybatis的功能配置文件,第二个是mybatis自动生成功能对表和类以及接口的配置文件。但是一般在项目中,mybatis是和Spring框架结合使用的,在Spring框架的applicationContext-database.xml配置文件中,要将mybatis配置进去,,代码如下:

可以看到,Spring也是讲mybatis功能当做一种反转注入的类工厂(Factory),用以数据(类)的调用。这样,mybatis就和Spring框架结合在一起了。在mybatis-config.xml中,将自动生成的所有接口的JDBC语言实现代码所在的文件配置进来,这样,mybatis工厂就可以自动查询到每一个接口及其代码。其方式如下:

下面重点介绍一下generatorConfig.xml文件,在其中,要将数据库的连接方式、账号密码等内容配置好,将自动生成的接口和JDBC语句所在文件夹配置好,还要将底层数据库的表和相对应的类配对好,写在一个table标签中,如下:

其中jdbcConnection标签是数据配置,table是表和类配置,名字要一一对应。

在下一部分命令运行中,所有的数据库表自动生成类、接口和数据库语句都是通过generatorConfig.xml配置好后,才能自动生成的,在以后项目建设的日子里,每当你对类和数据库进行了修改后,都只需要运行命令,就可自动生成文件,不再需要去人工修改代码、参数和配置[2]。

2.3 命令运行

在开发环境的服务器中,配置一句mybatis-generator: generate,运行,即可在配置文件所写的文件位置中自动生成需要的类、API接口和代码。这对于开发人员来讲,是一个解放程序员的进步。

3 应用结果

在上面的命令运行后,就在项目对应位置生成文件如图2。其中dao.*中的*Mapper.java是所有关于device这个类的API接口,包括增删改查和计数这些功能,而且每种还根据用户需要提供了不同种类的接口。在model.*中主要是生成了数据库中table所对应的java类和类的example,用于类的调用和注入值等功能。Map.*中是dao*中接口的数据库代码化[3]。其中把所有提供的接口和基础连接都已数据库语言表达出来。

图2

4 总结

Mybatis技术对DAO层进行了封装,使得开发人员不需要在做后台和页面开发的同时还要去关系数据库的链接和调用。在配置文件中将SQL语句自动生成且封装,避免了项目迁移时对数据库的依赖性,降低了代码的耦合度,增加了项目的可移植性。同时,又能让你了解到底层数据库的搭建,不至于对数据库完全不知晓。对J数据库语言的封装和API的生成,减少了程序员在开发过程中使用JDBC的机会,释放了大量开发时间,解放了开发人员。

[1]李澎林,朱国清,吴斌.基于iBatis SQL Map的数据持久层实现[J].应用研究,2008

[2]夏汛,陈玲.基于Spring MVC和Mybatis的动态表单设计[J].计算机光盘软件与应用,2012,20.

[3]徐雯,高建华.基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用,2012.7.

TP311

A

1003-5168(2014)04-0021-02

猜你喜欢

配置文件开发人员调用
提示用户配置文件错误 这样解决
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
核电项目物项调用管理的应用研究
Semtech发布LoRa Basics 以加速物联网应用
LabWindows/CVI下基于ActiveX技术的Excel调用
忘记ESXi主机root密码怎么办
基于系统调用的恶意软件检测技术研究
让Windows 10进入开发者模式
后悔了?教你隐藏开发人员选项