篇一:达内培训总结
我2010年毕业,第一年做的是销售的工作,做了一年,没有什么业绩,我逐渐认识到自己的特定不适合做销售,于是我决定来济南达内培训自己比较喜欢的编程,我做这一决定并不是心血来潮,而是经过深思熟虑的。我当初的想法是学完编程就去一家日资企业工作,期间锻炼自己的编程能力和外语能力,为以后更好的发展打下基础。但刚来达内的时候我心里很没有底,因为自己以前并没有接触过java,只是在大学期间有一点c语言基础,对于自己能否学好java非常没有信心。但我觉得,既然自己决定的事就要自己负责,况且每一个高手都从菜鸟走过来的,所以我下决心要好好学。达内的项目经理非常负责,有什么不会的问就可以,即使有时候项目经理也不能解决,我们还可以发邮件直接询问授课老师。在头一个月,我觉得很吃力,有些问题怎么想也搞不懂,弄得我非常焦躁,可是我坚信只要坚持就可以成功,所以遇到不会的问题我会先自己思考,实在想不出就问其他基础好的同学,就这样日复一日,我的困惑虽然还有,但自己心里有底了,觉得java可以学好。多谢同学的帮助,我真的认为到这个学校其实学习氛围才是最重要的,我们遇到问题可以互相讨论,没有人觉得不好意思,通过互帮互助我们学到了很多java编程的捷径和陷阱,我们每个人都在进步,这种感觉很棒。这种状态一直持续到做项目,项目一开始,我觉得没有头绪,思维跟不上老师的步伐,此时我对之前建立起来的自信产生了怀疑,但老师及时开导我们,他说,一开始都会这样,只要你踏踏实实去做,一步一个脚印,不管做多做少,都是一种进步,我听老师的话,每一个问题,每一个细节,我都经过独立思考,期间虽然很痛快,但我渐渐有了自己的头绪,这使我信心倍增。之后的每一天我都觉得过得好快,经过八天的努力,我也基本把全部项目的功能完成了!自己觉得非常自豪,回想一下,四个月前我还是一无所知的脑残,现在竟然可以独立完成当当网这么复杂的项目,我真的觉得自己这四个月没有虚度,同时也对以后的IT之路充满自信!真的非常感谢我的同学,老师,项目经理,没有他们我不可能取得如此的成绩。
篇二:达内科技实训项目
JavaWEB应用编程
JSP、Servlet2.5
开发工具:Eclipse+Myeclipse、NetBeans
服务器:Weblogic9.0 Websphere6.0 Jboss 4.x Tomcat 5.x
Struts2.0、Spring
开发工具:Eclipse+Myeclipse、NetBeans
服务器:Weblogic9.0 Websphere6.0 Jboss 4.x Tomcat 5.x
RMM,EJB3.0 JMS,Web服务 开发工具:Eclipse,Jbuilder,WSAD NetBeans/Sun Java Studio 服务器:Weblogic 9.0、Websphere6.0 Sun Java App Server 8/9、Jboss 4.X
掌握企业WEB应用开发的各种技术、并成为Java高级开发工程师 掌握软件设计模式,并使用MVC 模式框架开发,并成为有软件开发经验的高级开发工程师
掌握对企业最有价值的中间开发技术;
业务对象中间件,事物中间件,消息中间件,消息中间件,成为一个最有发展潜力的高级开发工程师 了解企业解决方案的前沿技术
GWAP1.0 平台:
一通用网上购物系统开发平台
MVC模式框架应用编程
GWAP2.0平台: ~在线商城 GWAP3.0平台: ~客户关系管理系统
中间件软件企业高级编程 GWAP4.0
~在线商城【在线支付】
~航班订票系统
企业解决方案前沿技术介绍
企业安全框架 Java设计模式
大型项目实习及软件开发经验培训
采用有亚信公司提供的“电信用户管理和计费系统NetCTOSS”,该系统已经在中国公用互联网ChinaNet和上海热线等多个大型软件工程中应用。该系统是一个典型的基于Unix平台、Oracle 数据库、Web界面、四层结构(Browser、
实习项目: Webcontainer、EJB container、电信用户Database)、融合Unix,Java和Oracle关系/计费技术的大型软件项目。子系统包括: 系统 1、 用户管理:采用Struts、Spring、
Hibernate实现
2、 话费数据采集:采用Java、
Socket网络编程实现
3、 账单查询:Struts、Spring、
Hibernate、EJB实现
4、 数据整合:采用JDBC、EJB,
Struts,Spring实现
参与完成实际项目,积累软件开发经验,经历完整的软件开发过程:需求,软件分析设计,编码,调试,
交付。
大型综合项目: ~电信用户管理/计费系统
~客户管理系统 ~当当网上购物系统 ~携程网上订票系统 ~人事考勤管理系统
篇三:达内学习心得:JDBC总结:系列笔记之四
达内学习心得:JDBC总结:系列笔记之四
参赛学员:常彦博
获奖奖项:二等奖
说明:(又花了几个小时把JDBC笔记转成了word版!笔记内容真实,都是课上及TTS上
内容,不是从网上复制粘贴来的!同时也不会去刷点击率!不想评分的按F5刷新页面即可!
不用选择分数,一旦选择就不能改了!也可以拿到电子版后再来评分!Q在下)
1)此笔记为本人系列笔记之一:Java、Oracle、PL/SQL、JDBC、XML、HTML、CSS、JavaScript、
Servlet??
2)笔记内容整理了:JDBC(范传奇老师主讲,占笔记内容100%)。
3)此笔记已打印出成品,一共19页!(不包括目录)。排版格式大部分按照毕业论文做的!
有目录、章节、页眉、页脚、缩进、一二三级标题等。同时排版格式也照顾到了双面打印,
所以电子版可直接双面打印,不需要调格式。
因此,本人的系列笔记平均花费20个小时以上(笔记纯手工输入)!每天的总结、排版很辛
苦!之前有很多朋友拿到了我分享的笔记,因此还望各位尊重他人劳动成果(你懂得~~)。
4)评选系统由于不能上传word版,所以格式、布局上不太好看,如文中的注意事项有特
殊项目符号,这里显示的是字母u和字母v,有的图片也不能显示!内容太长,老是提交失
败!只能一点一点发!
5)希望大家多多支持,评选结束后,我会找时间统一分享给大家所有的笔记!之前拿到过
的朋友,也可以再要,因为修改、更新了很多内容。
———————————————————————————————————————
————————————————————————————
目 录
一、 JDBC概述 1
1.1 什么是JDBC 1
1.2什么是驱动 1
1.3 SQL lite 1
1.4如何使用Java连接某种数据库 1
1.5连接数据库并操作 1
1.6连接数据库时常见的错误 1
二、 JDBC核心API 2
2.1 Connection 2
2.2 Statement 2
2.3 ResultSet 2
2.4 DriverManager 2
2.5 UUID3
2.6案例:使用JDBC连接数据库,并操作SQL语句 3
2.7案例:通过JDBC创建表 4
2.8案例:使用JDBC向表中插入数据 4
2.9遍历Student_chang表 5
三、 JDBC核心API:PreparedStatement 6
3.1Statement的缺点 6
3.2PreparedStatement的优点 6
3.3案例详见第五章StudentDAO类 6
四、 Connection封装 7
五、 DAO 8
5.1持久类封装 8
5.2 DAO层 8
5.3 Properties类 8
5.4案例:注册系统 8
六、 批处理 12
6.1批处理的优点 12
6.2 JDBC批处理API 12
6.3案例:详见8.4案例step7 12
七、 事务处理 13
7.1事务特性ACID 13
7.2 JDBC中对事务的支持(API) 13
八、 DAO事务封装 14
8.1ThreadLocal原理 14
8.2原理图 14
8.3ThreadLocal核心API 14
8.4案例:登录系统(使用ThreadLocal实现连接共享) 14
九、 分页查询 17
9.1分页查询的基本原理 17
9.2为何使用分页查询 17
9.3 Oracle分页查询SQL语句 17
9.4 MySQL分页查询SQL语句 17
9.5“假”分页 17
9.6案例:分页查询 18
一、JDBC概述
1.1 什么是JDBC
1)Java的设计者希望使用相同的方式访问不同的数据库。
2)JDBC是Java用于统一连接数据库并操作数据库的一组通用接口定义(即通过一系列接
口定义了访问数据库的通用API)。
3)JDBC是连接数据库的规范,不同的数据库厂商若想让Java语言可以对其操作,就需要
实现一组类,这组类需要实现Java提供的这组用于连接数据库的接口,并实现其中定义的
相关方法。那么不同的数据库厂商根据各自数据库的特点,去提供对JDBC的实现(实现类
包),那么这组类就是该数据库的驱动包了。
4)原理图:
1.2什么是驱动
简单的说就是让软件知道如何去操作硬件。
1.3 SQL lite
是轻量级的数据库,常用于嵌入式。
1.4如何使用Java连接某种数据库
需要两个部分:1)使用JDBC连接数据库(导入某数据库的.jar包)。
2)提供对该数据库的驱动包(使用静态方法Class.forName注册驱动)。
1.5连接数据库并操作
1)打开与数据库的连接(使用DriverManager.getConnection获取连接)。
2)执行SQL语句(使用Statement或者PreparedStatement)。
3)得到结果。
1.6连接数据库时常见的错误
1)报错ClassNotFoundException则有两种情况:
①驱动包没导入。
②Class.forName()中的字符串拼写有误。
2)报错port number,应注意:
①连接数据库时输入数据库路径时没有添加端口号。
②Oracle数据库的完整写法应为:jdbc:oracle:thin:@IP地址:端口号:数据库名
u 注意事项:Oracle数据库默认端口号1521。MySql数据库默认端口号为3306
二、JDBC核心API
2.1 Connection
接口,需导入java.sql.Connnection包,与特定数据库进行连接(会话)。
2.2 Statement
接口,需导入java.sql.Statement包,用于执行静态SQL语句并返回它所生成结果的对象。
1)ResultSet executeQuery(String sql) throws SQLException方法:执行给定的SQL语句(通
常为静态SQL SELECT语句),该语句返回单个ResultSet对象。
2)boolean execute(String sql) throws SQLException方法:执行给定的SQL语句,该语句可
能返回多个结果。如果第一个结果为ResultSet对象,则返回true;如果其为更新计数或者
不存在任何结果,则返回false。详细介绍请看2.6案例注释。
3)int executeUpdate(String sql) throws SQLException方法:执行给定SQL语句,该语句可
能为INSERT、UPDATE、DELETE(DML语句),或者不返回任何内容的DDL语句。返回
值:①对于数据操作语句(DML语句),返回行计数。②对于DDL语句,返回0。
4)boolean execute(String sql)方法:返回结果为true、false,常用与执行表级操作的SQL语
句,如建表、删表等,创建表若失败实际上是会直接抛出异常的。false:为建表成功的标志。
5)exectue()方法:原则上可以执行任意SQL语句。返回true:若执行结果为一个结果集
(ResultSet)。返回false:为其他信息(如影响表数据总条数等)。所以我们通常不会使用
execute去执行查询语句。
6)int executeUpdate(String sql) throws SQLException方法:返回值int,返回值为当前执行的
SQL语句影响了数据库数据的总条数;该方法常用与执行insert、update、delete语句。
7)在底层一定会用到网络Socket和流,但我们不用关心使用字符还是字节接收,都由
Statement做了。
2.3 ResultSet
接口,表示数据库结果集的数据表(很像一个集合),通常通过执行查询数据库的语句生成。
1)ResultSet特点:按行遍历,按字段取值。
2)它的next()方法包含了是否有下一条记录的hasnext()方法。
3)按字段取值时,getString(int)方法中的int,代表结果集的第几列,
u 注意事项:这里的int从1开始,和Java对索引的习惯不同。
2.4 DriverManager
它是管理一组JDBC驱动程序的类。
1)Connection getConnection(String url,String user,String password)方法:静态方法,建立与给
定数据库URL的连接(DriverManager试图从已注册的JDBC驱动程序集中选择一个适当的
驱动程序)。
2)DriverManager如何知道某种数据库已注册的?
例如:oracle.jdbc.driver.OracleDriver类在Class.forName()的时候被载入JVM;
而OracleDriver是JDBC中Driver的子类,它被要求在静态初始化的时候要将自身驱动的信
息通过DriverManager的静态方法注册进去,这样DriverManager就知道应该如何通过
OracleDriver去连接该数据库了。所以之后就可以通过DrvierManager的另一个静态方法:
getConnection()来根据之前注册的驱动信息获取连接了:
Connection conn=DriverManager.getConnetion("","","");
2.5 UUID
UUID为通用唯一标识码(Universally Unique Indentifier)对于大数据量的表来说,UUID是
存放ID最好的方式。
1)Java提供的支持
UUID类:UUID.randomUUID().toString():获得一个36位不重复的字符串。
2)Oracle提供的支持
函数sys_guid():获取一个32位不重复的字符串。
2.6案例:使用JDBC连接数据库,并操作SQL语句
/** 连接数据库一定要捕获异常的 */
Connection conn=null;//定义在try外面是用于在finally块中关闭它,同时局部变量在使用前,
一定要初始化!!
try{ /** 与数据库进行连接分为两步:1)注册驱动:不同的数据库实现不尽相同,所以要
使用不同数据库厂商提供的驱动包。连接不同数据库,传入的字符串不尽相同,但是目的相
同,都是注册驱动。而对于驱动包路径,名字是固定的,基本上不会变的!2)根据数据库
的位置(路径)以及用户名和密码进行连接 */
Class.forName("oracle.jdbc.driver.OracleDriver");
/** 路径:不同数据库连接的路径写法不尽相同,Oracle的写法:jdbc:oracle:thin:@HOST:DB_NAME
其中HOST包含两部分:IP地址和端口号;本机则使用localhost或127.0.0.1 */
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.20:1521:tarena",
"jsd1304","jsd1304");
/** 使用SQL语句来操作数据库,若想执行SQL语句,我们需要使用一个专门处理SQL语
句的类,这个类叫做Statement */
Statement state=conn.createStatement();
/** user_tables是Oracle用于存储当前用户创建的所有表的信息,其中一个字段叫做
table_name用户保存的表名 */
String sql="SELECT table_name FROM user_tables";
/** 通过Statement执行查询语句,当查询完毕后,数据库会将查询结果返回,Statement会
将查询结果存储到ResultSet中 */
ResultSet rs=state.executeQuery(sql);
while(rs.next()){ //按行遍历,包含了是否有下一条记录的方法hasnext()
/** 按字段取值;整数参数:结果集的第几列。注意:这里从1开始,和Java对索引的习
惯不同 */
String tableName=rs.getString(1);
System.out.println(tableName);
}
/** 底层一定会用到网络socket和流,但我们不用关心使用字符还是字节接收,都由Statement做了 */
rs.close();
state.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
u 注意事项: 养成良好的编码习惯:所有SQL关键字用纯大写,其他内容用纯小写 。
2.7案例:通过JDBC创建表
Connection conn=null;
try{ //1 注册驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2 打开连接,支持import java.sql.*,但全导入较耗费性能
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.0.20:1521:tarena","jsd1304","jsd1304");
//3 创建用于执行SQL语句的Statement
Statement state=conn.createStatement();
//创建建表语句
String sql="CREATE TABLE Student_chang(" +
"id varchar2(36) PRIMARY KEY," +"name varchar2(30)," +
"age number(2)," + "sex varchar2(2)" + ")";
//execute()方法详见2.2节
if(!state.execute(sql)){ System.out.println("创建表成功!");
}else{ System.out.println("创建失败!"); }
state.close();
}catch (Exception e){ e.printStackTrace();
}finally{ if(conn!=null){try { conn.close(); } catch (SQLException e) {
e.printStackTrace();}} }
2.8案例:使用JDBC向表中插入数据
Connection conn=null;
try{ Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.0.20:1521:tarena","jsd1304","jsd1304");
Statement state=conn.createStatement();