CMS简单内容管理系统
架构
NewsDaoSQLServerImpl
- public class NewsDaoSQLServerImpl extends BaseDao implements NewsDao {
- public void testSelect() throws Exception {
- List<News> list = getAllNews();
- for (News news : list) {
- System.out.println(news.getTITLE());
- System.out.println(news.getAUTHOR());
- System.out.println(news.getCREATETIME());
- System.out.println(news.getCONTENT());
- }
- }
- @Override
- public List<News> getAllNews() throws Exception {
- List<News> list = new ArrayList<News>();
- String sql = "select * from book";
- // 读取器
- ResultSet rs = executeQuery(sql);
- if (rs != null) {
- while (rs.next()) {
- // 如果有数据,数据表中的每条记录对应实体类的一个实例
- News news = new News();
- news.setAUTHOR(rs.getString("AUTHOR"));//作家
- news.setCREATETIME(rs.getString("CREATETIME"));//创建时间
- news.setTITLE(rs.getString("TITLE"));//标题
- news.setCONTENT(rs.getString("CONTENT"));//内容
- list.add(news);
- }
- }
- return list;
- }
- }
NewsDao
- public interface NewsDao {
- // 读取所有新闻列表的方法
- public List<News> getAllNews() throws Exception;
- }
NewsManager
- public class NewsManager {
- public void toHtml() throws Exception {
- // 读取模板文件内容,返回文件内容的字符串
- FileIO fileio = new FileIO();
- String templaterstr = fileio.readFile("E:\\news\\news.template");
- // 读取数据库表,获取新闻列表
- NewsDao newsdao = new NewsDaoSQLServerImpl();
- List<News> newslist = newsdao.getAllNews();
- // 替换模板文件,为每一条新闻创建一个HTML文件显示其信息
- for (int i = ; i < newslist.size(); i++) {
- // 获取一条新闻
- News news = newslist.get(i);
- // 使用该条新闻信息替换对应的占位符
- String replacestr = new String();
- replacestr = templaterstr;
- replacestr = replacestr.replace("{title}", news.getTITLE());
- replacestr = replacestr.replace("{author}", news.getAUTHOR());
- replacestr = replacestr.replace("{createtime}", news.getCREATETIME());
- replacestr = replacestr.replace("{content}", news.getCONTENT());
- // 为该条新闻生成HTML文件
- String filePath = "E:\\news\\news" + i + ".html";
- fileio.writeFile(filePath, replacestr);
- }
- }
- }
News
- public class News {
- // ID, TITLE, AUTHOR, CREATETIME, CONTENT
- private int ID;// 新闻的ID
- private String TITLE;// 新闻标题
- private String AUTHOR;// 新闻的作者
- private String CREATETIME;// 时间
- private String CONTENT;// 新闻的内容
- public int getID() {
- return ID;
- }
- public void setID(int iD) {
- ID = iD;
- }
- public String getTITLE() {
- return TITLE;
- }
- public void setTITLE(String tITLE) {
- TITLE = tITLE;
- }
- public String getAUTHOR() {
- return AUTHOR;
- }
- public void setAUTHOR(String aUTHOR) {
- AUTHOR = aUTHOR;
- }
- public String getCREATETIME() {
- return CREATETIME;
- }
- public void setCREATETIME(String cREATETIME) {
- CREATETIME = cREATETIME;
- }
- public String getCONTENT() {
- return CONTENT;
- }
- public void setCONTENT(String cONTENT) {
- CONTENT = cONTENT;
- }
- }
BaseDao
- public class BaseDao {
- // 定义四个静态常量,保存数据连接信息
- private static String driver="com.mysql.jdbc.Driver";
- private static String url="jdbc:mysql://localhost:3306/newsmgr";
- private static String username="root";
- private static String password = "";
- Connection con;
- PreparedStatement stat;
- // 获取连接对象的方法
- public Connection getConnection() throws Exception {
- Class.forName(driver);
- if (con == null || con.isClosed()) {
- con = DriverManager.getConnection(url, username, password);
- }
- return con;
- }
- // 对所有select语句执行的方法
- public ResultSet executeQuery(String sql, Object... objs) throws Exception {
- con = getConnection();
- stat = con.prepareStatement(sql);
- for (int i = ; i < objs.length; i++) {
- stat.setObject(i + , objs[i]);
- }
- ResultSet rs = stat.executeQuery();
- return rs;
- }
- }
Test
- public class Test {
- public static void main(String[] args) throws Exception {
- NewsManager num = new NewsManager();
- num.toHtml();
- }
- }
CMS简单内容管理系统的更多相关文章
- Orchard是一个了不起CMS(内容管理系统)
在这个系列中,我们将共同经历从头开始构建一个Orchard模块的过程! 虽然Orchard是一个了不起CMS(内容管理系统),有着强大的功能和令人振奋的架构,可以无限的扩展,但它可能需要花费一定时间, ...
- CMS (内容管理系统)
ylbtech-Miscellaneos:CMS (内容管理系统) CMS是"Content Management System"的缩写,意为"内容管理系统". ...
- 项目视频讲解_[HeyJava][尚学堂][CMS文章内容管理系统]
[HeyJava][尚学堂][CMS文章内容管理系统] http://pan.baidu.com/s/1c0imHrE
- Dede cms文章内容管理系统安全漏洞!如何有效防止DEDE织梦系统被挂木马安全设置
第一.安装Dede的时候数据库的表前缀,最好改一下,不要用dedecms默认的前缀dede_,可以改成ljs_,随便一个无规律的.难猜到的前缀即可. 第二.后台登录一定要开启验证码功能,将默认管理员a ...
- 【Web探索之旅】第二部分第三课:框架和内容管理系统
内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby ...
- 开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流
背景 云开发CloudBase CMS 是云开发推出的一站式云端内容管理系统,助力企业的数据运营管理工作. 开发者可以直接在云开发扩展能力中一键安装 CloudBase CMS,免费使用 CloudB ...
- 30 个很棒的 PHP 开源 CMS 内容管理系统
本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. 1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳 ...
- django的CMS系统(内容管理系统)
一.什么是CMS系统 CMS具有许多基于模板的优秀设计,可以减少开发的成本. CMS的功能并不只限于文本处理,它也可以处理图片.Flash动画.声像流.图像甚至电子邮件档案. CMS还分各个平台脚本种 ...
- 贝云cms内容管理系统(thinkphp5.0开源cms管理系统)
byCms包含文章,图片,下载,视频模型,基于thinkphp5.0.9,可无缝升级至thinkphp.1.0,是一套简单,易用的内容管理系统,旨在帮助开发者节约web应用后台开发时间和精力,以最快的 ...
随机推荐
- spring cloud 系列第1篇 —— eureka 服务的注册与发现 (F版本)
源码仓库地址:https://github.com/heibaiying/spring-samples-for-all 一.eureka 简介 Spring Cloud Eureka使用Netflix ...
- 系统学习 Java IO (十二)----数据流和对象流
目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用 ...
- HTML行内元素、块级元素、行内块级元素的特点与区别
元素 HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 元素分类方式 HTML 可以将元素分类方式分为行内元素.块状元素和行内块状元素三种,这三者可以通过设 ...
- 【java自定义注解1】java自定义注解-属性
关于自定义注解,以前项目种应用的不多,最近看新项目过程中发现了挺多自定义注解相关内容,使用起来比较巧妙,于是 总结了两种方式,记录如下: 第一种:结合反射进行属性注入,代码如下: 1.定义一个注解: ...
- .NetCore中三种注入方式的思考
该篇内容由个人博客点击跳转同步更新!转载请注明出处! .NetCore彻底诠释了"万物皆可注入"这句话的含义,在.NetCore中到处可见注入的使用.因此core中也提供了三种注入 ...
- There is no getter for property named 'username' in 'class Model1.User'-----报错解决
There is no getter for property named 'username' in 'class Model1.User' -----Model Model1.User'中没有名为 ...
- [apue] 测试管道容量的一些疑问
所谓管道的容量,指不消费(读)的情况下,最大能写入的数据量.有两种方式来测试一个管道的容量: 1)使用阻塞写,每次写一个字节,并打印写入的总字节数,最后写入阻塞时,上次打印的就是管道的容量: 2)使用 ...
- kubernetes实战之consul简单测试环境搭建及填坑
这一节内容有点长,我们将介绍如何基于docker搭建一client一server的consul测试环境,以及如何搭建多server consul测试集群.在基于docker搭建多server的cons ...
- Maven项目读取resources下文件的路径
要取编译后的路径,而不是你看到的src/main/resources的路径.如下: URL url = 类名.class.getClassLoader().getResource("conf ...
- POJ 2449:Remmarguts' Date(A* + SPFA)
题目链接 题意 给出n个点m条有向边,源点s,汇点t,k.问s到t的第k短路的路径长度是多少,不存在输出-1. 思路 A*算法是启发式搜索,通过一个估价函数 f(p) = g(p) + h(p) ,其 ...