【斗医】【9】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://qingkechina.blog.51cto.com/5552198/1377044

一、调试《【斗医】【8】Web应用开发50天》数据表映射方法

   本来想把数据库配置、Hibernate连接封装和映射配置一块写的,但由于个人时间问题时断时续,思路也多次被打断,所以在此对其进行弥补。

   若读者把上篇的附件下载下来运行,会发现运行失败,下面随着异常分析并解决。

1、截止目前系统所使用的Jar包

 

2、通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  java.lang.NoClassDefFoundError: org/dom4j/DocumentException

  【问题原因】:系统缺少dom4j.jar包,下载放入到运行环境D:\medical\war\WEB-INF\lib下(我会把系统所依赖的所有jar以附件的形式陆续上传,因为上传附件有大小限制,不能一次上传完)

3、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager

  【问题原因】:系统缺少hibernate-commons-annotations.jar包,下载放入到运行环境中

4、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger

  【问题原因】:系统缺少jboss-logging.jar包,下载放入到运行环境中

5、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  java.lang.NoClassDefFoundError: javax/transaction/SystemException

  【问题原因】:系统缺少jboss-transaction-api_1.2_spec-1.0.0.Final.jar包,下载放入到运行环境中

6、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  java.lang.NoClassDefFoundError: javax/persistence/EntityListeners

  【问题原因】:系统缺少hibernate-jpa-2.1-api-1.0.0.Final.jar包,下载放入到运行环境中

7、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister

  【问题原因】:系统缺少javassist-3.18.1-GA.jar包,下载放入到运行环境中

8、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect

  【问题原因】:从提示上看是连接失败了,所以先查看数据库服务是否启动。由于我使用的是window操作系统,所以只需要在操作系统任务栏上右键,选择“任务管理器”,在“进程”页签查看“映射名称”是否有mysql服务存在?从下图可见mysql服务并未启动,所以启动它

   

     

9、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

  Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

  【问题原因】:检查D:\medical\war\etc\hibernate.cfg.xml文件中数据库配置是否正确,配置如下:

   <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

   <property name="connection.url">jdbc:mysql://localhost:3306/medical</property>

   <property name="connection.username">root</property>

   <property name="connection.password">Changeme123</property>

   由于前段时间我重新配置了mysql的密码,所以更改为新密码即可

   【备注】:若连接不通过,还需要检查系统防火墙是否开启,是否把端口号添加到例外中?

10、再通过Eclipse启动Tomcat,抛出如下异常:

  严重: StandardWrapper.Throwable

org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [net.sf.hibernate.dialect.MySQLDialect] as strategy [org.hibernate.dialect.Dialect]

 【问题原因】:D:\medical\war\etc\hibernate.cfg.xml文件中SQL方言配置错误,把<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>改为<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

11、再通过Eclipse启动Tomcat,启动正常

  (1)此时系统所依赖的JAR包如下:

  

  (2)此时系统的hibernate.cfg.xml内容如下:

二、创建数据库medical和数据表usertable

1、打开Mysql的命令行终端,并输入正确的密码,如下图:

  

2、创建数据库medical

  在窗口中输入“CREATE DATABASE MEDICAL;”回车,一定要有分号。

3、创建数据表usertable

  在窗口中输入“CREATE TABLE USER(userId VARCHAR(20) PRIMARY KEY NOT NULL, userAuth VARCHAR(64), userSign VARCHAR(64), attention VARCHAR(10));”回车,一定要有分号

三、创建数据表usertable的映射文件

1、在运行环境D:\medical\war\etc\mapping下创建user.hbm.xml文件,输入如下内容:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<?xml version="1.0" encoding="utf-8"?> 

<!DOCTYPE hibernate-mapping PUBLIC 

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

                                                                       

<hibernate-mapping package="com.medical.server.dao">

    <class name="UserDAO" table="USERTABLE">

        <id name="userId" column="userId" type="string">

            <generator class="uuid.hex" />

        </id>

        <property name="userAuth" column="userAuth" />

        <property name="userSign" column="userSign" />

        <property name="attention" column="attention" />

    </class>

</hibernate-mapping>

