Java学习笔记

JAVA常用笔记

这是自己自学Java的笔记,可以从后面开始看,后面有具体代码教程,jdbc连接数据库,spring的2中连接数据库方式,以及Hibernate 连接数据库方式

,关于SSH三大框架的整合,正在一步一步的更新,做好之后所有的图文教程会更新上来。

csdn上面的都是没有图片的,请去下载带图片的教程,傻瓜式开发,各种图文介绍

目录12 SSH实战进阶前面的都是我自学的一些理论讲解可看不可看,重点为12 SSH实战进阶 傻瓜式图片教程连接数据库操作等,目前只写到Spring和Hibernate后面会整合Struts进来

 

DOC附带图片介绍的DOC下载地址,里面图片实在太多了,拉过来很麻烦

http://download.csdn.net/detail/qq873113580/8728589

 

目录概要

1 MyEclipce自动提示设计

                             

2 JavaWeb的部署

3 JSP页面元素

3.1 include在页面用法

主要是用来在一个页面中使用其他页面,类似ifram的用法,HTML页面中ifram用法

<ifram src=”a.html”/>

Java中可以使用ifram也可以使用include

语法:<%@ include file="a.jsp"%>

需要注意所引用的页面,如a.jsp里面不能有其他代码

3.2 表达式

语法:<%=表达式%>

输出 

3.3 小脚本

语法:<% java代码 %> 也就是net cs类里面写的东西,可以集合表达式用,例如

3.4 声明

语法:<%! Java方法%>

3.5 java注释

<!—这里客户端能看到à 缺点:不安全,加大网络传输负担

<%--这里客户端不能看到--%>

<% //单行注释 %>

<% /*多行注释*/  %>

4 常用内置对象

4.1 out

输出对象,常用方法out.print() out.println() out.write()

输出内容到网页,三个方法都一样,不受方法名的影响,比如println是输出换行的意思,但是这里是输出在网页,知会根据输出内容处理在html页面处理

4.2 session

常用方法很多,具体列举3

<%--赋值 --%>

 <%session.setAttribute("userName","张三");%>

 <%--取值值 --%>

 <%=session.getAttribute("userName")%>

 <%--删值 --%>

  <%session.removeAttribute("userName");%>

4.3 request

请求方式:<%=request.getMethod()%><br>
请求的资源:<%=request.getRequestURI()%><br>
请求用的协议:<%=request.getProtocol()%><br>
请求的文件名:<%=request.getServletPath()%><br>
请求的服务器的IP<%=request.getServerName()%><br>
请求服务器的端口:<%=request.getServerPort()%><br>
客户端IP地址:<%=request.getRemoteAddr()%><br>
客户端主机名:<%=request.getRemoteHost()%><br>
表单提交来的值:<%=request.getParameter("name")%><br>

表单的多个值:<%=request.getParameterValues ("name")%><br>

设置编码:<%=request.request.setCharacterEncoding(“utf-8”)%><br>

 

转发

request.getRequestDispatcher("a.jsp").forward(request,response);

页面转发效率高,同时request中的对象还可以在下一页面使用

 

4.4 application

4.5 response

重新定向客户端的请求

<% response.sendRedirect(“a.jsp”)%>

页面转向时requestresponse的信息都丢失了,它是重新发起一个定向请求,和原先的没有关系了.由于它是新的定向请求,所以效率不高。页面转向可以用在同一个应用中,也可以用在不同应用中。也就是说redirect可以转到外部系统。

 

转发

request.getRequestDispatcher("a.jsp").forward(request,response);

页面转发效率高,同时request中的对象还可以在下一页面使用

4.6 cookie

5 Java Bean的使用

也就是在jsp页面调用后台类

6 界面自动调整快捷键

Alt+Shift+S+F

7 ELJSTL标签语言

7.1 EL语法${user.Name}${user[“Name”]}

7.1.1 内置对象

常用4中内置对象,取值范围从小到大pageScope<requestScope<sessionScopr<applicationScope

使用例子

对象访问方式

 

 

7.1.2 C标签的 set out remove标签

