A.CTable开源框架Mybatis增强⾃动创建表更新表结构实现类似hibernate共。。
。
mybatis-enhance-actable-1.3.1.RELEASE
项⽬已更新既⽀持传统Spring项⽬也⽀持Springboot项⽬,同时⽀持tk.mybatis能够⽀持更强⼤的CUDR(为避免框架直接冲突,需⾃⾏依赖,依赖即可⽤),强强联合,最新⽂档地址。
不⽤再为mybatis⽆法⾃动创建表,不提供基本的增删改查⽽苦恼啦!有了A.CTable这将不再成为你苦恼的理由,⽽且学习简单,只要进⾏简单的配置,然后稍微看下源码注解就可以上⼿了,A.CTable使⽤的是jdk1.7,⼤家使⽤时注意下,jdk版本和编码格式UTF-8的问题。
继之前的两篇⽂章阐述,我的第⼀个开源项⽬Mybatis_BuildTable_V0.2之后
新版本的Mybatis增强⾃动创建表框架A.CTable应运⽽⽣,初衷是为了将⼀系列技术融汇贯通到⼀个框架中,让
⼤家不⽤为了搭框架困恼,所以之前那版Mybatis_BuildTable_V0.2项⽬结构复杂,让使⽤的⼩伙伴感觉很不爽,因此根据⼤家提出的意见,我将⽼项⽬中的代码重新提取了重构了⼀下,并修复了⼀系列bug。
后来想着要取个什么名字好呢,想来想去还是Auto Create Table——A.CTable(ps:笑哭表情)
回归正题,之前两篇⽂章已经对该A.CTable做了技术以及⽤途⽅⾯的讲解,因此我这⾥就不再详细描述了,直接把项⽬⾥的使⽤说明贴过来给⼤家过过眼。
A.CTable使⽤说明
该项⽬是从之前写过的⼀个框架中抽取出来的,本⾝是对Mybatis做的增强功能,为了能够使习惯了hibernate框架的开发者能够快速的⼊⼿Mybatis,我给他取名叫做 “A.CTable” 本意是⾃动建表的意思,A.CTable是⼀个基于Spring和Mybatis的Maven项⽬,增强了Mybatis的功能,过配置model注解的⽅式来创建表,修改表结构,并且实现了共通的CUDR功能提升开发效率,⽬前仅⽀持Mysql,后续可能会扩展针对其他数据库的⽀持。
A.CTable是采⽤了Spring、Mybatis技术的Maven结构,详细介绍如下:
**>#### mybatis增加功能⾃动创建表——A.CTable版本说明>>>#**
1. 该版本修复了修改主键同时修改其类型引起的error
2. 该版本修复了根据model创建时没有创建⽗类中的字段的问题(ps:⽬前只⽀持扫描⼀层继承)
3. 该笨笨增加了对唯⼀约束的⽀持
4. 从原有的框架中剥离出来,⽀持任意结构的spring+mybatis的框架使⽤
5. 再次声明A.CTable⽬前仅⽀持mysql数据库
使⽤步骤⽅法
1.使⽤该功能的项⽬需要依赖mybatis-enhance-actable-0.0.1-SNAPSHOT.jar
2.在你的web项⽬上创建个⽬录⽐如config下⾯创建个⽂件autoCreateTable.properties⽂件的内容如下:
mybatis.table.auto=update
本系统提供三种模式:
1. 当mybatis.table.auto=create时,系统启动后,会将所有的表删除掉,然后根据model中配置的结构重新建表,该操作会破坏原有数
据。
2. 当mybatis.table.auto=update时,系统会⾃动判断哪些表是新建的,哪些字段要修改类型等,哪些字段要删除,哪些字段要新增,
该操作不会破坏原有数据。
3. 当mybatis.table.auto=none时,系统不做任何处理。
4. del.pack这个配置是⽤来配置要扫描的⽤于创建表的对象的包名
5. spring的配置⽂件中需要做如下配置:
<!-- ⾃动扫描(⾃动注⼊mybatis-enhance-actable的Manager)必须要配置,否则扫描不到底层的mananger⽅法 -->
<context:component-scan base-package="com.batis.actable.manager.*" />
<!-- 这是mybatis-enhance-actable的功能开关配置⽂件,其实就是将上⾯第2点说的autoCreateTable.properties⽂件注册到spring中,以便底层的mybatis-enha nce-actable的⽅法能够获取到-->
<bean id="configProperties" class="org.springframework.fig.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath*:config/autoCreateTable.properties</value>
</list>
</property>
</bean>
<bean id="propertyConfigurer" class="org.springframework.fig.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties" />
</bean>
<!-- mybatis的配置⽂件中需要做两项配置,因为mybatis-enhance-actable项⽬底层是直接依赖mybatis的规范执⾏sql的,因此需要将其中的mapping和dao映射到⼀起 -->
1. classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml
2. com.batis.actable.dao.*
举例这两个配置配置的详细位置
<!-- myBatis⽂件 -->
<bean id="sqlSessionFactory" class="batis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- ⾃动扫描entity⽬录, 省掉l⾥的⼿⼯配置 -->
<property name="mapperLocations">
<array>
<value>classpath*:com/sunchenbin/store/mapping/*/*.xml</value>
<value>classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml</value>
</array>
</property>
<property name="typeAliasesPackage" value="com.del.*" />
<!-- <property name="configLocation" value="classpath:l" /> -->
</bean>
<bean class="batis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.sunchenbin.store.dao.*;com.batis.actable.dao.*" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
代码⽤途讲解
1. SysMysqlColumns.java这个对象⾥⾯配置的是mysql的数据类型,这⾥配置的类型越多,意味着创建
表时能使⽤的类型越多
spring系列框架有哪些2. LengthCount.java是⼀个⾃定义的注解,⽤于标记在SysMysqlColumns.java⾥⾯配置的数据类型上的,标记该类型需要设置⼏个
长度,如datetime/varchar(1)/decimal(5,2),分别是需要设置0个1个2个
3. Column.java也是⼀个⾃定义的注解,⽤于标记model中的字段上,作为创建表的依据如不标记,不会被扫描到,有⼏个属性⽤来设
置字段名、字段类型、长度等属性的设置,详细请看代码上的注释
4. Table.java也是⼀个⾃定义的注解,⽤于标记在model对象上,有⼀个属性name,⽤于设置该model⽣成表后的表名,如不设置该注
解,则该model不会被扫描到
5. 系统启动后会去⾃动调⽤SysMysqlCreateTableManagerImpl.java的createMysqlTable()⽅法,没错,这就是核⼼⽅法了,负责创
建、删除、修改表。
共通的CUDR功能使⽤
1. 使⽤⽅法很简单,⼤家在manager或者Controller中直接注⼊BaseMysqlCRUDManager调⽤CUDR⽅法传⼊的对象参数即可。
2. 注意:参数对象必须是你要操作表的model对象否则会报错
Gitee代码的地址
Github代码地址
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
reactive声明
下一篇 »
发表评论