仓酷云

标题: JAVA网页编程之JAVA范例和SQL范例的婚配 [打印本页]

作者: 逍遥一派    时间: 2015-1-18 11:54
标题: JAVA网页编程之JAVA范例和SQL范例的婚配
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,已静态创立表为例
(1)
publicclassDataType{
privateintcode;
privateStringSQLType;
privateStringlocalType=null;
privateStringparams=null;
privatebooleanneedsSetting=true;
publicDataType(intcode,StringSQLType){
this.code=code;
this.SQLType=SQLType;
}
publicbooleanneedsToBeSet(){
returnneedsSetting;
}
publicintgetCode(){
returncode;
}
publicStringgetSQLType(){
returnSQLType;
}
publicStringgetLocalType(){
returnlocalType;
}
publicStringgetParams(){
returnparams;
}
publicvoidsetLocalTypeAndParams(Stringlocal,Stringp){
if(needsSetting){
localType=local;
params=p;
needsSetting=false;
}
}
}
(2)
importjava.sql.*;
publicclassSQLTypesCreate{
publicstaticvoidmain(String[]args){
Stringurl="jdbc:oracle:thin:@localhost:1521:oral";
Stringuser="SYSTEM";
Stringpass="manager";
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}catch(Exceptione){System.out.println(e);}
try{
Connectioncon=DriverManager.getConnection(url,user,pass);
Statementstmt=con.createStatement();
StringtableName;
//创立表语句中的表名变量
StringcolumnName;
//列名变量
StringsqlType;
//数据范例变量
//以上三个变量都是为了创立建表语句服务的
DataType[]typeArray={
newDataType(java.sql.Types.BIT,"BIT"),
newDataType(java.sql.Types.TINYINT,"TINYINT"),
newDataType(java.sql.Types.SMALLINT,"SMALLINT"),
newDataType(java.sql.Types.INTEGER,"INTEGER"),
newDataType(java.sql.Types.BIGINT,"BIGINT"),
newDataType(java.sql.Types.FLOAT,"FLOAT"),
newDataType(java.sql.Types.REAL,"REAL"),
newDataType(java.sql.Types.DOUBLE,"DOUBLE"),
newDataType(java.sql.Types.NUMERIC,"NUMERIC"),
newDataType(java.sql.Types.DECIMAL,"DECIMAL"),
newDataType(java.sql.Types.CHAR,"CHAR"),
newDataType(java.sql.Types.VARCHAR,"VARCHAR"),
newDataType(java.sql.Types.LONGVARCHAR,"LONGVARCHAR"),
newDataType(java.sql.Types.DATE,"DATE"),
newDataType(java.sql.Types.TIME,"TIME"),
newDataType(java.sql.Types.TIMESTAMP,"TIMESTAMP"),
newDataType(java.sql.Types.BINARY,"BINARY"),
newDataType(java.sql.Types.VARBINARY,"VARBINARY"),
newDataType(java.sql.Types.LONGVARBINARY,"LONGVARBINARY"),
newDataType(java.sql.Types.NULL,"NULL"),
newDataType(java.sql.Types.OTHER,"OTHER"),
};
//创立一个数组用用jdbcSQl数据范例的代码和名字初始化,别的为null
//注重,以上呈现的名字全体都是Types类中呈现的
DatabaseMetaDatadbmd=con.getMetaData();
//创立DatabaseMetaData对象,用来猎取数据库的属性
ResultSetrs=dbmd.getTypeInfo();
//猎取数据库撑持的SQL数据范例
while(rs.next()){
intcodeNumber=rs.getInt("DATA_TYPE");
StringdbmsName=rs.getString("TYPE_NAME");
StringcreateParams=rs.getString("CREATE_PARAMS");
//以下是当地数据库撑持的数据范例在jdbc中的映照号,当地名,参数
//System.out.println(codeNumber+""+dbmsName+""+createParams);
for(inti=0;i<typeArray.length;i++){
if(typeArray[i].getCode()==codeNumber){
//假如typeArray中的元素代码即是当地数据库范例的代码,
//就能够把typeArray中的范例名设成从DatabaseMetaData取得的当地名
typeArray[i].setLocalTypeAndParams(
dbmsName,createParams);
System.out.println("婚配的code,SQLType,localType,params有:");
System.out.println(typeArray[i].getCode()+""+
typeArray[i].getSQLType()+""+
typeArray[i].getLocalType()+""+
typeArray[i].getParams());
}
//设定命组中的数据库中的范例名和参数,打印出一切婚配的
}
//endfor
}//endwhile
StringtableNamePrompt="输出表名"+"并回车";
tableName=getInput(tableNamePrompt);
StringcreateTableString="createtable"+tableName+"(";
StringcommaAndSpace=",";
booleanfirstTime=true;
while(true){
System.out.println("");
StringcolumnNamePrompt="输出列名"+"或不输出任何数据然后回车:";
columnName=getInput(columnNamePrompt);
if(firstTime){
if(columnName.length()==0){
System.out.print("最少必要一列;");
System.out.println("请重试");
continue;
}else{
createTableString+=columnName+"";
//持续构成创立表的字符串
firstTime=false;
}
}elseif(columnName.length()==0){
break;
//不输出列时那末创立语句的历程停止
}else{
createTableString+=commaAndSpace
+columnName+"";
}
//在乐成吸收到列名后,以下显现可用的范例名
System.out.println("");
System.out.println("可用的范例名为:");
for(inti=0;i<typeArray.length;i++){
if(!typeArray[i].needsToBeSet()){
//假如设置了当地数据库中的名和参数,申明这个jdbc范例能够用
System.out.println(typeArray[i].getSQLType());
//前往jdbc中对应的SQL范例名
}
}
System.out.println("");
intindex;
while(true){//轮回直到输出可用的范例
StringtypePrompt="从列表中输出列的范例"+
"并回车";
sqlType=getInput(typePrompt);
for(index=0;index<typeArray.length;index++){
if(typeArray[index].getSQLType().
equalsIgnoreCase(sqlType)){
//对照两个字符串是不是相称,不辨别巨细写
//假如有相称的申明输出的范例是jdbc同意的范例,就跳出
break;
}
}
if(index<typeArray.length){
//假如index小于typeArray数组的个数,申明有婚配的
break;
//跳出while(true)轮回
}
System.out.println("");
System.out.print(sqlType+"与同意的范例不婚配");

System.out.println("");
}
Stringparams;
StringlocalTypeName;
params=typeArray[index].getParams();
//猎取范例的参数,此时的index是输出的范例在数组中的索引
localTypeName=typeArray[index].getLocalType();
//猎取数据库中这类范例名
StringparamString;
StringparameterPrompt="输出"+params+":";
paramString="("+getInput(parameterPrompt)+")";
createTableString+=localTypeName+paramString;
//注重,构成创立表字符串的是用当地范例名,不是用jdbc中的范例名
//后面输出的时分用的是jdbc中的名字
}
//创立语句输出部分停止
createTableString+=")";
System.out.println("");
System.out.print("你输出的创立表的语句是:");

System.out.println(createTableString);
System.out.println("");
stmt.execute(createTableString);
//实行创立表的语句
rs=dbmd.getColumns(null,"SYSTEM",tableName.toUpperCase(),"%");
System.out.println("表的信息为:表名,列名,范例号,范例名");
while(rs.next()){
System.out.print(rs.getString("TABLE_NAME")+"");
System.out.print(rs.getString("COLUMN_NAME")+"");
System.out.print(rs.getInt("DATA_TYPE")+"");
System.out.println(rs.getString("TYPE_NAME"));
}
rs.close();
stmt.close();
con.close();
}catch(SQLExceptionex){
System.err.println("SQLException:"+ex.getMessage());
}
}
publicstaticStringgetInput(Stringprompt)throwsSQLException{
System.out.print(prompt);
System.out.flush();
//扫除一切字符
try{
java.io.BufferedReaderbin;
//创立从字符输出流中读取文本的对象
bin=newjava.io.BufferedReader(
//字符流为参数
newjava.io.InputStreamReader(System.in));
//字撙节为参数,转化成字符流
Stringresult=bin.readLine();
returnresult;
//前往字符串
}catch(Exceptione){
System.out.println(e);
return"";
}
}
}