首先引用

<%@ tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>

8 Servlet用法

创建servlet文件,系统会自动生成,然后在web.xml里面找到url访问路径

 

9使用Servlet做一个简单登录

 

 

 

 

 

 

还需要注意一点的是字符串比较,尽量用equel方法==符号不一定适用,java里面字符串对比的是地址,值类型才用==

 

 

 

 

10 Spring框架

10.1 Spring是什么

Strutsweb框架用于操作(jsp,Action,actionForm

Hibernateorm,处于持久层

Spring是容器框架,用于配置bean,维护bean之间的关系

Spring中有一个非常概念bean(是java中任何一种对象,可以是server,action,数据源,dao)

重要概念

IOC(控制反转)  DI(依赖注入)

 

画一个层次图理解spring处于什么位置

10.2 Spring框架组成

10.3 Spring给我带来什么

10.4 Spring第一次例子

10.4.1 准备工作

最好下载第二个压缩包

10.4.2 创建一个普通JavaProject项目

10.4.3单元测试
10.4.3.1 没有Spring的单元测试

创建一个源文件夹,用来存放测试程序生成的代码

右键src,选择new找到soruce floder

选择需要测试类,右键,new 选择Junit test case

运行单元测试

10.4.3.2Spring里面的单元测试

系统自动引用Spring

在工具栏Myeclipse->Project Facets[Capabilities]->Install Sprint Facets

 

10.4.3.3总结

 

10.5 什么是IOCDI

10.5.1 概念

回顾上个例子中,需要吧Hello方法做成一个接口方法,分别被English类和Chinese类,实现,做成一个英文版和中文版的欢迎

10.5.1.1 例子小结

上面使用接口做成了一个类似语言包的配置模式,一个Hello接口里面定义一个SayHello方法,分别被EnglishChinese类实现,也就是中文版和英文版的区别,然后在applicationContent.xml里面配置一个 <bean id=’hello’, class=’xxxxx.Chinse’>

在程使用BeanFactory factory=newClassPathXmlApplicationContext(“app…xml”);

返回一个接口

Helloh=(Hello)factory.getBean(“hello”);

后面只需要修改配置文件中的class地址,就能指定调用哪个语言版本,而不用修改源程序

 

10.5.2 什么是依赖关系

也就是父类和子类的关系,父依赖于子

 

10.5.3 DI概念(也就是依赖注入)

运行期的动态注入,在运行期读取配置文件,自动生成具有依赖关系的对象

10.5.4 IOC概念(也就是控制反转)

10.5.5 DI的注入类型

10.5.5.1 Setter 设值注入方式

就是类似NETBLL里面调用dal的方法

例如

Public class UserBLL{

 PrivteUserDal dal=new UserDal();

 

Public string GetName()

{

Return dal.GetName();

}

}

这个BLLJava里面就叫做设值注入方式

下面是java的例子

10.5.5.2 构造器注入方式

10.6 Spring中的Bean

10.6.1 JavaBeanSpring中的重要地位

10.6.2 BeanFactory

10.6.3 ApplicationContent

10.6.4 WebApplicationContent

 

10.7 Spring与松耦合的软件系统

层与层用new 导致的问题,而不是用接口,跟上面例子中英文配置类似,做好接口和dal层之后,可以根据配置去调用不同数据库的读取方式,而不用修改程序,也就是jdbc要还hibernate或者其他方式实现等

10.8 Spring与数据持久层

10.8.1 Spring 自带JDBC连接方式

10.8.2 Spring自带JDBC的具体实现代码

 

10.8.3 对上来说更加简便的Spring JDBC访问

.

10.8.4 Spring Hibernate的支持

 

 

10.9 Spring与服务层(连接数据总结)

10.10 Spring的事物管理

10.10.1 编程性事物

 

10.10.2 模板形式的事物,不用手动提交和回滚

10.10.3 小结

10.10.4 声明型事物

 

这样配置好,dal里面就写任何的事物管理代码了

 

10.10.5 总结

 

10.11 Spring AOP

面向切面编程

r

11 Struts

11.1 Struts常用标签配制

11.1.1 主要constant标签配制


11.1.2 package 标签

 

11.1.3 属性驱动

 

11.1.4 模型驱动

11.1.5 标签实现模型驱动

 

 

 

控制Struts样式

 

 

 

12 SSH实战进阶

12.1 MySql数据JDBC库连接

12.1.1 下载驱动包

12.1.2 引用mysql驱动包

12.1.3 数据库

12.1.4 数据库连接代码

package com.db;

 

import java.sql.DriverManager;

 

publicclass DBHelper {

      //数据连接地址,格式jdbc:mysql://{数据库地址,127.0.0.1,localhost,等等}/{数据库名称}

      publicstaticfinal Stringurl = "jdbc:mysql://127.0.0.1/test?characterEncoding=utf-8";

      //驱动名称,一般都是根据不同的驱动包而选择的固定命名

      publicstaticfinal Stringname = "com.mysql.jdbc.Driver";

      //数据库用户

      publicstaticfinal Stringuser = "root";

      //数据库密码

      publicstaticfinal Stringpassword = "123456";

 

      publicjava.sql.Connectionconn = null;

      publicjava.sql.PreparedStatementpst = null;

 

      publicDBHelper(String sql) {

           try {

                 Class.forName(name);//指定连接类型

                 conn =DriverManager.getConnection(url,user, password);//获取连接

                 pst =conn.prepareStatement(sql);//返回执行SQl语句的对象

           } catch(Exception e) {

                 e.printStackTrace();

           }

      }

 

      publicvoidclose() {

           try {

                 this.conn.close();

                 this.pst.close();

           } catch(Exception e) {

                 e.printStackTrace();

           }

 

      }

}

12.1.5 调用例子1(查询)

package com.main;

 

import java.sql.ResultSet;

import java.sql.SQLException;

 

import com.db.DBHelper;

 

publicclass ProjectMain {

 

      publicstaticvoidmain(String[] args) {

           String sql = "select *from User";//SQL语句 

           DBHelper db = newDBHelper(sql);//创建DBHelper对象

           try {

                 //执行语句,得到结果集

                 ResultSet ret =db.pst.executeQuery();

                 System.out.println("ID                                                        \t名字      \t密码"); 

                 while (ret.next()) { 

                      String id =ret.getString(1); 

                      String name =ret.getString(2); 

                      String pwd =ret.getString(3); 

                      System.out.println(id+"\t" + name + "\t" + pwd); 

                 }

                 ret.close(); 

                 db.close();//关闭连接 

           } catch(SQLException e) {

                 e.printStackTrace();

           }

          

      }

 

}

12.1.6 调用例子2(增删改)

 

12.2 Spring 自带JDBC模板

12.2.1 数据库

12.2.2 对应的model

12.2.3 引用spring框架

12.2.3 引用MySql驱动包

 

12.2.4 配置数据源对象

<beanid="dataSource"

           class="org.springframework.jdbc.datasource.DriverManagerDataSource">

           <propertyname="driverClassName">

                 <value>com.mysql.jdbc.Driver</value>

           </property>

           <propertyname="url">

                 <value>jdbc:mysql://127.0.0.1/test</value>

           </property>

           <propertyname="username">

                 <value>root</value>

           </property>

           <propertyname="password">

                 <value>123456</value>

           </property>

      </bean>

12.2.5 把数据源与Spring自带数据库处理类关联

 

<beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate">

           <propertyname="dataSource">

                 <reflocal="dataSource"/>

           </property>

      </bean>

 

12.2.6 4,5)中转换Net代码理解

