事物只读
<font color=#FFA500>错误:</font>
java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
<font color=#FFA500>解决方法:</font>
事务配置在service层,但是你的service层的方法是不是<事务管理器>指定开头的,service调用的x方法根本就没有事务或者设置为了read-only。修改你service方法的开头变成不是read-only的那种配置,如已经设置的开头
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="Exception" />
<tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="Exception" />
<tx:method name="modify*" propagation="REQUIRED" read-only="false" rollback-for="Exception" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="Exception" />
<tx:method name="del*" propagation="REQUIRED" read-only="false" rollback-for="Exception"/>
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:attributes>
</tx:advice>
this
取上一层级的参数值 this.prev()
浏览器适配
//子窗口弹框
window.showModalDialog()//在chrome里不适用
window.open(pageURL,name,parameters)//替代
数据库连接失效
采取了两个方法解决:
1.在数据库连接xml里增加条件
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="{SUB_DATABASE_MAX_TIME}"/>
<property name=“validationQueryTimeout" value="{VALID_ATION_QUERY_TIMEOUT}"></property>
2.数据库轮询(轮流访问数据库操作)
public void job() {
log.info("任务调度,每隔1分钟访问一次数据库---开始..........................");
log.info("连接审计系统数据库--start--");
auditPrjStatusMapper.selectAuditdbtOracle();
log.info(“连接审计系统数据库—end--");
log.info(“任务调度,每隔1分钟访问一次数据库---结束..........................");
GET请求和POST请求的区别
两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST
GET - 从指定的资源请求数据
POST - 向指定的资源提交要处理的数据
GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。
在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数.
- GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中,这种区别对用户是不可见的
- GET方式对传输的数据大小有限制,通常不能大于2KB,而POST方式传递的数据量要比GET方式大得多,理论上不受限制
- GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题