先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
作者: 第二个灵魂    时间: 2015-1-21 16:45
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: admin    时间: 2015-1-24 14:27
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 乐观    时间: 2015-2-1 16:49
是一种为 Internet发展的计算机语言
作者: 小女巫    时间: 2015-2-2 21:54
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 柔情似水    时间: 2015-2-8 07:49
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 灵魂腐蚀    时间: 2015-2-11 02:55
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 谁可相欹    时间: 2015-3-1 14:51
Java 编程语言的风格十分接近C、C++语言。
作者: 仓酷云    时间: 2015-3-5 19:50
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 因胸联盟    时间: 2015-3-11 09:32
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 老尸    时间: 2015-3-19 01:02
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 愤怒的大鸟    时间: 2015-3-22 04:34
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 金色的骷髅    时间: 2015-3-24 01:52
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 兰色精灵    时间: 2015-4-6 17:35
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 再现理想    时间: 2015-4-6 19:08
是一种语言,用以产生「小应用程序(Applet(s))
作者: 莫相离    时间: 2015-4-9 11:28
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 简单生活    时间: 2015-4-10 02:32
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 飘飘悠悠    时间: 2015-4-12 06:05
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 小魔女    时间: 2015-4-20 11:52
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 蒙在股里    时间: 2015-4-25 13:48
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2