applicationContext.xml配置文件在Spring中是一个大容器,用来定义一个类规则。上面4,5两章教程里面,转换成Net代码,如下:

 

 

12.2.7 UserDao中使用jdbcTemplate对象

package com.sptingjdbc.dao;

 

import java.sql.ResultSet;

importjava.sql.SQLClientInfoException;

import java.sql.SQLException;

 

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

 

import com.sptingjdbc.model.User;

 

publicclass UserDao {

      privateJdbcTemplatejdbcTemplate;

 

      publicvoidsetJdbcTemplate(JdbcTemplate jdbcTemplate) {

           this.jdbcTemplate =jdbcTemplate;

      }

      public UsergetUser() {

           String sql = "select * from user whereid='230d9957-ffa0-11e4-9541-b888e3f6853d'";

           User u = (User) jdbcTemplate.queryForObject(sql,newRowMapper() {

                 publicObjectmapRow(ResultSet rs, int rowNum)throws SQLException {

                      User us =newUser();

                      us.setId(rs.getString("ID"));

                      us.setName(rs.getString("Name"));

                      us.setPassword(rs.getString("Password"));

                      return us;

                 }

           });

           return u;

      }

}

12.2.8 Spring使用UserDao前还需要把UserDao配置到bean里面

<beanid="userDao"class="com.sptingjdbc.dao.UserDao">

           <propertyname="jdbcTemplate">

                 <reflocal="jdbcTemplate"/>

           </property>

      </bean>

