创建springmvc src文件和jsp文件
来源:互联网 发布:mac录屏如何录制声音 编辑:程序博客网 时间:2024/06/01 12:53
package com.sxt.po;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private Stringuname;
public int getId() {
returnid;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
returnuname;
}
public void setUname(String uname) {
this.uname = uname;
}
}
package com.sxt.dao;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.sxt.po.User;
public class UserDao {
private HibernateTemplate hibernateTemplate;
public void add(User u){
System.out.println("UserDao.add()");
hibernateTemplate.save(u);
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}
package com.sxt.service;
import com.sxt.dao.UserDao;
import com.sxt.po.User;
public class UserService {
private UserDao userDao;
public void add(String uname){
System.out.println("UserService.add()");
User u = new User();
u.setUname(uname);
userDao.add(u);
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
package com.sxt.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.sxt.service.UserService;
public class UserController implements Controller {
private UserService userService;
@Override
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse resp) throws Exception {
System.out.println("HelloController.handleRequest()");
req.setAttribute("a", "aaaa");
userService.add(req.getParameter("uname"));
return new ModelAndView("index");
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>
测试
http://localhost:9000/springmvc01/user.do?uname=zhangsan
发现数据库中没有插入这条记录
在代码中 一直寻找 实体类 和 数据库表的关系, 一直没找到,
后来在在hib-config.xml中发现这行代码: <prop key="hibernate.hbm2ddl.auto">update</prop> 然后在百度上 搜索这行代码,
其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。
create:
每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:
最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
再说点“废话”:
当我们把hibernate.hbm2ddl.auto=create时hibernate先用hbm2ddl来生成数据库schema。
当我们把hibernate.cfg.xml文件中hbm2ddl属性注释掉,这样我们就取消了在启动时用hbm2ddl来生成数据库schema。通常 只有在不断重复进行单元测试的时候才需要打开它,但再次运行hbm2ddl会把你保存的一切都删除掉(drop)---- create配置的含义是:“在创建SessionFactory的时候,从scema中drop掉所以的表,再重新创建它们”。
注意,很多Hibernate新手在这一步会失败,我们不时看到关于Table not found错误信息的提问。但是,只要你根据上面描述的步骤来执行,就不会有这个问题,因为hbm2ddl会在第一次运行的时候创建数据库schema, 后续的应用程序重启后还能继续使用这个schema。假若你修改了映射,或者修改了数据库schema,你必须把hbm2ddl重新打开一次。
然后 尝试将将user实体类 改成 userinfo, 成功插入
原来是实体类user, 在oracle中无法 创建user这个用户,
oacle中自动创建表 userinfo, 插入一条记录 userinfo
明天下班有空看看springmvc框架的具体跳转方式 原理
- 创建springmvc src文件和jsp文件
- jsp + springMVC文件上传
- Java创建文件夹和JSP下载文件
- 创建jsp文件
- 设置文件为源文件(和src一样)
- 创建 JSP 2.0 标记文件
- 创建 JSP 2.0 标记文件
- 创建 JSP 2.0 标记文件
- 创建 JSP 2.0 标记文件
- Eclipse创建jsp文件乱码
- eclipse--不能创建src/main/java资源文件解决
- java jsp 文件操作 文件创建相关
- .src.rpm文件安装
- html src文件引入
- idea创建jsp文件,修改jsp头文件,删除项目
- 创建文件和删除文件
- SpringMVC 单文件和多文件上传
- easyui和springmvc上传文件
- Insertion Sort List
- hdu5534 Partial Tree
- 成员的初始化
- printf可变参数的实现
- mysqldump参数大全
- 创建springmvc src文件和jsp文件
- 二分查找中term有重复的情况
- 解释型语言与编译型语言的区别
- Mysql压缩包版的安装方法
- AsysnTask&Handler
- 树状数组选讲
- 使用rand5()生成rand7()
- 每个程序员都会的 35 个 jQuery 小技巧
- 一结(13)