(2)创建com.medical.server.dao.UserDAO.java类


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

/**

 * 用户ID

 */

private String userId = null;

/**

 * 用户鉴权字符串

 */

private String userAuth = null;

/**

 * 用户自我描述

 */

private String userSign = null;

/**

 * 用户关注领域

 */

private String attention = null;

  里面定义4个字符,与数据表userTable中的字段相对应,然后对其设置set&get方法

(3)再通过Eclipse启动Tomcat,启动正常。

本文出自 “青客” 博客,请务必保留此出处http://qingkechina.blog.51cto.com/5552198/1377044

时间: 2024-08-01 11:55:39

【斗医】【9】Web应用开发20天的相关文章

【斗医】【17】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1543919     细心的读者可能已发现"Web应用开发50天"改为了"Web应用开发20天",之所以这样调整是因为当时想前20篇只讲解Web基础知识,中间10篇讲解我一直想要封装的Web框架,后20篇将该应用转换为Android应用.但由于最近女儿出生,业余时间都被她占用了,

【斗医】【7】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1330647 现在想想一下首页放置哪些内容?由于该WEB应用的聚集点在"斗"上,也就是对医术的探讨方面,个人认为应该是对展示较新的或评价较好的病症药方的展示方面.这里包含两部分:(1)数据的获取,即动态读取较好或评价较好的药方数据:(2)页面的展示,即静态页面布局和数据显示. 对于第一个问题会涉及到

【斗医】【11】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1386941 本文在上文的基础上完成用户登录验证功能. 四.获取数据请求业务处理封装 1.配置数据读取方式,它的作用是使用FrameDataGainer响应以.data结尾的请求,并把处理后的数据返回给客户端.打开D:\medical\war\WEB-INF\web.xml文件,填充如下内容: 1 2 3 4

【斗医】【12】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1390410 在上文中有意埋了几个安全彩蛋,以便后面在聊网络安全时使用. 书接前言,对上文做过实践的朋友肯定会发现:当用户注册/登录成功后页面跳转到了系统首页,但首页的导航菜单并没有显示用户名.本文重点实现这个特性,同时也谈谈系统的编码问题. 六.注册/登录成功后导航菜单显示当前用户名    与JSP不同之处

【斗医】【6】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1322419 对于一个网站来讲均会存在公共页面,如异常页面.系统菜单等等,本章针对斗医系统菜单做一下介绍.可以想一想常见网站的系统菜单形式,一般都是菜单项在每个页面的内容不变,区别是菜单的选择状态不同. JSP可以使用<%@ include file="">语句把公共系统菜单页面引进来,

【斗医】【4】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1315778 在上面把日志文件打印到了D:\log下,考虑到Liunx服务器环境下,让最终用户修改可能不可接受,接下来完成三件事情:(1)应用程序指定输出路径(2)完善异常类的处理(3)完成页面跳转的封装处理 一.指定输出路径 由于Logback的<FILE>指定相对路径与Log4J存在差异,所以在修改日志

【斗医】【5】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1317441 三.页面跳转封装 [接上]在< 接下来要完成如下功能: Web容器(Tomcat)接受到HTTP请求后,Web容器把HTTP转换为HttpServletRequest对象,然后根据请求名称匹配规则找到相应的Servlet,调用servlet-class对应类的doGet()或doPost()方法

【斗医】【3】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1308932 在上面提及异常的中英文从资源文件中读取,若读取失败需要日志记录,所以使用网上正在闹腾的Logback来记录.关于Logback与Log4j这里不做评判和说明,所有疑问可以请教谷歌. 一.Logback的使用前期准备 1.在官网http://logback.qos.ch/download.html

【斗医】【1】Web应用开发20天

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1303925 从哪里开始呢? 还是从前段认识的朋友开始吧. 前段在圈里认识了一个朋友,当他聊到他用SSH开发了一套系统时,我思想意识中想到SSH应该是一个通讯协议,他用不可置否的语气说:大叔,你从事这一行业也这么多年了,难道不知道SSH? 说来惭愧,从事这行业时间真的不短了,好像没有真的从事过WEB方面的开发