MyBatis Generator官网地址: http://www.mybatis.org/generator/index.html
MyBaris Generator中文地址: http://mbg.cndocs.ml/
在MBG中,最主要也最重要的,就是generatorConfig.xml配置文件了,本篇主要就是详细介绍该配置文件内的内容。
【1.文件头】 配置文件头:
【2.根节点】 为根节点,没有任何属性;如下:
【3.子元素】 主要有3个子元素,有严格的顺序;
1:(0个或多个)
2:(0个或多个)
3:(1个或多个)
【3.1.元素】 这个元素主要用来指定外部的属性元素,不是必须的元素。
元素用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以再配置中使用${property}的方式进行属性引用,通过这种方式引用属性文件中的属性值。比如常规的配置“jdbc”信息的引用:${url}, ${username}等
这个元素有两个属性resurce 和url ,分别为两种引入方式,两个属性只能使用其中一个,同时出现会报错。
【3.2.元素】 这个元素可以1个或多个,不受限制。
这个属性是引入需要依赖的jar路径,最常用的用法就是指定驱动程序的路径,例如:
注意 :classPathEntry只有在下面这两种情况下才有效:
1:当加载JDBC驱动内省数据库时;
2:当加载根类中的javaModelGenerator检查重写的方法时;
【3.3.元素】 在MBG的配置中,至少需要一个元素;
元素用于指定一组对象的环境。在运行MBG的时候可以指定要运行的
该元素只有一个“必选属性” id,用来唯一确定一个元素,该id属性可以再运行MBG时使用。
此外还有几个“可选属性”:
defaultModelType :这个属性用来设置生成对象类型的默认值。 对象类型定义了MBG如何生成实体类。 对某些对象类型,MBG会给每一个表生成一个单独的实体类。 对另外一些对象类型,MBG会根据表结构生成不同的类。
这个属性有以下可选值:
1:conditional:*这是默认值*,这个模型和hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类。 因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
2:flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。
3:hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系(注:BLOB类 继承 其他字段类 继承 主键类)。
targetRuntime :此属性用于指定生成的代码的运行时目标。
该属性支持这些特殊的值:
1:MyBatis3:这是默认值 ,使用这值的时候,MBG会生成兼容MyBatis 3.0或更高版本, 兼容JSE 5.0或更高版本的对象(例如Java模型类和Mapper接口会使用泛型)。 这些生成对象中的"by example"方法将支持几乎不受限制的动态的where子句。 另外,这些生成器生成的Java对象支持JSE 5.0特性,包含泛型和注解。
2:MyBatis3Simple:使用这值的时候,和上面的MyBatis3类似,但是不会有"by example"一类的方法,只有少量的动态SQL。
3:Ibatis2Java2:使用这值的时候,MBG会生成兼容iBATIS 2.2.0或更高版本(除了iBATIS 3),还有Java2的所有层次。 这些生成对象中的"by example"方法将支持几乎不受限制的动态的where子句。 这些生成的对象不能100%和原生的Abator或其他的代码生成器兼容。
4:Ibatis2Java5:使用这值的时候,MBG会生成兼容iBATIS 2.2.0或更高版本(除了iBATIS 3), 兼容JSE 5.0或更高版本的对象(例如Java模型类和Dao类会使用泛型)。 这些生成对象中的"by example"方法将支持几乎不受限制的动态的where子句。 另外,这些生成器生成的Java对象支持JSE 5.0特性,包含泛型和注解。 这些生成的对象不能100%和原生的Abator或其他的代码生成器兼容。
如果您想创建一个完全不同的代码生成器, 使用一个继承了org.mybatis.generator.api.IntrospectedTable 类的权限定类名替换该值。 通过这个值,您可以创建您自己的代码生成器,然后插入到代码生成器引擎中。
introspectedColumnImpl :使用这个值去指定一个继承了org.mybatis.generator.api.IntrospectedColumn 类的权限定名称。 这可以修改代码生成器计算列信息时候的行为。
一般情况下,我们使用如下的配置即可:
如果你希望不生成和Example
查询有关的内容,那么可以按照如下进行配置:
MBG配置中的其他几个元素,基本上都是
的子元素,这些子元素(有严格的配置顺序) 包括:
(0个或多个)
(0个或多个)
(0个或1个)
(1个)
(0个或1个)
(1个)
(0个或1个)
(0个或1个)
(1个或多个)
【3.3.2.元素】 :plugin顾名思义,插件,可以用来定义一个插件,可以配置0个或多个,不受限制,用于扩展或修改通过MyBatis Generator(MBG)代码生成器生成的代码。插件按照在配置文件中的顺序执行。
MyBatis Generator自带的插件在org.mybatis.generator.plugins包下面:
反编译插件源码,会发现所有插件的公共父类PluginAdapter为一个抽象类
因此,我们可以通过继承PluginAdapter开发我们自己的MBG插件,此处不再赘述。
此处列出常用的几个插件配置:
有关插件的详细信息我们可以参考官方文档中的开发插件和提供的插件了解更多。
【3.3.3.元素】 该元素最多可以配置1个。
这个元素非常有用,是用来定义注释生成器的属性。 注释生成器用来给由 MyBatis Generator (MBG) 生成的多种元素(Java自动,Java方法,XML元素等等)生成注释。
默认的实现类是 org.mybatis.generator.internal.DefaultCommentGenerator 。 如果您只想修改某些行为,默认的实现类专门为扩展进行设计。
支持的属性:
suppressAllComments :这个属性用来指定MBG生成的代码中是否包含任何注释。 这个属性有以下可选值:
1:false:默认值;当这个属性是false或者没有指定时,所有生成的元素都会包含用来说明这是生成元素的注释。
2:true:当这个属性是true时,不会往生成的元素中添加任何注释。
警告: 如果您将这个值设为true,那么所有的代码合并都会被禁用。
suppressDate :这个元素用来指定生成的注释中是否包含生成的日期。 这个属性有以下可选值:
1:false:默认值;当这个属性是false或者没有指定时,所有元素生成注释时都会带着生成时间。
2:true:当这个属性是true时,注释中不会添加时间戳。
可以通过实现org.mybatis.generator.api.CommentGenerator 接口来自定义创建注释生成器;
一般情况下由于MBG生成的注释信息没有任何价值,而且有时间戳的情况下每次生成的注释都不一样,使用**版本控制**的时候每次都会提交,因而一般情况下我们都会创建自定义的注释生成器,接下来我们简单举例实现生成包含表字段注释信息的注释:
因为系统提供了一个默认的实现类,所以对我们来说,自己实现一个会很容易,最简单的方法就是复制默认实现类代码到一个新的文件中,修改类名如MyCommentGenerator
,在你自己的实现类中,你可以选择是否继续支持上面的两个属性,你还可以增加对其他属性的支持。
我们通过下面一个方法的修改来了解,其他几个方法请自行修改(写本章的时候我也没有完全实现该类,所以不提供完整源码了):
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
if (introspectedColumn.getRemarks() != null && !introspectedColumn.getRemarks().equals("")) {
field.addJavaDocLine("/**");
field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
addJavadocTag(field, false);
field.addJavaDocLine(" */");
}
}
这个方法是给字段添加注释信息的,其中IntrospectedColumn
包含了字段的完整信息,通过getRemarks
方法可以获取字段的注释信息。上面这个方法修改起来还是很容易的。除了字段的注释外还有Getter
和Setter
,以及类的注释。此外还有生成XML的注释,大家可以根据默认的实现进行修改。
完成我们自己的实现类后,我们还需要做如下配置:
因为JDK默认编码方式为GBK,所以我们要设置编码方式为UTF-8,这样就可以生成中文注释了:
<-- 指定生成的java文件的编码方式,因为jdk自带编码方式为GBK,此处不设置,生成的java文件会出现中文乱码问题 -->
效果如图:
【3.3.4.元素】 该元素用于指定数据库的连接信息,该元素必选,并且只能有一个。
配置该元素时需要注意,如果JDBC驱动程序不在**classpath**下,就需要通过元素引入jar包;
该元素有两个必选属性:
driverClass :访问数据库的JDBC驱动程序的完全限定类名
connectionURL :访问数据库的JDBC连接
该元素还有两个可选属性:
userId :访问数据库的用户的id
password :访问数据库的密码
该元素还可以接受多个子元素,在这里配置的属性都会添加到JDBC驱动的属性中去。
这个元素配置起来相对最容易,例:
【元素】该元素至少要配置一个,可以配置多个。
该元素用来配置要通过内省的表,只有配置的才会生成实体类和其他文件。
该元素有一个必选属性:
tableName :指定要生成的表名,可以使用SQL通配符匹配多个表。
例如要生成全部的表,可以如下配置:
。。。
你可能感兴趣的:(mybatis)
【学习总结|DAY027】JAVA操作数据库
123yhy传奇
学习 java 数据库 mybatis spring boot
在后端开发中,Java操作数据库是核心技能。本文将详细介绍JDBC、MyBatis及SpringBoot配置文件相关知识,并给出实用代码示例。一、JDBC(JavaDataBaseConnectivity)(一)简介JDBC是sun公司定义的操作关系型数据库的API规范。它如同一个标准接口,各数据库厂商实现此接口并提供驱动jar包。例如,我们在使用MySQL数据库时,需引入mysql-connec
spring-boot 整合 shardingsphere-jdbc、mybatis-plus 数据分片(文末有彩蛋)
ゞ註﹎錠oo
架构之路 mybatis spring boot spring 数据库
1.什么是ShardingSphere?ApacheShardingSphere是一款分布式的数据库生态系统,可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。ApacheShardingSphere设计哲学为DatabasePlus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。它站在数
O2O同城系统架构与功能分析
商鼎云技术
源码自研产品 O2O同城 同城系统
2015工作至今,10年资深全栈工程师,CTO,擅长带团队、攻克各种技术难题、研发各类软件产品,我的代码态度:代码虐我千百遍,我待代码如初恋,我的工作态度:极致,责任,死磕!欢迎点赞、收藏、关注,更多分享请进我主页。一、系统架构服务端:Java(最低JDK1.8,支持JDK11以及JDK17)数据库:MySQL数据库(标配5.7版本,支持MySQL8)ORM框架:Mybatis(集成通用tk-ma
0、springboot3 vue3开发平台-系统简介
不知所云,
springboot3 + vue3 开发平台 java spring boot vue redis mysql 前端框架 后端
文章目录1.技术栈1.1后端1.2前端2.开发环境和工具3.项目模块说明3.1模块间关联关系1.技术栈1.1后端JDK17SpringBoot3.Xsa-tokenMySQL8.XMyBatis-Plus3.5.XJWTRedismaven等其他工具类技术1.2前端Node.is20.XVue3vue-router4painaviteElement-plus2.开发环境和工具JDK17IDEAMy
springMVC文件上传和下载
xls丶
spring mvc
[置顶]SpringMVC单文件上传、多文件上传、文件列表显示、文件下载标签:SpringMVC文件上传文件下载列表显示2015-05-1821:0122627人阅读评论(6)收藏举报分类:SpringMVC(8)作者同类文章X•Shrio登陆验证实例详细解读•Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)•Spring+Mybatis+SpringMVC+Mav
Spring Boot 3项目集成Swagger3教程
m0_74825746
spring boot 后端 java
SpringBoot3项目集成Swagger3教程??前言欢迎来到我的小天地,这里是我记录技术点滴、分享学习心得的地方。????技能清单编程语言:Java、C、C++、Python、Go、前端技术:Jquery、Vue.js、React、uni-app、EchartsUI设计:Element-ui、Antd、Color-ui后端技术:SpringBoot、Mybatis-plus、Swagger移
mybatis源码解析-sql执行流程
吴冰_hogan
mybatis源码 mybatis sql java
1执行器的创建1.SimpleExecutor描述:最基本的执行器,每次查询都会创建新的语句对象,并且不会缓存任何结果。特点:每次查询都会创建新的PreparedStatement对象。不支持一级缓存。适用于简单的查询操作,不需要缓存的情况。2.ReuseExecutor描述:复用型执行器,会复用PreparedStatements。特点:通过缓存PreparedStatement对象来提高性能。
【图书介绍】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》
夏天又到了
编程与应用开发 Spring开发 spring mvc mybatis
本书重点基于版本Spring6.1.10、SpringMVC6.1.10、MyBatis3.5.16。详解SSM框架各组件用法及其整合方法,实战新闻发布管理系统、图书管理系统开发。配套示例源码、PPT课件、教学大纲、习题答案、教学视频。内容简介本书全面讲解使用流行轻量级框架SSM(Spring+SpringMVC+MyBatis)进行JavaEEWeb开发的技术,并以综合案例“学生选课管理系统”为
MyBatis(五)动态SQL
画船听雨眠aa
mybatis sql java
目录一、介绍二、if标签三、where标签四、choose-when-otherwise标签五、foreach标签七、trim标签八、提取公用的SQL语句一、介绍动态SQL是MyBatis的强大特性之一。在JDBC或其它类似的框架中,开发人员通常需要手动拼接SQL语句。根据不同的条件拼接SQL语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态S
MyBatis 注解使用指南
小小小妮子~
tomcat java 开发语言 MyBatis
什么是MyBatis注解?MyBatis是一个老牌而强大的ORM框架,通过配置文件或注解来实现数据库操作。在注解模式中,你可以不用写XML配置文件,而是通过在代码中直接使用Java注解来实现。这种方式更简洁,会让你的项目代码极大约简化,同时保持构件的结构化。MyBatis注解的优势优化代码结构:较乎使用XML配置,注解使用更简洁。所有于SQL直接直观地位于接口中,汇总于一个场景中。清除多余配置文件
自定义SqlSessionFactory时mybatis-config.xml失效
wujiada001
Java java 开发语言
使用场景:使用多数据源时,自定义创建SqlSessionFactory对象,没有正确读取到mybatis-config.xml配置,导致下划线驼峰映射失效,sql语句输出不显示等问题。解决方案:@Bean(name="UserSqlSessionFactory")publicSqlSessionFactorydataLgSqlSessionFactory(@Qualifier("UserDataD
Spring Boot 3.x- MybatisPlus集成
laopeng301
Spring Boot 3.x教程 spring boot java 后端 mysql spring
系列文章目录系列文章:SpringBoot3.x系列教程文章目录系列文章目录简介一、快速开始1.数据库表和数据准备2.新增项目&导入依赖3.配置4.开发编码5.运行测试二、注解三、测试四、CRUDServiceCRUDMapperCRUD五、完整CRUD例子简介官网介绍:MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
武子康
大数据 离线数仓 大数据 数据仓库 java 后端 hadoop hive
点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已
SSM框架从入门到精通
布朗克168
# SSM Java开发相关后端框架 经验分享 spring mybatis java
文章目录一、SSM框架概述二、Spring基础(一)配置与依赖注入(二)Bean的生命周期(三)事务管理三、SpringMVC入门(一)控制器实现(二)请求映射(三)模型数据绑定四、MyBatis学习(一)SQL映射文件(二)动态SQL(三)实体类与数据映射五、整合SSM(一)基础集成(二)异常处理六、实战应用(一)项目构建(二)调试与优化(三)常见问题解决七、总结一、SSM框架概述SSM框架是由
java毕业设计宠物领养饲养交流管理平台Mybatis+系统+数据库+调试部署
静静学姐
mybatis java 宠物
java毕业设计宠物领养饲养交流管理平台Mybatis+系统+数据库+调试部署java毕业设计宠物领养饲养交流管理平台Mybatis+系统+数据库+调试部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7/8.0源码地址
高级java每日一道面试题-2025年01月16日-框架篇[Mybatis篇]-说说Mybatis的缓存机制?
java我跟你拼了
java每日一道面试题 java mybatis 缓存 一级缓存 二级缓存 工作原理 全局配置
如果有遗漏,评论区告诉我进行补充面试官:说说Mybatis的缓存机制?我回答:在Java高级面试中,MyBatis的缓存机制是一个重要的话题。MyBatis是一个流行的Java持久化框架,它提供了强大的数据库访问能力和灵活的SQL映射配置。为了提高查询性能并减少数据库访问次数,MyBatis引入了缓存机制。下面将对MyBatis的缓存机制进行详细解释:MyBatis缓存机制概述MyBatis的缓存
SpringBoot多数据源架构实现
柚几哥哥
Spring全家桶及相关框架 spring boot 架构 后端 数据库架构 clickhouse
文章目录1.环境准备2.创建SpringBoot项目3.添加依赖4.配置多数据源5.配置MyBatis-Plus6.使用多数据源7.创建Mapper接口8.实体类定义9.测试多数据源10.注意事项10.1事务导致多数据源失效问题解决方案:10.2ClickHouse的事务支持10.3数据源切换的性能开销10.4数据源配置的优先级11.总结使用SpringBoot3.x+MyBatis-Plus+M
基于SSM框架的旅游网站设计与实现
IT实战课堂—x小凡同学
Java毕业设计项目 旅游
摘要:本文主要介绍了基于SSM(Spring、SpringMVC、MyBatis)框架的旅游网站设计与实现过程。首先,对SSM框架进行了概述,并详细分析了其在旅游网站开发中的优势。接着,从需求分析、系统设计、数据库设计、前台与后台模块实现等方面进行了全面阐述。最后,对系统的测试与部署进行了说明,并对未来的发展方向进行了展望。关键词:SSM框架;旅游网站;前后台设计;JavaWeb开发一、引言随着信
java计算机毕业设计货币博物馆展品管理系统源码+数据库+系统+lw文档+mybatis+运行部署
游游科技
mybatis java mysql
java计算机毕业设计货币博物馆展品管理系统源码+数据库+系统+lw文档+mybatis+运行部署java计算机毕业设计货币博物馆展品管理系统源码+数据库+系统+lw文档+mybatis+运行部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8
MyBatis缓存原理及插件实现
小娄写码
mybatis 缓存 spring
目录MyBatis缓存原理缓存的工作机制一级缓存:二级缓存:MyBatis插件实现MyBatis缓存原理缓存的工作机制如果会话查询了一条数据,此数据会存入一级缓存;若会话被关闭或提交,则,其数据转存入二级缓存;新会话若再次查询之前查询过的数据,就从二级缓存中获取;不同的Mapper,查询出来的数据会被放置到不同的二级缓存中。一级缓存:SqlSession级别的,也称为本地缓存一级缓存的本质,就是:
MyBatis-增删改查操作&一些细节
!!!525
mybatis java 数据库 mybatis spring boot
目录删除新增修改查询小结:删除功能需求:根据ID删除用户信息SQL:deletefromuserwhereid=5;Mapper接口方法(注意这里不是实现类):/***根据id删除*/@Delete("deletefromuserwhereid=#{id}")publicvoiddeleteById(Integerid);编写单元测试方法进行测试@TestpublicvoidtestDeleteB
MYSQL数据库表的设计
qq_45849275
java
一、https://blog.csdn.net/jasonhui512/article/details/53134054页面原型需求分析表结构的设计数据库设计案例elasticSearchpostgresqlmongodbRedisneo4jfastDFSmemcachemavengitsvnluencemybatismybatisplusspringspringMVCspringbootspri
IDEA 中编写 MyBatis 的 XML 文件,parameterType 无法跳转到类 Cannot find declaration to go to.
_Max_Ma
MyBatis intellij-idea mybatis xml
出现上图的问题,resultMap标签中的type和parmeterType中的类报红且无法跳转到对应的类中,此问题可能有几个原因:1.没有配置别名2.没有写全路径解决方法:alias配置别名(具体可以看其他文章的配置)写全类路径
insert into select 主键自增_mybatis拦截器实现主键自动生成
weixin_39521651
insert into select 主键自增 mybatis delete返回值 mybatis insert返回主键 mybatis insert返回对象 mybatis plus insert返回主键 mybatis plus 插入生成id
前言前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键。于是我就问他,那你们数据库表设置主键自动递增不就得了。他的回答是他们项目目前的id都是采用雪花算法来生成,因此为了项目稳定性,不会切换id的生成方式。朋友问我有没有什么实现思路,他们公司的orm框架是mybatis,我就建议他说,不然让你老大把mybatis切换成mybatis-plus。mybat
MyBatis 详解
阿贾克斯的黎明
java mybatis
目录目录一、MyBatis是什么二、为什么使用MyBatis(一)灵活性高(二)性能优化(三)易于维护三、怎么用MyBatis(一)添加依赖(二)配置MyBatis(三)创建实体类和接口(四)使用MyBatis一、MyBatis是什么MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。它可以通过简
mybatis 二级缓存失效_Mybatis 缓存原理及失效情况解析
weixin_39844942
mybatis 二级缓存失效
这篇文章主要介绍了Mybatis缓存原理及失效情况解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1、什么是缓存[Cache]存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么要使用缓存减少和数据库的交互次
详解mybatis的一二级缓存以及缓存失效原因
仰望天花板
缓存 数据库 mybatis java mysql
数据库的大部分场景下是从磁盘读取,如果数据从内存进行读取,速度较比磁盘要快得多。但因为内存的容量有限,所以一般只会把使用和查询较多的数据缓存起来,以便快速反应,其他使用率不太多的继续存放在磁盘。mybatis分为一级缓存和二级缓存1.一级缓存一级缓存存放在SqlSqeeion上,默认开启1.1pojo@DatapublicclassRole{privateLongid;privateStringr
36. MyBatis如何支持多数据库操作?如何配置不同的数据源?
这孩子叫逆
Mybatis笔记 mybatis 数据库
在许多企业级应用中,可能需要访问多个数据库。MyBatis可以通过配置多个数据源和动态切换数据源来支持多数据库操作。下面介绍如何在MyBatis中配置和使用多个数据源。1.多数据源的基本配置1.1配置多个数据源要支持多个数据源,首先需要在Spring或SpringBoot中配置不同的数据源。假设我们要连接两个数据库db1和db2,可以通过以下步骤进行配置。SpringBoot示例:applicat
MyBatis批量插入大量数据
小黑屋说YYDS
MyBatis java
1.思路分析批量插入这个问题,我们用JDBC操作,其实就是两种思路吧:用一个for循环,把数据一条一条的插入(这种需要开启批处理)。生成一条插入sql,类似这种insertintouser(username,address)values(‘aa’,‘bb’),(‘cc’,‘dd’)…。到底哪种快呢?我们从两方面来考虑这个问题:插入SQL本身执行的效率。网络I/O。先说第一种方案,就是用for循环循
MyBatis 查询数据库_mybatis查询某个库的所有表名(2)
2401_84181942
程序员 mybatis oracle tomcat
标签说明:***``标签**:需要指定namespace属性,表示命名空间,值为mapper接口的全限定名,包括全包名.类名。***``查询标签**:是用来执行数据库的查询操作的:`id`:是和Interface(接口)中定义的方法名称一样的,表示对接口的具体实现方法。`resultType`:是返回的数据类型,也就是开头我们定义的实体类。####2.4.4添加Service服务层实现代码如下:@
Dom
周华华
JavaScript html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql 设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport 报表工具 web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
分析Spring源代码之,DI的实现
aijuans
spring DI 现 源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础 IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
JDK1.5 生产消费者
bijian1013
java thread 生产消费者 java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
JAVA版身份证获取性别、出生日期及年龄
bijian1013
java 性别 出生日期 年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
[毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHP Excel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBM jms user MQ MCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chrome vim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
MongoDB查询(2)——数组查询[六]
eksliang
mongodb MongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
cordova读写文件(1)
gundumw100
JavaScript Cordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jquery Ajax html5 FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
java实现SMTP邮件服务器
macroli
java 编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
mongodb group by having where 查询sql
qiaolevip
每天进步一点点 学习永无止境 mongo 纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
Struts2 Pojo(六)
Luob.
POJO strust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st