数据库里创建一个News表,要有标题、作者、时间、内容等列。

1:首先要使用JDBC进行数据库连接,得先在项目里新建一个Folder,把Sqlserver 的驱动jar包导入。

2:使用MyEclipse创建一个HTML模板文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>{title}</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=gb2312">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>

<table align="center" width="95%" border="1">

<tr>

<td width="10"><b>标题:</b></td>

<td>{title}</td>

</tr>

<tr>

<td width="10"><b>作者:</b></td>

<td>{author}</td>

</tr>

<tr>

<td width="10"><b>时间:</b></td>

<td>{creataeTime}</td>

</tr>

<tr>

<td width="10"><b>内容:</b></td>

<td>{content}</td>

</tr>

</table>

</body>

</html>

2:在创建dao包、dao.impl包、entity包、manager包、test包、util包

在entity包里创建实体类(数据库相对应的实体类的字段):

package cn.cms.entity;

private String title;
     private String author;
     private String tiem;
     private String content;

01:在dao包里创建数据DataDao类来和数据库交互:

//定义驱动字符串
 static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
 static String url="jdbc:sqlserver://localhost:1433;DatabaseName=MyNews";
 static String user="sa";
 static String password="";

Connection con=null;
 PreparedStatement ps=null;
 ResultSet rs=null;

