苏州Java语言培训学费多少_苏州JAVA培训
来源:教育联展网 编辑:佚名 发布时间:2018-10-30
吴嘉俊(Stef)高级讲师
拥有多年的Java开发经验,CTO,EasyJF开源团队创始人之一、负责 EasyJWeb项目的开发和维护。曾在国内多家大型软件公司负责公司内部框架的开发和维护,为多个大中型公司做过架构和技术咨询。曾组织开发了蓝源 装饰行业ERP、美国EMR、蓝源服装行业连锁管理系统、蓝源SaaS服务平台、蓝源Eloan互联网金融综合解决方案等系统产品。具有非常丰富项目开发和 管理经验。
擅长技术:主流JavaEE,Android技术,对 Spring、JPA、Hibernate、 MyBatis、Struts2、MongoDB、Redis等技术领域有深入研究。
吴老师有丰富的Java培训经验和IT培训行业顾问经验;授课激情,有感染力 ,注重对底层原理的剖析和理解;善于培养学生对编程的兴趣;
现在学习Java还有前途吗?
在互联网行业,Java工程师是一个技术含量非常高的岗位,支撑了互联网行 业的半壁江山,全世界有一千万Java程序员,目前还在有更多的计算机爱好者向Java的大门奔来。Java发展了20多年,关于Java的悲观论调也不时出现 ,现在学Java还有前途吗?是否已经过了红利期了呢?
Java作为所有编程语言中热门技术,可以说它无处不在,目前全球有着数十 亿的设备正在运行着Java,很多服务器程序都是用Java编写,用以处理每天超过数以千万的数据。
无论是手机软件、手机Java游戏还是电脑软件,每一次购物到每一笔支付成 功,都离不开Java,越来越多的企业也正采用Java语言开发网站,而在所有程序员中,Java开发工程师就占据了20%的比例。
从国内排名靠前网站的主要开发语言,也可以看出Java在各大开发语言中的 地位。淘宝、搜狐、网易等一线互联网公司,都在使用Java开发语言。
这也不难理解,为什么Java现在这么火爆,吸引越来越多的人学习,根本原 因,还是因为企业对Java的认可和应用。
Java有没有前途,需要我们认清自己今后应该怎么走自己的路线,是走技术 ,还是走管理。走技术路线:从初级、中级、高级再到软件架构师。如果说走管理路线:项目经理、部门经理、技术总监。只有清楚了自己要走的路线 后,再往决定的那一方面去努力,学习。除此以外,还有一些人学了这一专业后,从事销售顾问、培训讲师、自己创业的都有,关键是自己要认识自己 ,自己更适何哪一条路。
所以,先认清“正确的结果”,根据正确的结果去设计你的过程。当一个人 具有明确的职业目标时,就会对有助于实现目标的蛛丝马迹都特别敏感,做事情相应也就会很有目的性,而不是稀里糊涂的。所以,就容易到达自己的 目的。如果没有职业目标,脚踩西瓜皮滑到哪里是哪里,学什么技术都没前途。
在未来的几年,Java工程师人才的需求还在不断的加大,由于人才的紧缺, 这个岗位相对于其它专业薪资待遇还是不错的,而且Java工程师的待遇是与工作经验直接挂勾的,当你有了丰富的经验以后,你在这个行业里就比较抢 手了,而且企业所出的薪酬也是相当高的,到时只有你选择他们了。
流行框架
流行框架
-
01Struts2
-
1.Struts2流程
-
2.值栈与ONGL
-
3.Struts2标签库
-
4.Struts2模型驱动原理
-
5.Struts2声明式异常处理
-
6.Struts2类型转换&自定义类型转换
-
7.Struts2拦截器原理&自定义拦截器
-
8.Struts2源码分析&运行原理
-
02Hibernate
-
1.Hibernate环境搭建&配置
-
2.hibernate.cfg.xml&主键生成策略
-
3.Session核心方法
-
4.ORM映射:单向/双向1-n映射
-
5.ORM映射:基于主/外键映射&n-n
-
6.检索策略&迫切左外连接
-
7.Hibernate缓存机制
-
8.QBC、HQL
-
9.Session管理
-
03Spring
-
1.SpringIOC&DI机制
-
2.Spring配置式组件管理
-
3.Spring注解式自动装配
-
4.Spring表达式语言
-
5.SpringAOP&动态代理
-
6.SpringJDBC使用
-
7.Spring声明式事务
-
8.Spring单元测试
-
9.Spring源码分析
-
10.Spring、Struts2、Hibernate整合
-
04SpringMVC
-
1.SpringMVC配置&运行流程
-
2.SpringMVC数据绑定
-
3.模型处理&@ModelAttribute
-
4.RestFulCRUD
-
5.表单标签&静态资源处理
-
6.数据转换&格式化&JSR303数据校验
-
7.HttpMessageConverter
-
8.Ajax&国际化&文件上传**
-
9.异常处理
-
10.整合&父子容器
-
05MyBatis
-
1.MyBatis配置&查询数据
-
2.MyBatis全局配置文件
-
3.MyBatis映射文件
-
4.关联查询,动态sql
-
5.MyBatis缓存机制&整合ehcache
-
6.MyBatis逆向工程
-
7.MyBatis、Spring、SpringMVC整合
-
8.MyBatis运行原理&源码分析
-
9.MyBatis拦截器&插件开发
-
10.分页插件&存储过程调用&自定义 TypeHandler
-
06JPA
-
1.JPA技术体系
-
2.JPA注解
-
3.JPA相关API
-
4.JPA映射
-
5.JPQL
-
6.二级缓存
-
7.Spring整合JPA
-
07SpringData
-
1.SpringData快速入门
-
2.SpringData_Repository接口
-
3.Repository查询规范
-
4.@Query&@Modifying
-
5.CrudRepository
-
6.PagingAndSortingRepository
-
7.JpaRepository
-
8.JpaSpecificationExecutor
-
9.自定义Repository
-
08Maven
-
1.Maven环境搭建
-
2.Maven构建&自动化构建
-
3.本地仓库&中央仓库
-
4.maven创建web工程
-
5.pom.xml、依赖管理
-
6.坐标、依赖、生命周期等
-
7.eclipse下的maven使用
-
8.继承&聚合
-
9.maven构建SSH/SSM应用
-
10.自动部署&持续集成&持续部署
-
09SVN
-
1.SVN简介
-
2.SVN服务器搭建
-
3.SVN创建版本库
-
4.Eclipse整合svn插件
-
5.使用SVN更新提交
-
6.SVN仓库分析
-
7.SVN协同修改&冲突解决
-
8.SVN权限管理
-
9.SVN时光机
-
10.TortoiseSVN
-
10Shiro
-
1.Shiro入门
-
2.Spring集成Shiro
-
3.Shiro工作流程
-
4.权限URL配置
-
5.认证流程&认证Realm
-
6.密码比对,MD5&盐值加密
-
7.授权流程
-
8.标签&权限注解
-
9.会话管理、SessionDao
-
10.缓存
-
11.实现”记住我”
-
11Activiti5
-
1.工作流&工作流引擎
-
2.BPMN2.0规范
-
3.Activiti5框架表结构
-
4.Activiti5核心组件&服务接口
-
5.Activiti5插件安装&整合Spring
-
6.流程定义
-
7.流程实例&任务&历史
-
8.任务领取&流程变量
-
9.排他网关&并行网关
-
12WebService
-
1.WebService简介
-
2.WebService主流框架
-
3.cxf的使用
-
4.SOAP协议
-
5.WSDL讲解
-
6.JAX-WS
-
7.与Spring整合
-
8.JAXB
-
9.JAX-RS
-
10.支付接口原理
-
13Linux
-
1.Linux系统-基础
-
2.Linux网络基础
-
3.Linux在VMware下的安装
-
4.Linux下Java环境的搭建
-
5.Linux下Tomcat安装和配置
-
6.Linux下 Oracle/MySQL 安装与配置
-
7.Shell 编程
-
14Redis
-
1.NoSQL&Redis入门
-
2.Redis/memcache/MongDB对比
-
3.Redis安装&启动
-
4.分布式数据库CAP原理
-
5.Redis五大数据类型和基本操作命令
-
6.Redis总体配置Redis.conf
-
7.Redis持久化(RDB和AOF)
-
8.Redis事务控制
-
9.Redis发布和订阅
-
10.Redis(Master/Slave)主从复制
-
11.Jedis
-
15Git&Git Hub
-
1.Git安装配置
-
2.Git本地库搭建
-
3.Git常用操作命令
-
4.Github注册与配置
-
5.Github与Git协同办公
-
6.TortoiseGit安装配置
-
7.Egit操作push/pull,
-
8.Git工作流
-
9.集中式&GitFlow&Forking
-
16MySQL高级
-
1.MySQL架构组成
-
2.MySQL备份和恢复
-
3.MySQL查询和慢查询日志分析
-
4.MySQL索引优化
-
5.MySQL存储引擎优化
-
6.MySQL锁机制优化
-
7.MySQL高可用设计
-
8.MySQL集群
-
17JVM原理
-
1.JVM简析
-
2.JVM组成结构
-
3.JVM堆、栈原理
-
4.JVM-Heap三区原理
-
5.JVM垃圾收集机制
-
6.堆内存调优
-
7.GC回收策略
-
8.GC三大算法
-
18Quartz
-
1.Quartz作业调度简介
-
2.Quartz作业调度执行以及持久性
-
3.Quartz基本使用
-
4.Quartz核心类讲解
-
5.Quartz Trigger 触发器
-
6.Quartz Job&JobDetail
-
7.Quartz Calendars日历讲解
-
8.JobListener监听器和TriggerListener监听器
-
9.Spring整合Quartz
-
19Nginx
-
1.Nginx反向代理介绍
-
2.Nginx **和安装
-
3.Nginx 编译和启动、访问
-
4.在Linux下搭建Nginx集群
-
5.在Windows搭建Nginx集群
-
6.解决Session共享问题
-
20Java JUC 线程高级
-
1.volatile 关键字
-
2.内存可见性分析
-
3.原子变量与CAS (Compare And Swap) 算法分 析
-
4.ConcurrentHashMap 锁分段机制
-
5.CountDownLatch 闭锁
-
6.实现 Callable 接口
-
7.Lock 同步锁
-
8.Condition 控制线程通信
-
9.线程按序交替
excel-从excel导入数据到数据库
>
0.需要使用jxl.jar 这个包
1.页面是
function exportcomp(meetingId){ //导入参会人员 url = $appServer/meeting/uploadPage.htm?meetingId= meetingId; window.open(url, 导入 , status,top=250,left=300,height=200,width=500,scrollbars=yes ); } <a href="javascript:void(0)" onclick= exportcomp($!meeting.id) style="margin-right:245px;">导入参会人员</a>2.然后是上传Excel到服务器的页面
<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>文件导入</title> <link href="$appServer/CSS/main.css" rel="stylesheet" type="text/css" /> <script language="Javascript"> function checkfile(){ var path = document.uploadform.path.value; if(path== ){ alert( 请选择文件 ); return false; } var i = path.lastIndexOf( . ); if(path.substring(i 1,path.length)!= xls ){ alert( 只能上传excel文件 ); return false; } document.getElementById( waitbar ).style.display = ""; return true; } function init(){ var t= $!ms ; if(t== Y ){ alert( 导入成功! ); var url = "$appServer/meeting/meetingDetail.htm?id=$!meetingId"; window.opener.location.href=url; window.close(); } } </script> </head> <body onload="init()"> <br /> <form name="uploadform" method="post" action="$appServer/meeting/upload.htm" enctype="multipart/form-data" onsubmit="return checkfile()"> <div style="margin-top:15px; margin:0 auto; width:500px;"> <fieldset style=" width:400px; padding:10px;padding-top:5px;text-align:left; border:1px solid #ae0001; "> <legend style="width:50px; color:#cb2121; font-weight:bolder; ">信息上传</legend> <div> <div class="wai"> <label for="fbwh" class="tt1 tt">请选择附件:</label> <div class="edit_r"> <input type="file" name="path" class=" sc-td" /> </div> </div> <div class="wai"></div> <table border="1" width="400" align="center" cellspacing="0" cellpadding="4" style="border-collapse: collapse" height="80"style="display:none;" id="waitbar"> <tr> <td style="font-size:12px;line-height:200%" align=center>企业导入中... <marquee style="border:1px solid #000000" direction="right" width="340" scrollamount="5" scrolldelay="10" bgcolor="#fcf5f5"> <table cellspacing="1" cellpadding="0"> <tr height=8> <td bgcolor=#3399FF width=8></td> <td></td> <td bgcolor=#3399FF width=8></td> <td></td> <td bgcolor=#3399FF width=8></td> <td></td> <td bgcolor=#3399FF width=8></td> <td></td> <td bgcolor=#3399FF width=8></td> <td></td> </tr></table></marquee></td> </tr> </table> </div> <div class="edit_botton"> <input type="hidden" name="meetingId" value="$!meetingId"/> <input type="submit" value="上传"><input type="reset" value="重置"></div> </fieldset> </div> </div> </fieldset> </div> </form> </body> </html>3.然后是
@RequestMapping(value = "/upload.htm") public ModelAndView upload(Long meetingId,HttpServletRequest request,Model model,UserAgent user) throws Exception { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = multipartRequest.getFile("path"); String path=uploadService.UploadCompFile(multipartFile); List list=ExcelUtil.readexToMeetingNotice(new File(path)); for(int i=0;i<list.size();i ){ System.out.PRintln("list" list.get(i).toString()); MeetingPerson s = (MeetingPerson) list.get(i); s.setMeetId(meetingId); s.setOwner(user.getId()); meetingPersonService.addMeetingPerson(s);//这个就是简单地循环插入就不介绍了 } model.addAttribute("ms", "Y"); model.addAttribute("meetingId", meetingId); return null; } public String UploadCompFile(MultipartFile multipartFile) throws Exception { checkUploadFile(multipartFile); int position = multipartFile.getOriginalFilename().lastIndexOf("."); String suffix = multipartFile.getOriginalFilename().substring(position); String filename = DateUtils.llFormat(new Date()) suffix; try { File f = new File(rootPath filename); if (!f.exists()) { f.mkdirs(); } multipartFile.transferTo(f); } catch (IllegalStateException e) { logger.error("保存文件失败", e); throw new Exception("保存文件失败"); } catch (IOException e) { logger.error("保存文件失败", e); throw new Exception("保存文件失败"); } return rootPath filename; } public class ExcelUtil { public static List readex(File file) { Workbook wb = null; try { // 构造Workbook(工作薄)对象 wb = Workbook.getWorkbook(file); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (wb == null) return null; List<Complist> list = new ArrayList<Complist>(); int sheernum = wb.getNumberOfSheets(); for (int i = 0; i < sheernum; i ) { Sheet sheet = wb.getSheet(i); //Sheet sheet = wb.getSheet(0);// 只取**个excel表格 Complist complist = new Complist(); complist.setAreaid(0l); List<Comp> temp = new ArrayList<Comp>(); // 得到当前工作表的行数 int rowNum = sheet.getRows(); for (int j = 1; j < rowNum; j ) { Cell[] cells = sheet.getRow(j); if (cells != null && cells.length > 0) { String firstcell = cells[0].getContents().trim(); if (firstcell.equals("0")) {// 代码为0 String area = cells[1].getContents().trim(); Long id = getidbyarea(area); if (id != 0) {// 各地区 if (complist.getAreaid() != 0l) {// 不是**个地区 complist.setList(temp); temp = new ArrayList<Comp>();// temp 清空 list.add(complist); complist = new Complist();// complist 清空 } complist.setAreaid(id);// 地区id } } else if (firstcell.equals("")) { // 无操作 } else if (firstcell.equals("代码")) { // 无操作 } else { Comp comp = new Comp(); comp.setCompcode(cells[0].getContents().trim());//公司代码 comp.setComp(cells[1].getContents().trim());// 公司名称 if(StringUtils.isNotBlank(cells[2].getContents().trim())){ comp.setMoney(Double.parseDouble(cells[2].getContents().trim()));// 金额 }else{ comp.setMoney(0.0);// 金额 } // if (cells.length!=3||cells[2].getContents().trim().equals("否")||cells[2].getContents()==null||cells[2].getContents().equals("")) { // comp.setStep(1);// 不应诉 // } else if (cells[2].getContents().trim().equals("是")) { // comp.setStep(2);// 应诉 // } temp.add(comp); } } } if (complist.getAreaid() != 0l) {// 不是空表格时 将**后一个地区加入列表 complist.setList(temp); list.add(complist); } } // **后关闭资源,释放内存 wb.close(); return list; } public static List readexToMeetingNotice(File file) { List<MeetingPerson> temp = new ArrayList<MeetingPerson>(); Workbook wb = null; try { // 构造Workbook(工作薄)对象 wb = Workbook.getWorkbook(file); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (wb == null) return null; List<Complist> list = new ArrayList<Complist>(); int sheernum = wb.getNumberOfSheets(); for (int i = 0; i < sheernum; i ) { Sheet sheet = wb.getSheet(i); //Sheet sheet = wb.getSheet(0);// 只取**个excel表格 // 得到当前工作表的行数 int rowNum = sheet.getRows(); for (int j = 1; j < rowNum; j ) { Cell[] cells = sheet.getRow(j); //排除掉空行 if (cells != null && cells.length > 0) { String firstcell = cells[0].getContents().trim(); //说明是**行提示 姓名 电话 职务等说明行 if (firstcell.equals("姓名")) { // 无操作 } else if (firstcell.equals("")) { // 无操作 } else { MeetingPerson meetingPerson = new MeetingPerson(); meetingPerson.setName(cells[0].getContents().trim()); meetingPerson.setDepName(cells[1].getContents().trim()); meetingPerson.setPost(cells[2].getContents().trim()); meetingPerson.setPhone(cells[3].getContents().trim()); meetingPerson.setMobile(cells[4].getContents().trim()); meetingPerson.setEmail(cells[5].getContents().trim()); temp.add(meetingPerson); } } } } // **后关闭资源,释放内存 wb.close(); return temp; } public static void main(String args[]) { List list = readex(new File("D://1.xls")); System.out.println("size:" list.size()); for (int i = 0; i < list.size(); i ) { Complist comp = (Complist) list.get(i); System.out.println(comp.getAreaid()); } } }
相关推荐:
上一篇:张家港Java编程培训费用_张家港JAVA培训 下一篇:昆山Java实战培训课程哪个好_昆山JAVA培训