- Mybatis源码解析
我是嘻哈大哥
1.编写一个小demo导入mybatis源码,demo目录结构如下:源码的pom文件中需要加入以下依赖:mysqlmysql-connector-java5.1.38UserMapper.javapublicinterfaceUserMapper{UserselectById(Stringid);}User.javapublicclassUser{privateStringid;privateSt
- Mybatis源码解析:kafka消费者消费不到消息
前端陈萨龙
程序员java经验分享面试
Kafka源码篇——Kafka快速入门1.1Kafka简介1.2以Kafka为中心的解决方案1.3Kafka核心概念1.4搭建Kafka源码环境Kafka源码篇——生产者2.1KafkaProducer使用示例2.2KafkaProducer分析2.3RecordAccumulator分析2.4Sender分析Kafka源码篇——消费者3.1KafkaConsumer使用示例3.2传递保证语义(D
- myBatis源码解析-反射篇(4)
联旺
1property包-主要对类的属性进行操作的工具包1.1PropertyCopier包利用反射类Filed进行属性复制复制代码//该类作用将sourceBean与destinationBean相同属性名的属性进行值复制publicclassPropertyCopier{//属性复制publicstaticvoidcopyBeanProperties(Classtype,ObjectsourceB
- Mybatis源码解析:从基础到源码统统帮你搞定,使用指南
m0_56037919
程序员android
个人背景如标题所示,我的个人背景非常简单,Java开发经验1年半,学历普通,2本本科毕业,毕业后出来就一直在Crud,在公司每天重复的工作对我的技术提升并没有什么帮助,但小镇出来的我也深知自我努力的重要性,想要改变“命运”,没有背景没有资本的人,只能通过勤奋获得。幸运女神往往会眷顾努力的人,所以当好运降临到我头上,我并不诧异,目前拿到了美团30K的offer,下文也不说废话,主要分享我这次“美团面
- Mybatis源码解析7:拦截器Interceptor
hao9e
mybatisjavasql
Mybatis源码解析7:拦截器Interceptor1.项目结构2.源码分析2.1解析plugins标签2.2创建对象Configuration#newStatementHandler2.3注册插件InterceptorChain#pluginAll2.4拦截器包装Plugin#wrap2.4.1解析Intercepts和SignaturePlugin#getSignatureMap2.4.2拦
- Mybatis源码解析6:Mapper执行流程2-三个Handler
hao9e
mybatissqljava
Mybatis源码解析6:Mapper执行流程2-三个Handler1.项目结构2.源码分析2.1StatementHandler分析BaseStatementHandler#prepare2.2ParameterHandler分析DefaultParameterHandler#setParameters2.3ResultSetHandler分析1.项目结构2.源码分析之前已经对SimpleExe
- Mybatis代理对象是如何生成的
softshow1026
mybatisjava开发语言
Mybatis源码解析-mapper代理对象的生成,你有想过吗,我们讲到了mybatis操作数据库的流程:先创建SqlSessionFactory,然后创建SqlSession,然后再创建获取mapper代理对象,最后利用mapper代理对象完成数据库的操作;Mapper代理对象的创建,利用的是JDK的动态代理,InvocationHandler是MapperProxy,后续Mapper代理对象方
- Spring-Mybatis源码解析--手写代码实现Spring整合Mybatis
拽着尾巴的鱼儿
Spring框架篇源码解析篇db数据库springmybatisjava
文章目录前言一、引入:二、准备工作:2.1引入依赖2.2数据源的文件:2.1数据源:2.3业务文件:三、整合的实现:3.1xxxMapper接口的扫描:3.2xxxMapper接口代理对象的生成:3.2SqlSessionFactory的定义:四、Spring整合Mybatis对比:4.1扫描路径定义:4.2bean的生成:五、扩展:5.1`SqlSessionFactory`和`SqlSessi
- Spring-Mybatis源码解析--Mybatis配置文件解析
拽着尾巴的鱼儿
源码解析篇Spring框架篇db数据库springmybatisjava
文章目录前言一、准备工作1.1依赖准备:1.2配置文件准备:1.3代码准备:二、配置文件加载:2.1SqlSessionFactoryBuilder().build(reader)2.2parser.parse():三、执行sql:总结前言Spring整合Mybatis后,如何对其配置文件进行加载和解析,如何进行数据的CRUD。一、准备工作1.1依赖准备:com.baomidoumybatis-p
- Mybatis源码解析三——反射模块(Reflector)
天道酬巧
Mybatis源码探究
反射模块(Reflector)Mybatis源码解析一——搭建阅读环境Mybatis源码解析二——解析器模块(parsing)Mybatis源码解析三——反射模块(Reflector)文章目录反射模块(Reflector)前言一、reflector包结构二、reflector测试类结构三、ReflectorFactory3.1DefaultReflectorFactory四、Reflector4.
- Mybatis源码解析:c和java语法
始飞龙
程序员面试后端java
头条二面二轮技术面,17:00~20:25,晚饭时间hr小姐姐还特贴心的带我体验了一把传说中的头条餐厅,不超过半小时聊项目,画项目架构图,画一个用户从发起请求到接收到响应中间经过哪些服务每个服务做什么事情的流程图讲项目中的难点、挑战,你是如何解决的redis中有几种类型&各自底层怎么实现的&项目中哪个地方用了什么类型,怎么使用的redis如何实现分布式锁,zk如何实现分布式锁,两者的区别。如果se
- 3.MyBatis源码解析-CRUD执行流程--阿呆中二
阿呆中二
MyBatis
CRUD执行流程MyBatisCRUD执行流程与我联系MyBatis本文是对mybatis3.x源码深度解析与最佳实践学习的总结,包括XML文件解析流程、SqlSession构建流程、CRUD执行流程、MyBatis扩展点,以及针对面试题进行源码分析。mybatis3.x源码深度解析与最佳实践下载:https://download.csdn.net/download/u013425841/1281
- 5.MyBatis源码解析-MyBatis面试题--阿呆中二
阿呆中二
MyBatisjavamybatisspring
MyBatis面试题MyBatisMyBatis面试题MyBatis一级缓存和二级缓存?MyBatis有几种执行器和区别?Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?Mybatis是如何进行分页的?分页插件的原理是什么?Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?与我联系MyBatis本文是对mybatis3.x源码深度解析与最佳实践学习的总结,包括
- MyBatis源码解析 - 解析器模块
程序猿扬克尔
MyBatis源码解析-解析器模块1.前言在MyBatis中涉及多个xml文件,解析这些xml文件自然离不开解析器。本文就来分析一下解析器模块。2.准备工作xml常见的解析方式分为以下三种:DOM(DocumentObjectModel)解析方式SAX(SimpleAPIforXML)解析方式StAX(StreamingAPIforXML)解析方式-JDK6.0版本开始,JDK开始支持详细的解析x
- mybatis源码解析九之整个加载流程解析
Nuan_Feng
mybatis源码解析
文章目录加载Reader构造SqlSessionFactory获取DocumentConfiguration初始化解析Xnode解析Attributes解析占位符解析标签内容解析Configuration解析properties解析settings解析typeAliases解析plugins解析objectFactory解析environments解析databaseIdProvider解析typ
- mybatis 执行流程,mybatis源码解析,推荐收藏
zhangkaixuan456
sql优化mybatisjavaspring
目录概要获取Mapper接口(getMapper)Mapper接口和映射文件是何时关联的sql执行流程分析参数映射结果集映射工作流程图总结MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下:1、Mapper接口和映射文件是如何进行绑定的2、MyBatis中SQL语句的执行流程3、自定义MyBatis中的参数设置处理器
- Mybatis源码解析(八):Mapper代理原理
冬天vs不冷
mybatismybatisjava
Mybatis源码系列文章手写源码(了解源码整体流程及重要组件)Mybatis源码解析(一):环境搭建Mybatis源码解析(二):全局配置文件的解析Mybatis源码解析(三):映射配置文件的解析Mybatis源码解析(四):sql语句及#{}、${}的解析Mybatis源码解析(五):SqlSession会话的创建Mybatis源码解析(六):缓存执行器操作流程Mybatis源码解析(七):查
- Mybatis源码解析:JavaBean与xml互转的方法详解
web苍南县
程序员后端java面试
}}###2、简单类型 (1)单实体类转换packagecom.guor.demo.beanToXml;importjava.util.Date;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.X
- Mybatis源码解析(三)------SqlSession
小小的人儿居然已存在
#mybaitsmybatistomcatjava
Mybatis源码解析(三)------SqlSession序言SqlSession接口SqlSession的实现类DefaultSqlSessionSelect获取Statement查询序言Mybatis里面的核心就是SqlSession这个接口,前面我们已经研究了Mybatis的配置过程和Mapper的注册过程,在本篇文章中我们就来研究SqlSession。/***TheprimaryJava
- MyBatis源码解析
Javaesandyou
缓存数据库javaMyBatis源码程序人生
MyBatis执行流程:1.ExecutorExecutor是MyBatis的核心接口之一,其中定义了数据库操作的基本方法。在实际应用中经常涉及的SqISession接口的功能,都是基于Executor接口实现的。BaseExecutor是一个实现了Executor接口的抽象类,它实现了Executor接口的大部分方法。BaseExecutor中主要提供了缓存管理和事务管理的基本功能,继承Base
- MyBatis源码解析&手写持久层框架
Allen-xs
源码分析mybatis
1.手写持久层框架1.1JDBC操作数据库_问题分析JDBCAPI允许应用程序访问任何形式的表格数据,特别是存储在关系数据库中的数据代码示例:publicstaticvoidmain(String[]args){Connectionconnection=null;PreparedStatementpreparedStatement=null;ResultSetresultSet=null;try{
- MyBatis源码解析 - 反射模块
janker0718
MyBatis源码解析-反射模块1.前言该模块位于org.apache.ibatis.reflection包中,MyBatis在进行参数处理、结果映射等操作时,会涉及大量的反射操作。Java中的反射虽然功能强大,但是代码编写起来比较复杂且容易出错,为了简化反射操作的相关代码,MyBatis提供了专门的反射模块,它对常见的反射操作做了进一步封装,提供了更加简洁方便的反射API。本节就来为读者介绍该模
- MyBatis源码解析(二)——执行流程
爱看雲的雲
MyBatis源码解析mybatisjavamysql
目录前言1、MyBatis执行SQL入口1.1、Sql会话工厂——SqlSessionFactory1.2、Sql会话——SqlSession1.3、执行器——Executor1.3.1、缓存执行器——CachingExecutor1.3.2、基础执行器——BatchExecutor2、MyBatis获取结果集2.1、StatementHandler2.1.1、RoutingStatementHa
- MyBatis源码解析 - 类型转换模块
janker0718
MyBatis源码解析-类型转换模块前言JDBC数据类型与Java语言中的数据类型并不是完全对应的,所以在PreparedStatement为SQL语句绑定参数时,需要从Java类型转换成JDBC类型,而从结果集中获取数据时,则需要从JDBC类型转换成Java类型。MyBatis使用类型处理器完成上述两种转换,如图所示。在MyBatis中使用JdbeType这个枚举类型代表JIDBC中的数据类型,
- 最近翻了翻mybatis初始化部分的源码,和大家分享一下阅读源码的过程和乐趣
指针指指针
框架源码mybatisjavamysql
mybatis源码解析1.初始化过程静态代码块读取主配文件static{Stringconfig="mybatis-config.xml";try{//第一步加载主配文件InputStreamresourceAsStream=Resources.getResourceAsStream(config);//第二步解析主配文件构建sqlSession工厂sqlSessionFactory=newSql
- 【Mybatis源码解析】深入了解<select>等标签的实现流程(一)
涝山道士
javaMybatisjavamybatis
前言以前只知道select标签的个别属性用法,并不了解其实现流程与原理,正巧,最近在学习Cache一二级缓存,看到与select标签相关的属性,就借此机会把这篇文章写了出来。此外,之所以以select为视角,是因为其他几个标签的源码流程与select大致相当,而且select在实际开发中使用更为频繁。本文思路:1.先了解select标签各个属性作用2.从mapper.xml中加载select标签的
- Mybatis源码解析:sql参数处理,原来可以这么简单-1,java项目技术栈
m0_64383449
程序员面试java后端
//XNode.getBodyDataprivateStringgetBodyData(Nodechild){//判断节点的类型if(child.getNodeType()==Node.CDATA_SECTION_NODE||child.getNodeType()==Node.TEXT_NODE){Stringdata=((CharacterData)child).getData();data=P
- Mybatis源码解析(九):插件机制
冬天vs不冷
mybatismybatisjava数据库
Mybatis源码系列文章手写源码(了解源码整体流程及重要组件)Mybatis源码解析(一):环境搭建Mybatis源码解析(二):全局配置文件的解析Mybatis源码解析(三):映射配置文件的解析Mybatis源码解析(四):sql语句及#{}、${}的解析Mybatis源码解析(五):SqlSession会话的创建Mybatis源码解析(六):缓存执行器操作流程Mybatis源码解析(七):查
- spring-mybatis源码解析
原飞木
#SB2源码学习spring-mbatis源码解析xmlmapper
本文主要围绕三个问题展开?1.spirng是怎么和mybatis关联起来的?2.xml和mapper是如何解析的3.mapper中的方法是怎么和xml中的方法关联起来的?Spirng是怎么和mybatis关联起来的在基本的MyBatis中,session工厂可以使用SqlSessionFactoryBuilder来创建。而在MyBatis-Spring中,则使用SqlSessionFactoryB
- 【Mybatis源码解析】- 整体架构及原理
老马说开发y
java
version-3.5.5在深入了解Mybatis的源码之前,我们先了解一下Mybatis的整体架构和工作原理,这样有助于我们在阅读源码过程中了解思路和流程。核心流程在上一遍的入门程序中,我们通过示例代码简单的介绍了如何通过Myabtis进行一个简单的增删改查,并用简单的步骤描述了示例程序的运行过程。为了更直观,其工作原理可理解成如下步骤:初始化阶段:读取XML配置文件和注解中的配置信息,创建配置
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str