//创建一个方法返回连接字符串
 public Connection getConnection(){
  //加载驱动
  try {
   Class.forName(driver);
   if(con==null){
    con=DriverManager.getConnection(url, user, password);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return con;
 }

//创建一个返回查询结果的方法
 public ResultSet executeQuery(String sql,Object...paras){
  //获取连接字符串
  con=getConnection();
  try {
   //执行SQL语句
   ps=con.prepareStatement(sql);
   //给参数赋值
   if(paras.length>0){
    for (int i = 0; i < paras.length; i++) {
                    ps.setObject(i+1, paras[i]);      
    }
   }
   //返回结果
   rs=ps.executeQuery();
  } catch (Exception e) {
   e.printStackTrace();
  }
 
  return rs;
 }

//创建一个返回增删改结果的方法
 public int executeUpdate(String sql,Object...paras){
  int count=0;
  //获取连接字符串
  con=getConnection();
  try {
   //执行SQL语句
   ps=con.prepareStatement(sql);
   //给参数赋值
   if(paras.length>0){
    for (int i = 0; i < paras.length; i++) {
     ps.setObject(i+1,paras[i]);
    }
   }
   count=ps.executeUpdate();
  } catch (Exception e) {
   // TODO: handle exception
  }
  return count;
 }

//创建一个关闭所有连接的方法
 public void closeResource(){
  try {
   if(rs!=null){
    rs.close();
   }
   if(ps!=null){
    ps.close();
   }
   if(con!=null){
    con.close();
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

02:再在dao包里创建一个接口类:

import java.util.List;

import cn.cms.entity.News;

public interface NewsDao {

List<News> getNews();

}

03:再在impl包里定义一个实现类继承自DataBase实现接口类News;

public class NewsImpl extends BaseDao implements NewsDao {

@Override  public List<News> getNews() {

List<News> list=new ArrayList<News>();

String sql="select title,author,time,content from news";

ResultSet rs=executeQuery(sql);

try {

while(rs.next()){

News news=new News();

news.setTitle(rs.getString(1));

news.setAuthor(rs.getString(2));

news.setTiem(rs.getString(3));

news.setContent(rs.getString(4));

list.add(news);

}

closeResource();

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

04:再在util工具包里创建一个FileIO类,里面有两个方法,一读,一写;

public class FileIO {
   //读取文件的方法

public String  ReaderFile(String filePath){
    FileInputStream fs=null;
    StringBuffer sb=new StringBuffer();
    try {
  fs=new FileInputStream(filePath);
  byte[] bytes=new byte[1024];
  
  int size=0;
  while((size=fs.read(bytes))!=-1){
   String str=new String(bytes);
   sb.append(str);
  }
 } catch (Exception e) {
  e.printStackTrace();
 }
    return sb.toString();
   }

//写入文件的方法
   public void WriterFile(String newPath,String str){
    FileOutputStream fos=null;
    try {
  fos=new FileOutputStream(newPath);
  byte[] words=str.getBytes();
  fos.write(words,0,words.length);
 } catch (Exception e) {
  e.printStackTrace();
 }finally{
  try {
   if(fos!=null){
    fos.close();
   }
  } catch (Exception e2) {
   // TODO: handle exception
  }
 }

}

05:再在manager包里创建一个类,里面有一个把数据转换成HTML的方法;

public class NewsManager {
      public void toHtml(){
       //读取模板文件内容,返回文件内容字符串
     FileIO io=new FileIO();
     String str=io.ReaderFile("C:\\Documents and Settings\\Administrator\\Workspaces\\MyEclipse 8.5\\MyCMS\\src\\news.template.html");

//读取数据库列表,返回新闻列表
     NewsDao newsDao=new NewsImpl();
     List<News> list=newsDao.getNews();
     //替换模板文件,为每一条新闻创建一个HTML文件来显示其信息
     for (int i = 0; i < list.size(); i++) {
      //获取一条新闻
   News newes=list.get(i);
   //使用该条新闻信息替换对应占位符
   String newStr=new String();
   newStr=str;
   newStr=newStr.replace("{title}", newes.getTitle());
   newStr=newStr.replace("{author}", newes.getAuthor());
   newStr=newStr.replace("{creataeTime}", newes.getTiem());
   newStr=newStr.replace("{content}",newes.getContent());
   String newPath="D:\\news"+i+".html";
   io.WriterFile(newPath, newStr);
   System.out.println("第"+i+"条新闻完成!");
  }
     
      }
}

06:最后在test包里创建一个带main方法的类:

NewsManager nm=new NewsManager();
  nm.toHtml();

进行测试;

JavaOOP项目 CMS内容管理系统的更多相关文章

  1. ThinkPHP项目CMS内容管理系统开发视频教程【20课】(3.02GB)

    ThinkPHP背景介绍:     ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业级应用开发而诞生的. ...

  2. PHP框架之ThinkPHP项目CMS内容管理系统源码及开发手册视频

    http://download.csdn.net/download/duguqing/4203042

  3. 30 个很棒的 PHP 开源 CMS 内容管理系统

    本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. 1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳 ...

  4. 贝云cms内容管理系统(thinkphp5.0开源cms管理系统)

    byCms包含文章,图片,下载,视频模型,基于thinkphp5.0.9,可无缝升级至thinkphp.1.0,是一套简单,易用的内容管理系统,旨在帮助开发者节约web应用后台开发时间和精力,以最快的 ...

  5. 基于thinkphp3.2.3开发的CMS内容管理系统 - ThinkPHP框架

    基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --用户管理 --友情链接管理 --系统设置 目前占时这些功能,更多功 ...

  6. 基于thinkphp3.2.3开发的CMS内容管理系统(二)- Rbac用户权限

    基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --商品管理 --用户管理 --角色管理 --权限管理 --友情链接管 ...

  7. 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

    小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦! 云开发 CMS ...

  8. 推荐八款.Net优秀的开源CMS 内容管理系统

    1,老牌内容管理系统SiteServer CMS  推荐指数:5 SiteServer CMS 是.NET平台的CMS系统,也是一款拥有十年历史与广泛知名度的CMS系统,2017年5月初迈出了自成立以 ...

  9. 开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流

    背景 云开发CloudBase CMS 是云开发推出的一站式云端内容管理系统,助力企业的数据运营管理工作. 开发者可以直接在云开发扩展能力中一键安装 CloudBase CMS,免费使用 CloudB ...

随机推荐

  1. Cookie操作

    1.写cookie方法 #region 登录时写入cookie public static void LoginCookieSave(string uid, string loginname, str ...

  2. 智能手机,医疗诊断,云会议(gotomeeting/citrix)

    在诊断领域已出现很多大有希望的创新,它们可能会起到真正的变革作用. 例如,有一种新技术可以让健康护理工作者用一部智能手机拍摄高质量的视网膜图像.这些数码照片像素很高,足以帮助检测白内障.黄斑退化.糖尿 ...

  3. Visual Studio 2010扩展让JS与CSS实现折叠

    在Visaul Studio 2010中写js或css代码,缺少像写C#代码时的那种折叠功能,当代码比较多时,就很不方便. 今天发现,已经有VS2010扩展支持这个功能,它就是——JSEnhancem ...

  4. sqlserver 通过convert取得指定格式的时间

    http://msdn.microsoft.com/zh-cn/library/ms187928(v=sql.105).aspx CONVERT(NVARCHAR(10),Created,112) 不 ...

  5. 使用storyboard创建带有navigation的界面的简单方法

    步骤1:正常创建1个新项目 步骤2:选中默认创建的viewcontroller 步骤3:选择最上面工具栏的editor->embedin->navigation controller. 同 ...

  6. 使用多种客户端消费WCF RestFul服务(四)——Jquery篇

    Jquery篇 互联网开发中少不了各类前端开发框架,其中JQUERY就是最流行之一,本篇我们就采用JQUERY来消费WCF RestFul服务,其中用到JSON基础知识,如果有想了解的朋友,请访问:& ...

  7. Python PIL ImageDraw 和ImageFont模块学习

    ImageDraw 新建一个空白图片为本文作示例,新建空白文件的方法 见Image模块,Image.new: import Image blank = Image.new("RGB" ...

  8. 9Types of Leader

    Using the Enneagram Personality Types: The Perfectionist. The People Pleaser. The Achiever. The Indi ...

  9. 12 Tips for Accurate Project Estimating

    Projects typically involve many dynamic aspects, yet they're often constrained by finite conditions. ...

  10. 安装sqlserver2008r2 服务器配置,服务帐户配置出错,提示Sql server服务指定的凭据无效

    win+X 点击运行 重置帐户密码使得sql server2008 的服务帐户名,密码与系统设置的Administrator名与密码一致,则可. 上图中有一项reporting的名字不同,该名字为自动 ...