12.2.9 整个配置文件

 

12.2.10 调用

BeanFactory factory= new ClassPathXmlApplicationContext("applicationContext.xml");

           UserDao  userDao =(UserDao)factory.getBean("userDao");

           User us= userDao.getUser();

           System.out.println(us.getId());

           System.out.println(us.getName());

           System.out.println(us.getPassword());

 

12.3 Spring JdbcDaoSupprot连接类

JdbcDaoSupprot类包含了JdbcTemplate模版

通过继承JdbcDaoSupport

然后通过this.getJdbcTemplate()获取jdbcTemplate模板对象

12.3.1 修改12.2UserDao

package com.sptingjdbc.dao;

 

import java.sql.ResultSet;

import java.sql.SQLClientInfoException;

import java.sql.SQLException;

 

import org.springframework.jdbc.core.JdbcTemplate;

importorg.springframework.jdbc.core.RowMapper;

importorg.springframework.jdbc.core.support.JdbcDaoSupport;

 

import com.sptingjdbc.model.User;

 

public class UserDao extends JdbcDaoSupport{

        

         publicUser getUser() {

                   Stringsql = "select * from user whereid='230d9957-ffa0-11e4-9541-b888e3f6853d'";

                   Useru = (User) this.getJdbcTemplate().queryForObject(sql, new RowMapper() {

                            publicObject mapRow(ResultSet rs, int rowNum) throws SQLException {

                                     Userus = new User();

                                     us.setId(rs.getString("ID"));

                                     us.setName(rs.getString("Name"));

                                     us.setPassword(rs.getString("Password"));

                                     returnus;

                            }

                   });

                   returnu;

         }

}

12.3.2 配置的修改

由于JdbcDaoSupport类中自带DriverManagerDataSource的对象属性,且属性名叫dataSource,而UserDao继承了JdbcDaoSupport,那么UserDao也就自动有了父类的dataSource属性,所以配置的时候直接把dataSource直接给UserDao就行了

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"

      xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsd">

 

      <beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">

           <propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property>

           <propertyname="url"><value>jdbc:mysql://127.0.0.1/test</value></property>

           <propertyname="username"><value>root</value></property>

           <propertyname="password"><value>123456</value></property>

      </bean>

      <beanid="userDao"class="com.sptingjdbc.dao.UserDao">

           <propertyname="dataSource">

                 <reflocal="dataSource"/>

           </property>

      </bean>

</beans>

 

12.3.3 调用

 

12.3 Hibernate连接数据库

12.3.1 导入Hibernate

12.3.2 导入MySql

12.3.3 配置数据库连接

<!-- JDBC数据库配置 -->

           <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>

           <propertyname="connection.url">jdbc:mysql://127.0.0.1/test</property>

           <propertyname="connection.username">root</property>

           <propertyname="connection.password">123456</property>

 

12.3.4 model配置

12.3.5 model配置加入Hibernate配置

 

 

12.3.6 系统自动生成的SeesionFactory概念

12.3.7 调用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值