java项目1-项目的搭建

---------(第一天)--------------

OA项目:(使用SSH架构搭建+maven)

maven主要是导入项目所需要的包,这些包是固定的。就像不用maven创建项目时,直接加所需的外部jar包导入到WebRoot目录下的lib中。创建web项目时,使用maven支持。

1、创建一个web project(删除src文件,自己建立src文件)

注意一点:add maven support

2、在pom.xml文件中,添加一个坐标,发布到tomcat下,看结构是否一致

3、把整个工程的编码和jsp的编码改成utf-8

右击项目->>properties->>Resource->>设置编码utf-8

jsp页面设置:window->preferences->MyEclipse->File and Editors->JSP

修改数据库的字符集mysql>use mydb

mysql>alter database mydb character set utf8;

创建数据库指定数据库的字符集

mysql>create database mydb character set utf8;

检查编码方式:

mysql> show variables like 'char%';

mysql> SET character_set_connection = utf8 ;

mysql> SET character_set_database = utf8 ;

mysql> SET character_set_results = utf8 ;

mysql> SET character_set_server = utf8 ;

mysql> SET collation_connection = utf8 ;

mysql> SET collation_database = utf8 ;

mysql> SET collation_server = utf8 ;

查看数据表的编码格式

mysql> show create table ;

修改数据表编码格式

mysql>alter talbe character set utf8;

修改字段编码格式

ysql>alter table change character set utf8;

【注:添加的作用是:指定字符的编码、解码格式。

例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

1. 存数据时:

数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

2.取数据时:

在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

注意:在xml配置文件中配置数据库utl时,要使用&的转义字符也就是&】

(1)开发环境 比如:eclipse中的window -->> Preferences -->>General-->>……

(2)页面设置

(3)服务器的配置 比如:tomcat的编码设置

4)数据库乱码 比如:mySqL数据库中

-------------------------------

4、建立maven约束的内容

src/main/java

cn.itcast.shoa.domain

存放hibernate的实体类和映射文件

cn.itcast.shoa.dao

存放的是数据库操作时候的dao的接口

cn.itcast.shoa.dao.impl

存放的是数据库操作时候的dao的实现类

cn.itcast.shoa.dao.base

存放的是数据操作的基本的dao接口

cn.itcast.shoa.dao.base.impl

存放的是数据操作的基本的dao的实现类

cn.itcast.shoa.service

存放的是业务逻辑接口

cn.itcast.shoa.service.impl

存放的是业务逻辑实现类

cn.itcast.shoa.struts.action

存放的是struts2中的action类

cn.itcast.shoa.util

存放的是在做项目的时候的工具类

src/main/resources

struts2

存放struts2的配置文件

spring

spring的配置文件

hibernate

hibernate.cfg.xml

src/test/java

src/test/resources

target

pom.xml

5、编辑pom.xml文件,导入整个工程的jar包

6、在cn.itcast.shoa.domain中写持久化类和映射文件[谁先测试谁先写】框架搭建好后测试。

Person.java(继承了Serializable类,可以在网络中传输,一般持久化类都会继承该类)

Person.hbm.xml《与持久化类对应的映射文件》

7、写hibernate的配置文件,把映射文件引入进去

8、写spring的配置文件,引入sessionFactory

8、写spring的配置文件,引入sessionFactory【一般会建立多个spring配置文件,一个作为其他配置文件的出口,其他的配置文件根据功能来划分

。applicationContext-db.xml主要是数据库spring的配置(包含事务管理),applicationContext.xml是作为引入其他spring配置文件,applicationContext-person.xml,是配置关于Person类的一些spring配置】

8.1 在spring的包中建立这么一个结构的配置文件

applicationContext.xml

applicationContext-*.xml

8.2 在applicationContext-db.xml文件中引入sessionFactory

第一种导入方式

classpath:hiberante/hiberante.cfg.xml

9、对sessionFactory进行测试

注:在实际运行中,pom.xml文件需要不能将build标签删除;测试程序运行时,经常丢失xml配置文件,需要重新修改名字,在修改回来,才能将xml配置文件加载到Tomcat的classes文件中,否则不能运行。问题?

总结:项目单独使用Hibernate时:通过什么样的类引用配置hibernate.cfg.xml文件,获得会话工厂,进行对数据的操作。Configuration conf = new Configuration().configure("hibernate.cfg.xml");SessionFactory sf = conf.buildSessionFactory();sf.getCurrentSession();一般是在工具类中

项目使用Spring框架整合Hibernate时:在spring文件中引用hibernate配置文件,将会话对象放入IoC容器中,通过ApplicationContext context = new ClassPathXmlApplicationContext("spring/ApplicationContext.xml");获取文件,在通过context.getBean("sessionFactory")获取会话工厂,进行数据库操作。

上面搭建完成,做一个测试运行,看框架是否可行。

----------------第二天--------------

10、在spring的配置文件中,写spring的声明式事务管理(权限验证、安全性、日志功能与业务逻辑分离开,独立开发,重点学习)

依据的原理是aop:使各个通知和目标方法实现松耦合

11、在dao层和service层建立接口和类

PersonDao

PersonDaoImpl

PersonService

PersonServiceImpl

12、把dao层和service层的类放入到spring的配置文件中

13、测试personService,看产生的对象是否是代理对象

14、写action

15、把action放入到spring配置文件中

16、写action的配置文件(struts.xml配置文件一定是在源文件根目录下,当服务器启动时,会加载该配置文件)

17、写web.xml文件(在web.xml中部署spring、hibernate、struts2)

-------------------------------------------

2、实际的应用:重构dao(为什么要用泛型重构Dao)

1、cn/itcast/shoa/dao/base/BaseDao

public interface BaseDao{

/**

* 得到E代表的所有的实体对象

* @return

*/

public Collection getAllEntry();

/**

* Serializable该类型可以接受所有的基本类型和String类型

* @param id

* @return

*/Serializable可以接收所有主键类型,所有的基本数据类型的包装类都继承了Serializable类

public E getEntryById(Serializable id);

public void saveEntry(E e);

public void deleteEntry(Serializable id);

public void updateEntry(E e);

}

2、实现类:cn/itcast/shoa/dao/base/impl/BaseDaoImpl

BaseDao

BaseDaoImpl implements BaseDao

PersonDao extends BaseDao

PersonDaoImpl extends BaseDaoImpl

implements PersonDao

-------------------------

架构搭建好,分模块进行程序分析;【每一个模块都有对应的】)

系统管理模块:(用户管理,角色管理,部门管理)

1、需要分析

2、数据库表的设计

3、写持久化类和映射文件

cn/itcast/sh05oa/domain/system

User.java

User.hbm.xml

Department.java

Department.hbm.xml

Role.java

Role.hbm.xml

注:配置映射关系时,所有的属性都对,也可能出现异常,输入可能有中文符号等,不行只能重新输入一遍。在hibernate的映射配置文件中,无需先数据库对应字段名,系统会自动匹配,只要在hibernate配置文件设置相关属性即可。每个持久化类都对应的映射文件,独立方便修改。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180609G14QRV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券