注:此篇文章是给我小妹做毕业设计时的一些配置记录,主要用到JAVA的MVC架构,后台数据库为MYSQL。例子比较简单,供未用过的鞋童们参考。
进行MYSQL安装后,通过MYSQL的命令行方式登录,如下图(密码为你安装时设置的密码):
注意-u与-p参数后面不需要空格间隔,本次登录使用root,密码为mysql.
之后可以查看一下现在有哪些数据库,并且创建一个新的数据库ebooks:
对root用户进行赋权:
如果通过SQLyog工具登录,配置如下图:
MYSQL在myeclipse中的驱动安装
为了测试,先在原来创建的EBOOKS上建立一个表userinfo:
CREATE TABLE `userinfo` (
`id` bigint(10) NOT NULL AUTO_INCREMENT,
`username` varchar(30) DEFAULT '',
`password` varchar(30) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
并通过SQLyog插入一条测试数据。
在myeclipse 中选择Windows->Open Perspective->Myeclipse Database Explorer,
在DB Browser中添加新的MYSQL数据库EBOOKS:
其中,通过Add JARs来添加好MYSQL的驱动程序包,并Test进行连接测试,应通过,可以看到EBOOKS数据库已经可以访问。
在Window->Show View->Java->Package Explorer中,在项目上右键选择:build Path->add external Archiver
图书借阅卡信息表 Table: bookcard_info
Column Information
|
Field |
Type |
Comment |
|
cardid |
char(16) NOT NULL |
图书卡卡号 |
|
booknum |
int(4) NULL |
现借书量 |
|
amerce |
char(8) NOT NULL |
累计罚金 |
|
state |
char(8) NOT NULL |
卡状态 |
|
bookmax |
int(4) NOT NULL |
最大借书量 |
|
lastuptime |
timestamp NOT NULL |
最后更新日期 |
Index Information
|
Indexes |
Columns |
Index_Type |
|
PRIMARY |
cardid |
Unique |
DDL Information
CREATE TABLE `bookcard_info` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`booknum` int(4) DEFAULT '0' COMMENT '现借书量',
`amerce` char(8) NOT NULL DEFAULT '0.00' COMMENT '累计罚金',
`state` char(8) NOT NULL DEFAULT '''正常''' COMMENT '卡状态',
`bookmax` int(4) NOT NULL DEFAULT '8' COMMENT '最大借书量',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新日期',
PRIMARY KEY (`cardid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
罚金信息记录表 Table: bookcard_amerce
Column Information
|
Field |
Type |
Comment |
|
cardid |
char(16) NOT NULL |
图书卡卡号 |
|
amercetime |
timestamp NOT NULL |
罚款时间 |
|
amerce |
char(8) NULL |
罚款金额 |
Index Information
|
Indexes |
Columns |
Index_Type |
|
PRIMARY |
cardid |
Unique |
DDL Information
CREATE TABLE `bookcard_amerce` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`amercetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '罚款时间',
`amerce` char(8) DEFAULT NULL COMMENT '罚款金额',
PRIMARY KEY (`cardid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
图书信息记录表 Table: books_info
Column Information
|
Field |
Type |
Comment |
|
bookid |
char(30) NOT NULL |
图书条码号 |
|
bookname |
char(50) NOT NULL |
书名 |
|
bookauthor |
char(20) NOT NULL |
作者 |
|
bookpress |
char(20) NULL |
出版社 |
|
bookyear |
char(8) NOT NULL |
出版日期 |
|
bookkeyword |
varchar(50) NULL |
检索关键词 |
|
bookstate |
char(8) NOT NULL |
状态:是否在馆等 |
|
lastuptime |
timestamp NOT NULL |
最后更新日期 |
Index Information
|
Indexes |
Columns |
Index_Type |
|
PRIMARY |
bookid |
Unique |
DDL Information
CREATE TABLE `books_info` (
`bookid` char(30) NOT NULL COMMENT '图书条码号',
`bookname` char(50) NOT NULL COMMENT '书名',
`bookauthor` char(20) NOT NULL COMMENT '作者',
`bookpress` char(20) DEFAULT NULL COMMENT '出版社',
`bookyear` char(8) NOT NULL COMMENT '出版日期',
`bookkeyword` varchar(50) DEFAULT NULL COMMENT '检索关键词',
`bookstate` char(8) NOT NULL DEFAULT '''在馆''' COMMENT '状态:是否在馆等',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新日期',
PRIMARY KEY (`bookid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
图书借阅情况信息表 Table: books_borrowinfo
Column Information
|
Field |
Type |
Comment |
|
cardid |
char(16) NOT NULL |
图书卡卡号 |
|
bookid |
char(30) NOT NULL |
图书条码号 |
|
borrowtime |
datetime NULL |
出借起始日期 |
|
loadtime |
datetime NULL |
续借起始日期 |
|
amerce |
char(8) NOT NULL |
逾期罚金 |
|
lastuptime |
timestamp NOT NULL |
最后更新日期 |
Index Information
|
Indexes |
Columns |
Index_Type |
DDL Information
CREATE TABLE `books_borrowinfo` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`bookid` char(30) NOT NULL COMMENT '图书条码号',
`borrowtime` datetime DEFAULT NULL COMMENT '出借起始日期',
`loadtime` datetime DEFAULT NULL COMMENT '续借起始日期',
`amerce` char(8) NOT NULL COMMENT '逾期罚金',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
图书馆管理员信息表 Table: library_manager
Column Information
|
Field |
Type |
Comment |
|
managerid |
char(16) NOT NULL |
图书馆管理员ID |
|
managername |
char(20) NOT NULL |
管理员姓名 |
|
username |
char(16) NOT NULL |
登录用户名 |
|
password |
char(16) NOT NULL |
登录密码 |
|
lastuptime |
timestamp NOT NULL |
最后更新日期 |
Index Information
|
Indexes |
Columns |
Index_Type |
|
PRIMARY |
managerid |
Unique |
DDL Information
CREATE TABLE `library_manager` (
`managerid` char(16) NOT NULL COMMENT '图书馆管理员ID',
`managername` char(20) NOT NULL COMMENT '管理员姓名',
`username` char(16) NOT NULL COMMENT '登录用户名',
`password` char(16) NOT NULL COMMENT '登录密码',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新日期',
PRIMARY KEY (`managerid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
图书卡注册信息表 Table: books_reginfo
Column Information
|
Field |
Type |
Comment |
|
cardid |
char(16) NOT NULL |
图书卡卡号 |
|
schoolyardid |
char(20) NOT NULL |
校园学生证号 |
|
truename |
varchar(30) NOT NULL |
真实姓名 |
|
email |
varchar(30) NULL |
联系邮箱 |
|
telephone |
varchar(20) NOT NULL |
联系电话 |
|
gender |
char(8) NOT NULL |
性别 |
|
lastuptime |
timestamp NOT NULL |
最后更新日期 |
Index Information
|
Indexes |
Columns |
Index_Type |
|
PRIMARY |
cardid |
Unique |
DDL Information
CREATE TABLE `books_reginfo` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`schoolyardid` char(20) NOT NULL COMMENT '校园学生证号',
`truename` varchar(30) NOT NULL COMMENT '真实姓名',
`email` varchar(30) DEFAULT NULL COMMENT '联系邮箱',
`telephone` varchar(20) NOT NULL COMMENT '联系电话',
`gender` char(8) NOT NULL COMMENT '性别',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新日期',
PRIMARY KEY (`cardid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
完善关联:
1. 创建books_borrowinfo的主外键(BOOKID+CARDID)
CREATE TABLE `books_borrowinfo` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`bookid` char(30) NOT NULL COMMENT '图书条码号',
`borrowtime` datetime DEFAULT NULL COMMENT '出借起始日期',
`loadtime` datetime DEFAULT NULL COMMENT '续借起始日期',
`amerce` char(8) NOT NULL COMMENT '逾期罚金',
`lastuptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新日期',
KEY `FK_books_borrowinfo_bookid` (`bookid`),
KEY `FK_books_borrowinfo_cardid` (`cardid`),
CONSTRAINT `FK_books_borrowinfo_cardid` FOREIGN KEY (`cardid`) REFERENCES `bookcard_info` (`cardid`) ON DELETE NO ACTION,
CONSTRAINT `FK_books_borrowinfo_bookid` FOREIGN KEY (`bookid`) REFERENCES `books_info` (`bookid`) ON DELETE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2. 重命名books_reginfo为bookcard_reginfo
3. 创建bookcard_amerce表的主外键
CREATE TABLE `bookcard_amerce` (
`cardid` char(16) NOT NULL COMMENT '图书卡卡号',
`amercetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '罚款时间',
`amerce` char(8) DEFAULT NULL COMMENT '罚款金额',
PRIMARY KEY (`cardid`),
CONSTRAINT `FK_bookcard_amerce` FOREIGN KEY (`cardid`) REFERENCES `bookcard_info` (`cardid`) ON DELETE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4. 添加bookcard_reginfo的主外键
5. 添加books_type表并关联books_info
调整后的E-R图如下:
为了避免中文乱码,将所有部分的字符集指定都为UTF-8.
如果连接MYSQL通过DB Explorer可以,但在调试过程中还报:CLASS NOT FOUND这类的错误,那么将MYSQL官方下载的驱动JAR包手工放置到MyEclipse的TOMCAT对应LIB目录下即可生效。
如果遇到针对FiltDispatcher NOT FOUND类的错误,多半是由于访问的JSP页面没有进入JSP的FILTER过滤条件内,但是用了Struts标签而需要解析。解决办法是更改web.xml的对应部分:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
加入第一个功能后的STRUTS.XML文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
<constant name="struts.action.extension" value="do"/>
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple" />
<!-- 定义 Struts 2 资源文件 baseName 是 messageResource 主要提供error消息资源 -->
<constant name="struts.custom.i18n.resources" value="messageResource" />
<package name="strutreq" extends="struts-default">
<action name="Login" class="LoginAction">
<result name="success">welcome.jsp</result>
<result name="fail">error.jsp</result>
</action>
</package>
</struts>
此时WEB.XML内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- zh-cn encoding -->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
添加新评论0 条评论