什么是java的预编译(java中什么是预编译precompile)
这篇文章给大家聊聊关于什么是java的预编译,以及java中什么是预编译precompile对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
java中什么是预编译precompile
预编译的作用就是把所以的代码都运行一遍,等你程序运行到模块A,这个时候需要到B模块,就可以直接调用,效果是启动慢,运行快;所以也称JAVA为静态语言,动态语言如JavaScript,特性就是当程序运行到C的时候需要调用D模块,这个时候才会编译D模块。希望对你有帮助,谢谢
在java中如何实现预编译
1.1预编译中使用like
在值的地方加%号,是这样用的
String sql="select* from t_Content where title like?";
ResultSet rs;
rs= null;
try{
rs= db.getResult(sql, new String[]{"%我省手机%"},0);
不是这样用的
String sql="select* from t_Content where title like%?%";
ResultSet rs;
rs= null;
try{
rs= db.getResult(sql, new String[]{"我省手机"},0);
1.2javaSQL预编译异常
if(!isOpened()){
openConn();
}
params[2]="aabbcc";
PreparedStatement stmt= session.connection().prepareStatement(sql);
if(params== null){
params= new Object[0];
}
for(int i= 0; i< params.length; i++){
Object o= params[i];
if(o!= null){
stmt.setObject(i+ 1, o);
}
}
SpecialLog.sendLog.info("SQL="+ sql);
SpecialLog.sendLog.info("params0="+((Long)params[0]).intValue());
SpecialLog.sendLog.info("params1="+((Long)params[1]).intValue());
SpecialLog.sendLog.info("params2="+ params[2]);
return stmt.executeUpdate();
这个params参数中如果有null值是会报错的:
java.sql.SQLException:索引中丢失 IN或 OUT参数::
1.3预编译语句支持in方式
package cn;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class Test{
/**
*@param args
*/
public static void main(String[] args){
DbConn conn= null;
ResultSet rs= null;
try{
conn= new DbConn();
List idLst= new ArrayList();
idLst.add(new Long(62946));
/*如果使用
idLst.add(new Long(62946));
strIn.append("?,");
idLst.add(new Long(73967));
strIn.append("?,");
idLst.add(new Long(62952));
strIn.append("?,");
不如使用下面的这种“根据参数列表的大小生成in串”更简洁、利索、清晰、隔离性好。要时时问自己,还有更好的方法吗?
*/
idLst.add(new Long(73967));
idLst.add(new Long(62952));
//根据参数列表的大小生成in串
StringBuffer strIn= new StringBuffer();
for(int i= 0; i< idLst.size(); i++)
{
strIn.append("?,");
}
strIn.deleteCharAt(strIn.length()- 1);
System.out.println(strIn);
String sql="select title from t_content where content_id in("+ strIn+")";
rs= conn.getResult(sql, idLst.toArray(), 0);
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch(Exception e){
e.printStackTrace();
} finally{
try{
if(rs!=null){
conn.close(rs);
rs=null;
}
} catch(Exception e1){
e1.printStackTrace();
}
if(conn!=null){
conn.close();
conn= null;
}
}
}
}
1.4在预编译中遇到的问题
1、报“插入的值过大”的错误,
是因为预编译语句中,不需要再为字符串加引号了,如果添加了引号,就会出错了。
2、怎么创建合适的日期对错呢:
pv[20]= java.sql.Date.valueOf(consumeDateYear);
pv[21]= java.sql.Date.valueOf(sufferDateYear);
java.util.Date已过时,但是java.sql.Date还没有过时。并且java.sql.Date.valueOf非常有用:将 JDBC日期转义形式的字符串转换成 Date值。
3、真正的预编译不允许使用非问号的连接,例如:
sql="SELECT* FROM("+"SELECT A.*, ROWNUM RN FROM("+ this.sql
+") AWHERE ROWNUM<=?)WHERE RN>? order by?";
不能修改为
sql="SELECT* FROM("+"SELECT A.*, ROWNUM RN FROM("+ this.sql
+") AWHERE ROWNUM<=?)WHERE RN>?"+ str;(str=order by str1 str1=某字段)
jsp是什么干什么的
JSP是由Sun Microsystems公司主导创建的一种动态网页技术标准。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。也就是说JSP运行在服务器端,但最终发给客户端的都已经是转换好的HTML静态页面(在响应体里)。服务器并没有把JSP文件发给浏览器。
扩展资料:
能以模板化的方式简单、高效地添加动态网页内容。可利用JavaBean和标签库技术复用常用的功能代码。
标签库不仅带有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。有良好的工具支持。继承了Java语言的相对易用性。
参考资料来源:百度百科-JSP
什么是 jsp 的预编译特征
1.2 JSP技术特征
JSP技术所开发的Web应用程序是基于Java的,它拥有Java语言跨平台的特性,以及业务代码分离、组件重用、基础Java Servlet功能和预编译等特征。
1.2.1跨平台
既然JSP是基于Java语言的,那么它就可以使用Java API,所以它也是跨平台的,可以应用在不同的系统中,如Windows、Linux、Mac和Solaris等。这同时也拓宽了JSP可以使用的Web服务器的范围。另外,应用于不同操作系统的数据库也可以为JSP服务,JSP使用JDBC技术操作数据库,从而避免了代码移植导致更换数据库时的代码修改问题。
正是因为跨平台的特性,使得采用JSP技术开发的项目可以不加修改地应用到任何不同的平台上,这也应验了Java语言的"一次编写,到处运行"的特点。
1.2.2业务代码分离
采用JSP技术开发的项目,通常使用HTML语言来设计和格式化静态页面的内容,而使用JSP标签和Java代码片段来实现动态部分。程序开发人员可以将业务处理代码全部放到JavaBean中,或者把业务处理代码交给Servlet、Struts等其他业务控制层来处理,从而实现业务代码从视图层分离。这样JSP页面只负责显示数据即可,当需要修改业务代码时,不会影响JSP页面的代码。
1.2.3组件重用
JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面甚至整个项目中都可以重复使用这个JavaBean。JavaBean也可以应用到其他Java应用程序中,包括桌面应用程序。
1.2.4继承Java Servlet功能
Servlet是JSP出现之前的主要Java Web处理技术。它接受用户请求,在Servlet类中编写所有Java和HTML代码,然后通过输出流把结果页面返回给浏览器。其缺点是:在类中编写HTML代码非常不便,也不利于阅读。使用JSP技术之后,开发Web应用便变得相对简单快捷多了,并且JSP最终要编译成Servlet才能处理用户请求,因此我们说JSP拥有Servlet的所有功能和特性。
1.2.5预编译
预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度
关于本次什么是java的预编译和java中什么是预编译precompile的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。