在cmd 里写入MySQL

来源:互联网 发布:fcn网络结构 编辑:程序博客网 时间:2024/05/18 02:30

学生系统需求

1. 用户表(名字,性别,年龄),首页显示出来

2. 如果年龄大于18,状态栏显示成人,否则显示小朋友。

3. 页面不刷新在首页点击【是否获奖】,弹出【是】或【否】

游戏规则a.必须是女  b.年龄必须大于等于18岁,和少于15

    【必须a.使用ajax技术  b.业务规则的代码写在service层。前后端互动】

一、 建立数据库


 

CREATE DATABASE student DEFAULT CHARACTER SET utf8;

 

建表(手动写SQL

create table user(

  id int primary key auto_increment,

  user_name varchar(20),

  sex int,

  age int

);

--(0:1:2:其他)

 

三、 插入3条测试数据

insert into user(user_name,sex,age) values('小红',1,16);

insert into user(user_name,sex,age) values('小明',0,20);

insert into user(user_name,sex,age) values('小军',1,13);


三、 创建新的项目(到时直接导入war

【参考之前的idea_maven的结合使用】

四、 建立4个目录action,service,dao,entity

 

五、 配置maven

Struts

Spring


自动包含core,beans,aop,但是版本不对

解决core,beansstruts的插件包版本冲突加进来










web支持

Hibernate


StrutsSpring结合的插件

 

 

SpringHibernate结合的插件


配置<bean id=”sessionFactory”>

数据库连接池C3P0


配置<bean id=”myDataSource”>

Mysql驱动包


由于版本问题,要注意URL以及driver的变化

根据前端的实际情况加入JSTL

检查一下依赖jar包是否正常


三、 配置web.xml

熟悉web.xml所在的目录结构,代码中webappàWEB-INF中的一个文件


Web.xml

配置struts2个过滤器(3年前的struts1个过滤器)


如果不要struts,想使用springMVC,就把这项改为SpringMVCServlet

配置spring的监听器


不管使用struts,还是SpringMVC,此spring监听器,都是必须的

三、 配置一个struts.xml

1. idea创建struts.xml文件文件要保存到resources

 

 

2. 配置所有的action实例,由spring的容器创建

 

四、 配置Spring容器的配置文件applicationContext.xml

1、 idearesources根目录下,创建applicationContext.xml

 

 

 

2、 增加contexttx的支持

 

3、 此项目中,我们期待自己写的类使用注解,而不是<bean>,增加自动扫描包配置

 

 

4、 增加对DAO层的支持(SessionFactory的获取事务的支持)

a. 提供相关的数据链接信息,方便实施人员可以随时修改数据库密码等

applicationContext.xml中加入

<context:property-placeholder location="classpath:jdbc.properties"/>

 

如图建立jdbc.properties文件

 

b. 配置数据连接池(本项目中使用的是C3P0,如果速度不够快,可以选DBCP)

编写一个DataSource<bean>,注意里面的${driverClass}等变量来自于上一步的jdbc.properties文件

如下

 

c. 继续在applicationContext.xml添加多一个SessionFactorybean

 

5、 把事务的代码交给Spring来完成(这是一种AOP的应用)

我们在Dao层就不用再写beginTransaction commit, rollback,close

 

注意:编码时,需要在service层写上@Transactional

 

顺便补充说明如图搞清楚由谁去扫描对应的注解

 

 

以上所有的环境搭配,(struts2+hibernate5+spring5)已经完成,剩下的全是编码了。

导出一个war平时或者考试时可以直接导入wareclipse使用

 

后端代码:

一、 实体类

entity建立一个实体类User

a.在类的前面写上@Entity,@Table

b.根据表结构,编写各个属性,然后填写get/set

c.在主键(id)前面加上

@Id

@GeneratedValue(strategy= GenerationType.IDENTITY)

最好加上@Column(name="id")

d.其它字段加@ Column()即可

e.对私有字段增加@Transient

 

二、 Dao层,进行各种数据库的操作

1、 先写Dao接口UserDao

本例中设计一个方法getAllUser(),返回类型为:List<User>

2、 编写实现类UserDaoImpl

a、 implements UserDao

b、 添加未实现的方法getAllUser()

c、 添加注解@Repository@Scope("prototype")

d、 添加一个SessionFactory的属性,未保证实例不为null,添加@Autowired

e、 编写具体数据库操作代码,生成一个session,然后调用具体api,注意不需要编写任何的事务代码(属于横切关注点的,交给Spring完成)

三、 Service层,进行各种业务逻辑的操作(绝对不包含任何数据库代码)

1、 先写Service接口UserService

本例子中设计一个方法getAllUser(),返回类型为:List<User>

2、 编写实现类UserServiceImpl

a、 implements UserService

b、 添加未实现的方法getAllUser()

c、 对此方法添加一个注解:@Transactional

(因为此方法会调用Dao层,目的让Dao可以被Spring实现事务支持)

d、 对本类添加@Service @Scope("prototype")

e、 由于需要引用Dao的支持,所以添加一个Dao的属性,未保证实例不为null,添加@Autowired

f、 在getAllUser()中调用Dao层获取相关数据

g、 根据业务逻辑需要假如有业务逻辑先编写游戏规则

h、 返回结果

四、 编写Action

1、 编写实现类UserAction(本质上是StrutsAction接口的实现类)

2、 写上注解@Controller@Scope("prototype")

3、 编写方法showAllUser(),注意返回类型为String

4、 由于需要调用service层的东西添加一个Service的属性,并且为了防止为,加入@Autowired

5、 调用service获取相关的数据(从数据库来的,以及经过service包装)

6、 把结果传递给前端的jsp页面

ActionContext.getContext().getValueStack().set();

7、 return this.SUCCESS;

8、 编写strtus.xml文件配置返回结果与jsp的关系

a. 编写package的节点

b. package节点内编写action节点

对应上name  class method的属性值

c. action节点内编写result,指定对应的jsp页面

 

前端代码

编写jsp文件

1、 引入

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

2、 使用相关<c:forEach>以及el表达式,进行数据的显示

3、 编写index.jsp,跳转到具体action




原创粉丝点击