用java做一个CMS新闻发布系统,要用到access2003.参考如下代码:
MS Access在测试阶段比较利于携带,Web开发初期我经常使用它 。后期再移植到SQLServer或Oracle上 。但最近在需要对数据库中插入图片文件时,发现了一个问题 , 即JDK自带的JDBC-ODBC不支持java.sql.Blob里的方法,经过查阅Java API和程序调试,我找到了个变通的方法,即:
1,在写入BLOB类型字段时,使用java.sql.PreparedStatement的setBinaryStream方法,
2,读出BLOB类型字段时 , 因为返回的是字节数组byte[]类型 , 可以把它转换成ByteArrayInputStream然后读出内容写到文件里去 。
这样即使用JDK自带的JDBC-ODBC驱动, 也能自如的在数据库里读写上传下载的文件了,哈哈 。
import java.sql.*;
import java.io.*;
//对BLOB字段先写入(要求被写入的文件存在),再读出来
//要求先建立一个item表,有三个字段 , id(int),file_name(char),file_blob(blob)
//对Access, blob字段应该设置成为“OLE对象”类型
public class blobtest{
public static void main(String[] args){
Connection conn = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/*这里的数据库的url一定要写正确,这是关键,其中DBQ可以绝对路径,也可以是相对路径,为了体现数据存储路径的/独立性,你可以将数据库copy到不同的位试一下*/
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=blob.mdb";
conn = DriverManager.getConnection(dbUrl,"","");
File file1=new File("fileToWrite.doc");
File file2=new File("fileRead.doc");
//BlobWriteForOracle( conn, file1);
//BlobReadForOracle( conn, file2);
BlobWriteForAccess( conn, file1);
BlobReadForAccess( conn, file2);
conn.close();
}catch(Exception ex){
System.err.println(ex.getMessage());
public static void BlobWriteForAccess( Connection conn, File file){
try{
conn.setAutoCommit(false); // 取消Connection对象的auto commit属性
String file_name=file.getName();
// get maxid ( to avoid insert id repeatly )
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select max(id) from item");
rs.next();
int maxid = rs.getInt(1);
//maxid = (maxid==null)?0:maxid;
int id = maxid 1 ;
//System.out.println("write_id=" id);
PreparedStatement pstmt = conn.prepareStatement( "insert into item ( id, file_name, file_blob ) values ( "id", ? , ? )" );
FileInputStream in = new FileInputStream(file );
int length = in.available();
pstmt.setString( 1, file_name );
pstmt.setBinaryStream( 2, in , in.available() );
System.out.println( "插入了 "pstmt.executeUpdate ()" 行数据, "
"id ="id
", 文件名是"file.toString()" , 共 "length" bytes" );
conn.commit();
pstmt.close();
}catch(Exception ex){
ex.printStackTrace();
System.out.print("[" ex.getMessage() "]");
try{
conn.rollback();
}catch(SQLException sqle){
System.err.println(sqle.getMessage());
}
}
public static void BlobReadForAccess( Connection conn, File file){
try{
conn.setAutoCommit(false); // 取消Connection对象的auto commit属性
String file_name=file.getName();
// get maxid ( to avoid insert id repeatly )
Statement stmt1 = conn.createStatement();
ResultSet rs1 = stmt1.executeQuery("select max(id) from item");
rs1.next();
int maxid = rs1.getInt(1);
//maxid = (maxid==null)?0:maxid;
int id = maxid;
//System.out.println("read_id=" id);
String sql="SELECT file_blob FROM item WHERE id="id""; //
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();
Object obj1 = rs.getObject("file_blob"); // 得到BLOB对象
//System.out.println("type is :" obj1.getClass().getName());
byte[] blob=(byte[])obj1;
FileOutputStream out=new FileOutputStream(file); // 建立输出流
ByteArrayInputStream in=new ByteArrayInputStream(blob); // 建立输入流
int size=1024;
byte[] buffer=new byte[size]; // 建立缓冲区
int len;
while((len=in.read(buffer)) != -1)
out.write(buffer,0,len);
in.close();
out.close();
conn.commit();
}catch(Exception ex){
ex.printStackTrace();
System.out.print("[" ex.getMessage() "]");
try{
conn.rollback();
}catch(SQLException sqle){
System.err.println(sqle.getMessage());
}
用Java编辑的新闻发布系统栏目--对应的就像是我们访问的新闻网中的各大栏目标题(例如:最新时事、国际新闻、国内新闻、 。。。),对应的程序操作:增加栏目、修改栏目、删除栏目 。栏目信息主要包括:栏目编号、栏目名称、栏目状态(启用、停用)等等类别--也就是新闻属于哪些类型,你要在需求分析中列出相应的类别 , 具体的程序操作:增加类别、删除类别、修改类别、(一般删除很少操作,因为删除一项类别的话很多新闻就没有类别了的) 。类别信息主要包括:类别编号、类别名称、类别状态(启用、停用)等等新闻--新闻的标题、新闻发布的时间、发布的作者、内容、以及文章的编辑时间、编辑人、浏览次数等等,你可以再详细具体考虑还需要哪些字段信息 。用户管理:主要是设计整个新闻发布系统的用户以及用户的权限 。主要功能包括:增加用户、删除用户、修改用户 。用户的信息主要包括:登录名、密码、真实姓名、性别、年龄、住址、手机、联系电话等等 因为我以前涉及到的新闻发布这块都是集成在系统中开发的,没有具体的独立的实例可以给你 。我只能大概说说整个的需求分析 。每项功能的数据要求不是很详细,不过作为教学的需要我觉得还是足够了的 。
怎样用Java做一个新闻发布系统如果你自己不去想,再多人给你讲也没有用,别人的时间都是有限的,就算是你的老师也不能可从头到尾全给你讲,学习是你自己的事!
----------------------------------------------------------
你说的新闻发布系统,在专业术语叫做CMS(内容管理系统),要做一个CMS可大可小 , 如果你只想做一个简单的,其实也不难 , 我不知道你做这个是为了什么 。
如果你是只是为了应付毕业设计,实在不会的话 , 我劝你买本相关的书看看就够了、
如果给你详细的将,恐怕一天都讲不完,不知道你现在是什么水平 。
如果你在学校一直用心学,做这个应该不难,实现简单的CMS系统,你至少要有一个表存放新闻数据,然后用程序实现增删改功能,设计一个显示新闻的WEB界面,如果再好点,可以增加一些管理功能 , 我只能给你所说简单的思想,具体技术还得你自己去学 。
J2EE相关知识你要有所了解,像是JDBC更是必须熟练,Java基础更不用说了,其他的像是开发框架你可以不用 。但是基本的东西必须掌握 。
如果你是在没有思路,你还是买本相关的书籍看看吧,外面有很多 , 虽然质量不高,但是应付这种小系统没什么问题 。
怎样在把一个java的一个方法发布成可以供其他系统调用的webservice呢?急!在线等!!!这个简单,先加载包XFire core核心包 , 然后web.xml里边加载一个servlet,
这样配置:
servlet
servlet-nameXFireServlet/servlet-name
servlet-classorg.codehaus.xfire.transport.http.XFireConfigurableServlet/servlet-class
load-on-startup0/load-on-startup
/servlet
servlet-mapping
servlet-nameXFireServlet/servlet-name
url-pattern/services/*/url-pattern
/servlet-mapping
然后封装你的方法,做一个接口,一个实现类 , 比如接口
package com.web.service;
public interface IHelloWorldService {
public String example(String message);
}
实现类
package com.web.service;
public class HelloWorldServiceImpl implements IHelloWorldService {
@Override
public String example(String message) {
return "Hello, " message;
}
}
然后在根目录下建文件夹WebServices , 里面建个services.xml,这样配置
?xml version="1.0" encoding="UTF-8"?
beans xmlns=""
service
nameHelloWorldService/nameserviceClasscom.web.service.IHelloWorldService/serviceClass
implementationClass
com.web.service.HelloWorldServiceImpl
/implementationClass
stylewrapped/style
useliteral/use
scopeapplication/scope
/service
/beans
然后就可以部署到tomcat上 , 启动 , 访问
就可以得到wsdl文件,在其他项目里面调用就可以了
怎么把javaWeb项目发布到linux操作系统上是部署到服务器上吧java代码怎么发布系统?直接war放tc下或者jboss下 。。。。
【java代码怎么发布系统 java上传代码】java代码怎么发布系统的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java上传代码、java代码怎么发布系统的信息别忘了在本站进行查找喔 。
推荐阅读
- 区块链的最核心魅力,区块链的核心技术
- mysql程序包如何安装,mysql软件怎么安装
- linux看历史命令,linux历史命令查询
- 访问的网站服务器在美国,服务器在国外的网站中国怎么治理
- linux重启命令不重启 linux重启命令是什么
- oracle数据库文档,oracle数据库官方文档
- 火锅店如何推广和营销的,火锅店营销推广策划方案
- 关于微信小程序路政一网通办操作视频的信息
- linux上翻页命令 linux系统怎么翻页