### JDBC
JDBC持久化模块针对关系型数据库(RDBMS)数据存取的一套简单解决方案,主要关注数据存取的效率、易用性和透明,其具备以下功能特征:
- 基于JDBC框架API进行轻量封装,结构简单、便于开发、调试和维护;
- 优化批量数据更新、标准化结果集、预编译SQL语句处理;
- 支持单实体ORM操作,无需编写SQL语句;
- 提供脚手架工具,快速生成数据实体类,支持链式调用;
- 支持通过存储器注解自定义SQL语句或从配置文件中加载SQL并自动执行;
- 支持结果集与值对象的自动装配,支持自定义装配规则;
- 支持多数据源,默认支持C3P0、DBCP、JNDI连接池配置,支持数据源扩展;
- 支持多种数据库(如:Oracle、MySQL、SQLServer、SQLite、H2、PostgreSQL等);
- 支持面向对象的数据库查询封装,有助于减少或降低程序编译期错误;
- 支持数据库事务嵌套;
- 支持数据库视图和存储过程;
#### Maven包依赖
<dependency>
<groupId>net.ymate.platform</groupId>
<artifactId>ymate-platform-persistence-jdbc</artifactId>
<version><VERSION></version>
</dependency>
> **注**:在项目的pom.xml中添加上述配置,该模块已经默认引入核心包及持久化基础包依赖,无需重复配置。
#### 模块初始化配置
#-------------------------------------
# JDBC持久化模块初始化参数
#-------------------------------------
# 默认数据源名称,默认值为default
ymp.configs.persistence.jdbc.ds_default_name=
# 数据源列表,多个数据源名称间用'|'分隔,默认为default
ymp.configs.persistence.jdbc.ds_name_list=
# 是否显示执行的SQL语句,默认为false
ymp.configs.persistence.jdbc.ds.default.show_sql=
# 是否开启堆栈跟踪,默认为false
ymp.configs.persistence.jdbc.ds.default.stack_traces=
# 堆栈跟踪层级深度,默认为0(即全部)
ymp.configs.persistence.jdbc.ds.default.stack_trace_depth=
# 堆栈跟踪包名前缀过滤,默认为空
ymp.configs.persistence.jdbc.ds.default.stack_trace_package=
# 数据库表前缀名称,默认为空
ymp.configs.persistence.jdbc.ds.default.table_prefix=
# 数据源适配器,可选值为已知适配器名称或自定义适配置类名称,默认为default,目前支持已知适配器[default|dbcp|c3p0|jndi|...]
ymp.configs.persistence.jdbc.ds.default.adapter_class=
# 数据库类型,可选参数,默认值将通过连接字符串分析获得,目前支持[mysql|oracle|sqlserver|db2|sqlite|postgresql|hsqldb|h2]
ymp.configs.persistence.jdbc.ds.default.type=
# 数据库方言,可选参数,自定义方言将覆盖默认配置
ymp.configs.persistence.jdbc.ds.default.dialect_class=
# 数据库引用标识符,默认为空
ymp.configs.persistence.jdbc.ds.default.identifier_quote=
# 数据库连接驱动,可选参数,框架默认将根据数据库类型进行自动匹配
ymp.configs.persistence.jdbc.ds.default.driver_class=
# 数据库连接字符串,必填参数
ymp.configs.persistence.jdbc.ds.default.connection_url=
# 数据库访问用户名称,必填参数
ymp.configs.persistence.jdbc.ds.default.username=
# 数据库访问密码,可选参数,经过默认密码处理器加密后的admin字符串为wRI2rASW58E
ymp.configs.persistence.jdbc.ds.default.password=
# 数据库访问密码是否已加密,默认为false
ymp.configs.persistence.jdbc.ds.default.password_encrypted=
# 数据库密码处理器,可选参数,用于对已加密数据库访问密码进行解密,默认为空
ymp.configs.persistence.jdbc.ds.default.password_class=
配置参数补充说明:
> 数据源的数据库连接字符串和用户名是必填项,其它均为可选参数,最简配置如下:
>
> >ymp.configs.persistence.jdbc.ds.default.connection_url=jdbc:mysql://localhost:3306/mydb
> >
> >ymp.configs.persistence.jdbc.ds.default.username=root
>
> 为了避免明文密码出现在配置文件中,YMP框架提供了默认的数据库密码处理器,或者通过IPasswordProcessor接口自行实现;
>
> >net.ymate.platform.core.support.impl.DefaultPasswordProcessor
#### 通过代码手工初始化模块示例
// 创建YMP实例
YMP owner = new YMP(ConfigBuilder.create(
// 设置JDBC模块配置
ModuleCfgProcessBuilder.create().putModuleCfg(
DatabaseModuleConfigurable.create().defaultDataSourceName("default").addDataSource(
DataSourceConfigurable.create("default")
.connectionUrl("jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=UTF-8")
.username("root")
.password("wRI2rASW58E")
.passwordEncrypted(true)
.adapterClass("c3p0")
.tablePrefix("ym_")
.showSql(true)
.stackTraces(true))).build())
.proxyFactory(new DefaultProxyFactory())
.developMode(true)
.runEnv(IConfig.Environment.PRODUCT).build());
// 向容器注册模块
owner.registerModule(JDBC.class);
// 执行框架初始化
owner.init();
#### 数据源(DataSource)
##### 多数据源连接
JDBC持久化模块默认支持多数据源配置,下面通过简单的配置来展示如何连接多个数据库:
# 定义两个数据源分别用于连接MySQL和Oracle数据库,同时指定默认数据源为default(即MySQL数据库)
ymp.configs.persistence.jdbc.ds_default_name=default
ymp.configs.persistence.jdbc.ds_name_list=default|oracledb
# 连接到MySQL数据库的数据源配置
ymp.configs.persistence.jdbc.ds.default.connection_url=jdbc:mysql://localhost:3306/mydb
ymp.configs.persistence.jdbc.ds.default.username=root
ymp.configs.persistence.jdbc.ds.default.password=123456
# 连接到Oracle数据库的数据源配置
ymp.configs.persistence.jdbc.ds.oracledb.connection_url=jdbc:oracle:thin:@localhost:1521:ORCL
ymp.configs.persistence.jdbc.ds.oracledb.username=ORCL
ymp.configs.persistence.jdbc.ds.oracledb.password=123456
从上述配置中可以看出,配置不同的数据源时只需要定义数据源名称列表,再根据列表逐一配置即可;
##### 连接池配置
JDBC持久化模块提供的数据源类型如下:
- default:默认数据源适配器,通过DriverManager直接连接数据库,建议仅用于测试;
- c3p0:基于C3P0连接池的数据源适配器;
- dbcp:基于DBCP连接池的数据源适配器;
- jndi:基于JNDI的数据源适配器;
只需根据实际情况调整对应数据源名称的配置,如:
ymp.configs.persistence.jdbc.ds.default.adapter_class=dbcp
针对于dbcp和c3p0连接池的配置文件及内容,请将对应的dbcp.properties或c3p0.properties文件放置在工程的classpath根路径下,配置内容请参看JDBC持久化模块开源工程中的示例文件;
当然,也可以通过IDataSourceAdapter接口自行实现,框架针对IDataSourceAdapter接口提供了一个抽象封装AbstractDataSourceAdapter类,直接继承即可;
##### 数据库连接持有者(IConnectionHolder)
用于记录真正的数据库连接对象(Connection)原始的状态及与数据源对应关系;
#### 数据实体(Entity)
##### 数据实体注解
- @Entity:声明一个类为数据实体对象;
> value:实体名称(数据库表名称),默认采用当前类名称;
@Entity("tb_demo")
public class Demo {
//...
}
- @Id:声明一个类成员为主键;
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的开发源码-YMP轻量级Java应用开发框架.zip
共632个文件
java:585个
xml:17个
md:11个
0 下载量 61 浏览量
2024-02-27
21:36:00
上传
评论
收藏 1.11MB ZIP 举报
温馨提示
基于java的开发源码-YMP轻量级Java应用开发框架.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java的开发源码-YMP轻量级Java应用开发框架.zip (632个子文件)
Entity.ftl 6KB
View.ftl 4KB
EntityPK.ftl 2KB
BaseEntity.ftl 365B
.gitignore 149B
DefaultSession.java 47KB
TreeObject.java 40KB
Func.java 32KB
EntityMeta.java 23KB
WebUtils.java 23KB
WebMVC.java 23KB
ClassUtils.java 22KB
InterceptSettings.java 20KB
BlurObject.java 20KB
StringEscapeUtils.java 19KB
LogLogger.java 18KB
ExecutableQueue.java 18KB
ResultSetHelper.java 18KB
ConfigBuilder.java 18KB
YMP.java 17KB
FileUploadHelper.java 17KB
DefaultRequestProcessor.java 17KB
DefaultBeanFactory.java 16KB
CodecUtils.java 16KB
Cfgs.java 16KB
BaseEntity.java 15KB
EntityGenerator.java 14KB
WebResult.java 13KB
DefaultPluginFactory.java 13KB
AbstractDialect.java 13KB
RequestMeta.java 12KB
DefaultWebMvcModuleCfg.java 12KB
AbstractConfigurationProvider.java 11KB
RedisCacheWrapper.java 11KB
Operator.java 11KB
Cond.java 11KB
MongoSession.java 11KB
ISession.java 11KB
CookieHelper.java 11KB
JDBC.java 10KB
RequestExecutor.java 10KB
Servs.java 10KB
Logoo.java 10KB
DefaultBeanLoader.java 10KB
JCLogger.java 10KB
WebContext.java 10KB
ThreadUtils.java 10KB
IWebMvcModuleCfg.java 9KB
AbstractNioSession.java 9KB
ValidationMeta.java 9KB
InterceptProxy.java 9KB
Select.java 9KB
DefaultWebErrorProcessor.java 9KB
XMLConfigFileParser.java 9KB
BinaryView.java 9KB
FileUtils.java 9KB
RuntimeUtils.java 9KB
AbstractNioEventProcessor.java 9KB
DefaultRedisModuleCfg.java 9KB
Redis.java 8KB
WebCacheHelper.java 8KB
ErrorCode.java 8KB
PropertyStateSupport.java 8KB
WebMvcModuleConfigurable.java 8KB
DateTimeUtils.java 8KB
DefaultLogger.java 8KB
ParameterMeta.java 8KB
ConsoleTableBuilder.java 8KB
TableInfo.java 8KB
Validations.java 8KB
MySQLDialect.java 8KB
IMongoSession.java 7KB
Plugins.java 7KB
ConfigInfo.java 7KB
Update.java 7KB
I18N.java 7KB
AbstractSessionManager.java 7KB
DefaultProcedureOperator.java 7KB
DataSourceCfgMeta.java 7KB
RepoProxy.java 7KB
RedisDataSourceConfigurable.java 7KB
NetworkUtils.java 7KB
DefaultRequestMappingParser.java 7KB
DefaultEventProvider.java 7KB
IConfigFileParser.java 7KB
MongoGridFSSession.java 7KB
DefaultDatabaseModuleCfg.java 7KB
Caches.java 7KB
AbstractOperator.java 7KB
Type.java 7KB
XMLRequestProcessor.java 7KB
DefaultServerCfg.java 7KB
PropertyConfigFileParser.java 7KB
Query.java 6KB
EhCacheWrapper.java 6KB
DefaultInterceptorRuleProcessor.java 6KB
DefaultClientCfg.java 6KB
NioSessionManager.java 6KB
IDialect.java 6KB
SessionMap.java 6KB
共 632 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
易小侠
- 粉丝: 6449
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功