------------我不怕我是只乌龟,不过只要我一点点的跑,就绝对可以到达终点的-----
★目录如下所示:
1:怎么卸载oracle(不会时看看)
2:web中获取项目名称的代码:
3:使用异常处理来提示我们的哪里报错了,这个方法很重要:
4:jsp中注意的细节问题:
5:spring中的连接数据库的配置如下所示:
6:连接数据库的代码如下所示:
7:分页算法:
8:一些常用的dtd约束文件:
9:MD5算法:
10:取消右连接:可以清楚左浮动带来的不方便处理
11:怎么将数据从外面导入到mysql中,并解决乱码:
12:MySql中解决中文乱码的问题:
13:MySql中的外键约束:
14:Mysql中显示及修改字符集的代码:
15:卡片布局的原理:
16:mysql中导入表格中使用的命令是:
17:判断浏览器类型的代码如下所示:
18:客户端正则表达式应用:
19:注意几个在hibernate中开发的事项:
20:hibernate中的关系详解
21:清空session
22:在上传文件要在form中添加属性:enctype=”multipart/form-data”
23:可以直接使用引用的的方式进行设置参数,也可以使用外键
24:Ajax的一点知识:
25:Aax的建立:
26:JQuery技术的注意:
27:获取值栈3中方法,生命相当于request域
28:http协议头:
29:S1SH中的一些基本的配置
30:struts2.0的基本配置如下
31:for的高级形式
32:Junit中的三个注解:@Test @Before @After
33:hibernate中的注解:
34:文件的各类格式
35:java调用两种类型的存储过程和创建包的使用
1:怎么卸载oracle(不会时看看)
1、 开始->设置->控制面板->管理工具->服务停止所有Oracle服务。
2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除
3、 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。
4、 运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动 这个列表,删除所有Oracle入口。
5、 运行refedit, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application, 删除所有Oracle入口。
HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。
HKEY_CURRENT_USER|Software|Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs, 删除此键下所有以oracle为首的键。
HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了Microsoft ODBC FOR ORACLE注册表键以外的所有有Oracle字样的键值。
HKEY_我的系统上没找到相关的项
LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除以Oracle或OraWeb为前缀的键。
6、 开始->设置->控制面板->系统->高级->环境变量 删除环境变量CLASSPATH和PATH中有关Oracle的设定
7、 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标
8、 删除\Program Files\Oracle目录
9、 重新启动计算机,重起后才能完全删除Oracle所在目录
10、 删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入 口目录及所有子目录
11、 WIN.INI文件中若有[ORACLE]的标记段,删除该段
12、 如有必要,删除所有Oracle相关的ODBC的DSN
13、 到事件查看器中,删除Oracle相关的日志 说明:如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装,安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。
2:web中获取项目名称的代码:
pageContext.request.contextPath();--> /springSSHTest1
3:使用异常处理来提示我们的哪里报错了,这个方法很重要:
4:jsp中注意的细节问题:
5:spring中的连接数据库的配置如下所示:
★applicationContext.xml配置文件
*******Spring中的一些配置信息:*******
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 测试bean -->
<bean id="testService" class="com.cn.domain.TestService">
<property name="name" value="龚为明"></property>
</bean>
<!-- 配置我们的数据源 -->
<bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property>
<property name="username" value="scott"></property>
<property name="password" value="123456"></property>
<!-- 另外配置一下安全措施 -->
<!-- 配置初始时开启多少个连接池 -->
<property name="initialSize" value="3"></property>
<!-- 配置最多开启多少个连接池,一般就是500个就可以了,要更多在修改即可-->
<property name="maxActive" value="500"></property>
<!-- 配置最大空闲开启多少个连接池 -->
<property name="maxIdle" value="2"></property>
<!-- 配置最小空闲开启多少个连接池,意思是,你不用的时候,会自动的销毁 -->
<!-- 最好开启一个连接池 -->
<property name="minIdle" value="1"></property>
</bean>
<!-- 接着配置bean工厂了 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="basicDataSource"></property>
<property name="mappingResources">
<list>
<!-- 这里配置spring管理的bean -->
<value>com/cn/domain/Employee.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
<!-- 这里的值绝对不能写错哦,否则会出好多错,难以调试 -->
hibernate.dialect=org.hibernate.dialect.OracleDialect
//这个是我们的mysql连接的方案名称
//hibernate.dialect=org.hibernate.dialect.MySQLDialect
//sqlserver方案名称
//Hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
<!-- 配置我们的EmployeeServiceImp -->
<bean id="employeeServiceInter" class="com.cn.service.imp.EmployeeServiceImp">
<!-- 获取上面的sessionFactory工厂 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事物管理的机制 -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置完之后还必须启动事物才会生效 -->
<tx:annotation-driven transaction-manager="txManager"/>
</beans>
<!--开启的时候是使用注解的方法进行开启事物管理-->
@Transactional
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
<!--可以让我们的web层可以和spring有关联了,web.xml配置文件-->
<!--这段代码可以在action中获取到spring实例-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--对下spring容器进行实例化-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--配置二级缓存-->
<property name="hibernateProperties">
<value>
hibernate.cache.user_second_level_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.generate_statistics=true
</value>
</property>
<!--启动注解:就不用在程序设置属性,直接在配置中解决-->
<context:annotation-config></context:annotation-config>
<!--自动扫描以com打头的配置文件-->
<context:component-scan base-package=”com”/>
然后在文件中可以Action中使用@Controller @Resource
Service可以配置:@Transaction @Service
6:连接数据库的代码如下所示:
//sql2005的JDBC连接
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=book
//sql2005数据库桥接(桥接都差不多)
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:mytest
//sql2008的JDBC连接:(引入sqljdbc4.jar)
com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test
//oracle数据库JDBC连接
Class.forName("oracle.jdbc.driver.OracleDriver");
ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","123456")
//mysql数据库JDBC连接在hibernate中这样连接,
☛在spring中org.gjt.mm.mysql.Driver是这样连接的
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/myscottdb","root" ,"root"
在ssh中driverClassName: => org.gjt.mm.mysql.Driver
☛为了不乱码可以加上解决乱码的代码:
jdbc:mysql://localhost:3306/myscottdb?useUnicode=true&characterEncoding=UTF-8","root" ,"root"
7:分页算法:
1:oracle中的分页
1:int pageCount = rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;
2:int pageCount=(rowCount+1)/pageSize-1;
3:select * from (select a1.*, rownum rn from (select * from emp) a1 where rownum<=10) where rn > 10;
--使用between..and的算法进行分页算法演示
4:select * from (select A.*, rownum rn from (select * from employee) A) where
rn between 20 and 40
1. SELECT * FROM
2. (
3. SELECT A.*, ROWNUM RN
4. FROM (SELECT * FROM TABLE_NAME) A
5. )
6. WHERE RN BETWEEN 21 AND 40
2:mysql分页算法
Select * from 表明 limit 从第几条起(从0开始),起多少条
Select * from employee limit 2,3;
--java中的:Select * from employee (pageNow-1)*pageSize,pageSize
3:sql server分页算法
select 10 * from employee where id not in (
select top 20 id from employee order by id)
4:hibernate中的分页
query.setFirsetResult();
query.setMaxResult()
8:一些常用的dtd约束文件:
1:struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
1.1:struts-config.xml中配置spring代码如下所示:
<!-- 注意这里controller有顺序的,
那么以后就直接放在action-mapping之后好吧-->
<!-- 让action中到spring中去实例化我们的
Action对象DelegatingRequestProcessor-->
<!-- 有了这个配置,action就会自动的到spring中去加在实例了-->
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
<message-resources parameter="com.struts.ApplicationResources" />
2:xxx.hbm.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.cn.domain">
<class name="Employee" table="employee">
<cache usage="read-write"/>使用二级缓存
<id name="id" type="java.lang.Integer">
<!-- 这个native可以自动选择你的数据库类型进行匹配-->
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true"></column>
</property>
<property name="email" type="java.lang.String">
<column name="email" length="16"></column>
</property>
<property name="password" type="java.lang.String">
<column name="password" length="6" not-null="true"></column>
</property>
<property name="grade" type="java.lang.Integer">
<column name="grade"></column>
</property>
<!-- 配置关系映射文件 -->
<many-to-one name="dept" column="dept_id"></many-to-one>
</class>
</hibernate-mapping>
3:hibernate.cfg.xml:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="connection.username">scott</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">
oracle.jdbc.driver.OracleDriver
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- 管理映射的表 -->
<mapping resource="com/cn/domain/Course.hbm.xml" />
<mapping resource="com/cn/domain/Student.hbm.xml" />
<mapping resource="com/cn/domain/Studcourse.hbm.xml" />
</session-factory>
</hibernate-configuration>
4:web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<!--这个可以解决懒加载的问题-->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 添加一段可以直接实例化spring的配置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- 这里可以加在spring,进行实例化-->
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 对spring进行实例化 ,这里有一个listener的接口-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
9:MD5算法:
import java.security.*;
import java.security.spec.*;
class MD5_test {
public final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try{
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
}catch (Exception e) {
return null;
}
}
10:取消右连接:可以清楚左浮动带来的不方便处理
}
11:怎么将数据从外面导入到mysql中,并解决乱码:
☛load data local infile‘D:/data/a.txt’ into table table1
fields terminated by ‘\t’
☛set character_set_results=gb2312;
12:MySql中解决中文乱码的问题:
☞ 小技巧:
mysql 自带的client 默认支持 utf8 码,所有我们在添加中文的时候,需要设置让client支持gbk
* show variables like ‘char%’; //显示关于字符的设置参数
* set character_set_client=gbk; //可以存中文
* set character_set_results=gbk; //可以看中文
☛mysql中的类型如下所示:
13:MySql中的外键约束:
create table department(
id int(11) primary key auto_increment,
dname varchar(30) unique not null
)
create table employee(
e_id int(11) primary key auto_increment,
ename varchar(30) unique not null,
constraint Foreign_KY foreign key(e_id) references department(id)
)
14:Mysql中显示及修改字符集的代码:
1:show variables like ‘char%’;
2:set names utf8;
3:show create table employee;
4:show create database scott;
15:卡片布局的原理:
16:mysql中导入表格中使用的命令是:
注意:前提是必须保证我们的这个这个保存的格式和数据库的格式要一样
可以使用这命令创建数据库并制定格式:create database gwm character set utf-8
☛load data local infile 'F:/data/university.txt' into table university fields terminated by '\t';
17:判断浏览器类型的代码如下所示:
1:
window.οnlοad=function aa(){
if(window.ActiveXObject){
alert(“IE浏览器”):
}else{
alert(“火狐浏览器”);
}
}
2:
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}
</script>
18:客户端正则表达式应用:
function checkValue(){
varval=document.getElementById("inputNode").value;
if(val==""){
alert("请输入值!");
return;
}
if(val<0 || val>${pageCountPage}){
alert("请你输入<1>到<"+${pageCountPage}+">之间的数");
return;
}
varreg=/^[a-zA-Z_]{1,}$/;
/*var reg=new RegExp("[a-zA-Z_]{1,}");*/
if(val.match(reg)){
alert("请输入数字!");
return;
}
19:注意几个在hibernate中开发的事项:
1:当我们的修改外键的时候:可以使用dept_id字段,而不是使用dept对象进行插入,
2:在增减的时候,确实使用对象进行增加字段的哦
20:hibernate中的关系详解
要想删除那个表就级联(cascade=”all”)那个表就可以了
21:清空session
22:在上传文件的时候记得要在form中添加属性:
编码类型:enctype=multipart/form-data
文件类型:FormFile
23:可以直接使用引用的的方式进行设置参数,也可以使用外键哦
24:Ajax的一点知识:
Spring中不能配置Servlet,Ajax目录不能放在WEB-INF否则不能访问
但是在tomcat中Ajax可以和我们的Servlet打交道
25:Aax的建立:
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
//创建AJax对象
function getXmlHttpReuqest(){
var xmlHttpRequest;
if(window.ActiveXObject){
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttpRequest=new ActiveXObject();
}
return xmlHttpRequest;
}
var myXmlHttpRequest="";//定义全局变量
function checkName(){
myXmlHttpRequest=getXmlHttpReuqest();
if(myXmlHttpRequest){
//建立连接地址
//var url="/php/response.php?username1="+$("val").value+"";
//使用post提交
var url="/php/response.php";
var data="username1="+$("val").value+"";//将数据进行封装然后发送
//打开连接
//myXmlHttpRequest.open("get",url,true);//异步
//使用post
myXmlHttpRequest.open("post",url,true);
//这个是回调函数,用于返回结果
myXmlHttpRequest.onreadystatechange=chuli;
//使用post提交需要加这段代码就可以了
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//正式开始发送(因为是get提交,所以可以不用带信息,信息都在地址栏上显示)
//myXmlHttpRequest.send();
//讲data发送过去
myXmlHttpRequest.send(data);
}
}
//服务器返回的结果交给了这个处理函数进行处理
function chuli(){
//alert("我是回调函数!"+myXmlHttpRequest.readyState);
if(myXmlHttpRequest.readyState==4){
alert("服务器返回的是:"+myXmlHttpRequest.responseText);
}
}
function $(id){
return document.getElementById(id);
}
</script>
26:JQuery技术的注意:
在append的时候,不要在<input type=”submit”vlaue=”提交”/>上面注册监听事件
否则是不会关联到我,否则插入的时候是不会插入进去的
27:获取值栈3中方法,生命相当于request域
ValueStack valueStack=ActionContext.getContext().getValueStack();
ValueStack valueStack2=ServletActionContext.getValueStack
(ServletActionContext.getRequest());
ValueStack valueStack3=(ValueStack)ServletActionContext.getRequest().getAttribute("struts.valueStack”);
28:http协议头:
u http请求消息头
1) Accept: text/html,image/* [告诉服务器,我可以接受文本,网页,图片]
1. Accept-Charset: ISO-8859-1 [接受字符编码 iso-8859-1]
2. Accept-Encoding: gzip,compress [可以接受 gzip,compress压缩后数据.]
3. Accept-Language: en-us,zh-cn [浏览器支持中,英文]
4. Host: www.sohu.com:80 [我要找主机是 www.sohu.com:80]
5. If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT [ 告诉服务器,我的缓冲中有这个资源文件,该文件的时间是。。。]
6. Referer: http://www.sohu.com/index.jsp [告诉服务器,我来自哪里,该消息头,常用于防止盗链]
7. User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)[告诉服务器,浏览器内核]
8. Cookie [cookie??]//所有浏览器共享的会话技术
9. Connection: close/Keep-Alive [保持连接,发完数据后,我不关闭连接]
10. Date: Tue, 11 Jul 2000 18:23:51 GMT [浏览器发送该http请求的时间]
u http响应消息头详解
n Location: http://www.baidu.org/index.jsp 【让浏览器重新定位到url】
n Server:apache tomcat 【告诉浏览器我是tomcat】
n Content-Encoding: gzip 【告诉浏览器我使用 gzip】
n Content-Length: 80 【告诉浏览器会送的数据大小80节】
n Content-Language: zh-cn 【支持中文】
n Content-Type: text/html; charset=GB2312 [内容格式text/html;编码gab2312]
n Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 【告诉浏览器,该资源上次更新时间】
n Refresh: 1;url=http://www.baidu.com【过多久去,刷新到 http://www.baidu.com】1秒钟之后跳转到baidu页面去
n Content-Disposition: attachment; filename=aaa.zip【告诉浏览器,有文件下载】aaa.zip资源的名称有你自己提供资源
n Transfer-Encoding: chunked [传输的编码]
n Set-Cookie:SS=Q0=5Lb_nQ; path=/search[后面详讲]
n Expires: -1[告诉浏览器如何缓存页面IE,-1不缓存,正数表示要缓存多久]
n Cache-Control: no-cache [告诉浏览器如何缓存页面火狐]
n Pragma: no-cache [告诉浏览器如何缓存页面]
n Connection: close/Keep-Alive [保持连接1.1是Keep-Alive]
n Date: Tue, 11 Jul 2000 18:23:51 GMT
29:S1SH中的一些基本的配置
*******Spring中的一些配置信息:*******
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 测试bean -->
<bean id="testService" class="com.cn.domain.TestService">
<property name="name" value="龚为明"></property>
</bean>
<!-- 配置我们的数据源-->
<bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property>
<property name="username" value="scott"></property>
<property name="password" value="123456"></property>
<!-- 另外配置一下安全措施-->
<!-- 配置初始时开启多少个连接池-->
<property name="initialSize" value="3"></property>
<!-- 配置最多开启多少个连接池,一般就是500个就可以了,要更多在修改即可-->
<property name="maxActive" value="500"></property>
<!-- 配置最大空闲开启多少个连接池-->
<property name="maxIdle" value="2"></property>
<!-- 配置最小空闲开启多少个连接池,意思是,你不用的时候,会自动的销毁-->
<!-- 最好开启一个连接池-->
<property name="minIdle" value="1"></property>
</bean>
<!-- 接着配置bean工厂了-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="basicDataSource"></property>
<property name="mappingResources">
<list>
<!-- 这里配置spring管理的bean -->
<value>com/cn/domain/Employee.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
<!-- 这里的值绝对不能写错哦,否则会出好多错,难以调试-->
hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.format_sql=true
</value>
</property>
</bean>
<!-- 配置我们的EmployeeServiceImp -->
<bean id="employeeServiceInter" class="com.cn.service.imp.EmployeeServiceImp">
<!-- 获取上面的sessionFactory工厂-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事物管理的机制-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置完之后还必须启动事物才会生效-->
<tx:annotation-driven transaction-manager="txManager"/>
</beans>
<!--开启的时候是使用注解的方法进行开启事物管理-->
@Transactional
<!--可以让我们的web层可以和spring有关联了-->
<!--这段代码可以在action中获取到spring实例-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--对下spring容器进行实例化-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--配置二级缓存-->
<property name="hibernateProperties">
<value>
hibernate.cache.user_second_level_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.generate_statistics=true
</value>
</property>
30:struts2.0的基本配置如下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 配置了之后struts2.0就不会自动的生成xhtml标签了 -->
<constant name="struts.ui.theme" value="simple"></constant>
<!-- 包名称必须是唯一得extends="struts-default" -->
<!--
<constant name="struts.custom.i18n.resources" value="com.cn.resource.token"></constant>
-->
<package name="tokenAction" namespace="/" extends="struts-default">
<!-- 配置表单重复提交的拦截器-->
<interceptors>
<interceptor-stack name="myTokenStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<!--1:这个token拦截器不需要定义,内部提供好的
这里可以引入token这个拦截器,进行引用
2:不过如果你吊的话,就可以自己写一个拦截器,覆盖他
-->
<interceptor-ref name="token">
<!--
1:使用includeMethods属性对action中的
需要拦截的方法进行指定,这样才知道你要对那个
2:方法进行过滤 token是action中的一个方法
3:<param name="includeMethods">token,add,update,delete</param>
如果有多个方法需要被拦截的话就是用都好进行拦截
4:这个也是MethodFilterInterceptor类中的属性,使用param进行赋值
-->
<param name="includeMethods">token</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myTokenStack"/>
<action name="tokenAction_*" class="com.cn.token.TokenAction"
method="{1}">
<!-- 结果集 -->
<!-- 这是跳转到正确的页面显示配置如下所示:-->
<result name="token" type="dispatcher">index.jsp</result>
<!-- 1:返回到错误页面invalid.token这个键是固定的写法
2:这个是MethodFilterInterceptor类中的属性
-->
<result name="invalid.token" type="dispatcher">error.jsp</result>
</action>
</package>
</struts>
31:for的高级形式
for(Iterator<String> it=strList.iterator();it.hasNext();){
String str=it.next();
System.out.println(str);
}
☛这里的for循环第三个参数没有,只有第二个判断
32:Junit中的三个注解:@Test @Before @After
33:hibernate中的注解:
@Entity
@Table(name=””,schema=””)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(length=23,nullabel=false)
@Entity
@Table(name = "studentinfo", schema = "hibernatedemo")
public class Student {
private Integer id;
private String name;
private Integer sex;
private String studentno;
private Date brithday;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length = 30, nullable = false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(length = 10, unique = true, nullable = false)
public String getStudentno() {
return studentno;
}
public void setStudentno(String studentno) {
this.studentno = studentno;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
@Temporal(TemporalType.DATE)
public Date getBrithday() {
return brithday;
}
public void setBrithday(Date brithday) {
this.brithday = brithday;
}
}
34:文件的各类格式
☛在tomcat中的web.xml中可以看到各类文件的格式
<mime-mapping>
<extension>avi</extension>
<mime-type>video/x-msvideo</mime-type>
</mime-mapping>
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
35:java调用两种类型的存储过程和创建包的使用
36:设计八个方法方向移动技巧
1:我们可以在对象中定义四个boolean值的四个方向,up,down,left,down,然后在监听事件中通过控制键盘的值来赋值为true或者false:代码如下所示:
37:碰撞检测问题:当做一个矩形进行处理,这个awt提供了一个方法
intersects(new Rectangle())
☛双缓冲技术,可以将这个方法加在我们的这个Frame类中就可以了,但是利用swing的话,
会自动的解决这个问题
☛这里有个双缓冲技术可以解决老的awt进行解决屏幕闪烁问题
private ImageoffScreenImage=null;
public void update(Graphics g){
if(offScreenImage==null)
offScreenImage=this.createImage(Frame.WIDTH,Frame.HEIGHT);
Graphics gOff=offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage,0,0,null);
}