mvc crud_Spring MVC3 Hibernate CRUD示例应用程序

mvc crud

学习从HelloWorld应用程序开始的任何Web框架都是一个好主意。 一旦我们熟悉了框架配置,最好做一个CRUD(创建,读取,更新,删除)应用程序,该应用程序涵盖Web框架的各个方面,例如验证,请求URL映射,请求参数绑定,预填充表单等。 。

现在,我将解释如何使用Spring MVC3,Hibernate和MySQL编写一个简单的CRUD应用程序。 我们的应用程序是ContactsManagements,您可以在其中查看或搜索联系人,创建新联系人,编辑或删除现有联系人。

步骤#1:创建联系人表

CREATE TABLE  CONTACTS
(id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(45) NOT NULL,address varchar(45) DEFAULT NULL,gender char(1) DEFAULT 'M',dob datetime DEFAULT NULL,email varchar(45) DEFAULT NULL,mobile varchar(15) DEFAULT NULL,phone varchar(15) DEFAULT NULL,PRIMARY KEY (id)
);

步骤2:将SpringMVC,Hibernate及其从属jar复制到WEB-INF / lib文件夹中。 如果您使用的是Maven,则可以提及以下依赖项。

<dependencies><dependency><groupid>junit</groupid><artifactid>junit</artifactid><version>4.8.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-web</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-core</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope><exclusions><exclusion><artifactid>commons-logging</artifactid><groupid>commons-logging</groupid></exclusion></exclusions></dependency><dependency><groupid>log4j</groupid><artifactid>log4j</artifactid><version>1.2.14</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-tx</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>jstl</groupid><artifactid>jstl</artifactid><version>1.1.2</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>taglibs</groupid><artifactid>standard</artifactid><version>1.1.2</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-webmvc</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-aop</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>commons-digester</groupid><artifactid>commons-digester</artifactid><version>2.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>commons-collections</groupid><artifactid>commons-collections</artifactid><version>3.2.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.hibernate</groupid><artifactid>hibernate-core</artifactid><version>3.3.2.GA</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>javax.persistence</groupid><artifactid>persistence-api</artifactid><version>1.0</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>c3p0</groupid><artifactid>c3p0</artifactid><version>0.9.1.2</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.springframework</groupid><artifactid>spring-orm</artifactid><version>3.0.5.RELEASE</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.slf4j</groupid><artifactid>slf4j-api</artifactid><version>1.6.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.slf4j</groupid><artifactid>slf4j-log4j12</artifactid><version>1.6.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>cglib</groupid><artifactid>cglib-nodep</artifactid><version>2.2</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>org.hibernate</groupid><artifactid>hibernate-annotations</artifactid><version>3.4.0.GA</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>jboss</groupid><artifactid>javassist</artifactid><version>3.7.ga</version><type>jar</type><scope>compile</scope></dependency><dependency><groupid>mysql</groupid><artifactid>mysql-connector-java</artifactid><version>5.1.14</version><type>jar</type><scope>compile</scope></dependency></dependencies>

步骤#3:配置SpringMVC

a)在web.xml中配置DispatcherServlet

<servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>

b)在WEB-INF / dispatcher-servlet.xml中配置View Resolver

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp">
</bean>

c)在WEB-INF / classes / applicationContext.xml中配置注释支持,PropertyPlaceHolderConfigurer,ResourceBundleMessageSource

<context:annotation-config></context:annotation-config><context:component-scan base-package="com.sivalabs"></context:component-scan><mvc:annotation-driven> </mvc:annotation-driven><context:property-placeholder location="classpath:config.properties"></context:property-placeholder><bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="Messages"></bean>

步骤#4:在config.properties中配置JDBC连接参数和Hibernate属性

################### JDBC Configuration ##########################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sivalabs
jdbc.username=root
jdbc.password=admin################### Hibernate Configuration ##########################
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
#hibernate.hbm2ddl.auto=update
hibernate.generate_statistics=true

步骤5:在WEB-INF / classes / applicationContext.xml中配置数据源,SessionFactory,TransactionManagement支持

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" p:driverclassname="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}">
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="hibernateProperties"><props>       <prop key="hibernate.dialect">${hibernate.dialect}</prop>         <prop key="hibernate.show_sql">${hibernate.show_sql}</prop></props></property><property name="packagesToScan" value="com.sivalabs"></property>
</bean><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionfactory-ref="sessionFactory">
</bean><tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

步骤#6:在WEB-INF / classes / Messages.properties中配置标签和错误消息

App.Title=SivaLabs
typeMismatch.java.util.Date={0} is Invalid Date.
dob=DOB

步骤#7:创建实体类Contact.java

package com.sivalabs.contacts;import java.util.Date;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;import org.apache.commons.lang.builder.ToStringBuilder;@Entity
@Table(name="CONTACTS")
public class Contact
{@Id@GeneratedValue(strategy = GenerationType.AUTO)private int id;@Column private String name;@Column private String address;@Column private String gender;@Column private Date dob;@Column private String email;@Column private String mobile;@Column private String phone;@Overridepublic String toString(){return ToStringBuilder.reflectionToString(this);}//setters & getters
}

步骤#8:创建在CONTACTS表上执行CRUD操作的ContactsDAO.java。

package com.sivalabs.contacts;import java.util.List;import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;@Repository
@Transactional
public class ContactsDAO
{@Autowiredprivate SessionFactory sessionFactory;public Contact getById(int id){return (Contact) sessionFactory.getCurrentSession().get(Contact.class, id);}@SuppressWarnings("unchecked")public List searchContacts(String name){Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Contact.class);criteria.add(Restrictions.ilike("name", name+"%"));return criteria.list();}@SuppressWarnings("unchecked")public List getAllContacts(){Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Contact.class);return criteria.list();}public int save(Contact contact){return (Integer) sessionFactory.getCurrentSession().save(contact);}public void update(Contact contact){sessionFactory.getCurrentSession().merge(contact);}public void delete(int id){Contact c = getById(id);sessionFactory.getCurrentSession().delete(c);}
}

步骤#9:创建ContactFormValidator.java,它在保存/更新联系人时执行验证。

package com.sivalabs.contacts;import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;@Component("contactFormValidator")
public class ContactFormValidator implements Validator
{@SuppressWarnings("unchecked")@Overridepublic boolean supports(Class clazz){return Contact.class.isAssignableFrom(clazz);}@Overridepublic void validate(Object model, Errors errors){ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name","required.name", "Name is required.");}
}

步骤#10:创建处理所有CRUD请求的ContactsControllers.java。

package com.sivalabs.contacts;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;@Controller
public class ContactsControllers
{@Autowiredprivate ContactsDAO contactsDAO;@Autowiredprivate ContactFormValidator validator;@InitBinderpublic void initBinder(WebDataBinder binder){SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");dateFormat.setLenient(false);binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));}@RequestMapping("/searchContacts")public ModelAndView searchContacts(@RequestParam(required= false, defaultValue="") String name){ModelAndView mav = new ModelAndView("showContacts");List contacts = contactsDAO.searchContacts(name.trim());mav.addObject("SEARCH_CONTACTS_RESULTS_KEY", contacts);return mav;}@RequestMapping("/viewAllContacts")public ModelAndView getAllContacts(){ModelAndView mav = new ModelAndView("showContacts");List contacts = contactsDAO.getAllContacts();mav.addObject("SEARCH_CONTACTS_RESULTS_KEY", contacts);return mav;}@RequestMapping(value="/saveContact", method=RequestMethod.GET)public ModelAndView newuserForm(){ModelAndView mav = new ModelAndView("newContact");Contact contact = new Contact();mav.getModelMap().put("newContact", contact);return mav;}@RequestMapping(value="/saveContact", method=RequestMethod.POST)public String create(@ModelAttribute("newContact")Contact contact, BindingResult result, SessionStatus status){validator.validate(contact, result);if (result.hasErrors()){   return "newContact";}contactsDAO.save(contact);status.setComplete();return "redirect:viewAllContacts.do";}@RequestMapping(value="/updateContact", method=RequestMethod.GET)public ModelAndView edit(@RequestParam("id")Integer id){ModelAndView mav = new ModelAndView("editContact");Contact contact = contactsDAO.getById(id);mav.addObject("editContact", contact);return mav;}@RequestMapping(value="/updateContact", method=RequestMethod.POST)public String update(@ModelAttribute("editContact") Contact contact, BindingResult result, SessionStatus status){validator.validate(contact, result);if (result.hasErrors()) {return "editContact";}contactsDAO.update(contact);status.setComplete();return "redirect:viewAllContacts.do";}@RequestMapping("deleteContact")public ModelAndView delete(@RequestParam("id")Integer id){ModelAndView mav = new ModelAndView("redirect:viewAllContacts.do");contactsDAO.delete(id);return mav;}
}

步骤#11:与其在所有JSP中编写JSTL标记库描述,不如在一个JSP中声明它们并将其包含在其他JSP中。

taglib_includes.jsp

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%><%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>

步骤#12:创建JSP。

a)showContacts.jsp

<%@include file="taglib_includes.jsp" %><html>
<head><title><spring:message code="App.Title"></spring:message> </title>
<script type="text/javascript" src="js/contacts.js"></script>
</head>
<body style="font-family: Arial; font-size:smaller;"><center><form action="searchContacts.do" method="post"><table style="border-collapse: collapse;" width="500" border="0" bordercolor="#006699"><tbody><tr>     <td>Enter Contact Name</td>      <td><input name="name" type="text"><input value="Search" type="submit"><input value="New Contact" onclick="javascript:go('saveContact.do');" type="button"></td></tr>
</tbody></table></form><c:if test="${empty SEARCH_CONTACTS_RESULTS_KEY}">
</c:if><c:if test="${! empty SEARCH_CONTACTS_RESULTS_KEY}">    <c:foreach var="contact" items="${SEARCH_CONTACTS_RESULTS_KEY}">
</c:foreach></c:if><table style="border-collapse: collapse;" width="500" border="1" bordercolor="#006699"><tbody><tr bgcolor="lightblue">    <th>Id</th>    <th>Name</th>       <th>Address</th>     <th>Mobile</th>    <th></th>   </tr>
<tr>    <td colspan="4">No Results found</td>   </tr><tr>     <td><c:out value="${contact.id}"></c:out></td>     <td><c:out value="${contact.name}"></c:out></td>     <td><c:out value="${contact.address}"></c:out> </td>     <td><c:out value="${contact.mobile}"></c:out></td>     <td><a href="updateContact.do?id=$%7Bcontact.id%7D">Edit</a><a href="javascript:deleteContact('deleteContact.do?id=${contact.id}');">Delete</a></td>    </tr></tbody></table></center></body>
</html>

b)newContact.jsp

<%@include file="taglib_includes.jsp" %><html>
<head><script type="text/javascript" src="js/contacts.js"></script><title><spring:message code="App.Title"></spring:message> </title>
</head>
<body style="font-family: Arial; font-size:smaller;"><table style="border-collapse: collapse;" width="750" align="center" bgcolor="lightblue" border="1" bordercolor="#006699" height="500"><tbody><tr>   <td align="center"><h3>Edit Contact Form</h3></td>  </tr>
<tr valign="top" align="center">     <td align="center"><form:form action="saveContact.do" method="post" commandname="newContact"><table style="border-collapse: collapse;" width="500" border="0" bordercolor="#006699" cellpadding="2" cellspacing="2"><tbody><tr>       <td width="100" align="right">Name</td>       <td width="150"><form:input path="name"></form:input></td>       <td align="left"><form:errors path="name" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">DOB</td>       <td><form:input path="dob"></form:input></td>       <td align="left"><form:errors path="dob" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Gender</td>       <td>     <form:select path="gender"><form:option value="M" label="Male"><form:option value="F" label="Female"></form:option></form:option></form:select></td>       <td></td>            </tr>
<tr>       <td width="100" align="right">Address</td>       <td><form:input path="address"></form:input></td>       <td align="left"><form:errors path="address" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Email</td>       <td><form:input path="email"></form:input></td>       <td align="left"><form:errors path="email" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Mobile</td>       <td><form:input path="mobile"></form:input></td>       <td align="left"><form:errors path="mobile" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td colspan="3" align="center"><input name="" value="Save" type="submit"><input name="" value="Reset" type="reset"><input value="Back" onclick="javascript:go('viewAllContacts.do');" type="button"></td>      </tr>
</tbody></table></form:form></td>       </tr>
</tbody></table></body>
</html>

a)editContact.jsp

<%@include file="taglib_includes.jsp" %><html>
<head><script type="text/javascript" src="js/contacts.js"></script><title><spring:message code="App.Title"></spring:message> </title>
</head>
<body style="font-family: Arial; font-size:smaller;"><table style="border-collapse: collapse;" width="750" align="center" bgcolor="lightblue" border="1" bordercolor="#006699" height="500"><tbody><tr>   <td align="center"><h3>Edit Contact Form</h3></td>  </tr>
<tr valign="top" align="center">     <td align="center"><form:form action="updateContact.do" method="post" commandname="editContact"><table style="border-collapse: collapse;" width="500" border="0" bordercolor="#006699" cellpadding="2" cellspacing="2"><tbody><tr>       <td width="100" align="right">Id</td>       <td width="150"><form:input path="id" readonly="true"></form:input></td>       <td align="left"><form:errors path="id" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Name</td>       <td><form:input path="name"></form:input></td>       <td align="left"><form:errors path="name" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">DOB</td>       <td><form:input path="dob"></form:input></td>       <td align="left"><form:errors path="dob" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Gender</td>       <td>     <form:select path="gender"><form:option value="M" label="Male"><form:option value="F" label="Female"></form:option></form:option></form:select></td>       <td></td>            </tr>
<tr>       <td width="100" align="right">Address</td>       <td><form:input path="address"></form:input></td>       <td align="left"><form:errors path="address" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Email</td>       <td><form:input path="email"></form:input></td>       <td align="left"><form:errors path="email" cssstyle="color:red"></form:errors></td>      </tr>
<tr>       <td width="100" align="right">Mobile</td>       <td><form:input path="mobile"></form:input></td>       <td align="left"><form:errors path="mobile" cssstyle="color:red"></form:errors></td>      </tr>
<tr valign="bottom">       <td colspan="3" align="center"><input value="Delete" onclick="javascript:deleteContact('deleteContact.do?id=${editContact.id}');" type="button"><input name="" value="Save" type="submit">     <input value="Back" onclick="javascript:go('viewAllContacts.do');" type="button"></td>      </tr>
</tbody></table></form:form></td>       </tr>
</tbody></table></body>
</html>

步骤#13:编写包含实用程序方法的javascript文件js / contacts.js

function go(url)
{window.location = url;
}function deleteContact(url)
{var isOK = confirm("Are you sure to delete?");if(isOK){go(url);}
}

步骤#14:欢迎文件index.jsp

<%
response.sendRedirect("viewAllContacts.do");
%>

步骤#15:启动服务器,然后将浏览器URL指向http:// localhost:8080 / SpringMVCHibernate

参考:来自我们SivaLabs的 JCG合作伙伴 Siva的Spring MVC3 Hibernate CRUD示例应用程序 。

    相关文章:

    • Spring MVC开发–快速教程
    • Spring 3 RESTful Web服务
    • 具有Spring和Maven教程的JAX–WS
    • 使用Spring AspectJ和Maven进行面向方面的编程

    翻译自: https://www.javacodegeeks.com/2011/04/spring-mvc3-hibernate-crud-sample.html

    mvc crud

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359653.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    关于支付宝即时到帐异步通知(notify_url)一点总结

    &#xff08;1&#xff09;首先做支付的商业网站&#xff0c;需要能够上网&#xff08;支付成功后&#xff0c;需要进行参数回传验证&#xff0c;如果上不了网&#xff0c;responseText就直接为false&#xff09;&#xff08;2&#xff09;notify_url这个不能进行验证&#xff…

    会计用计算机很快是,40个超实用电脑快捷键,老会计都在用

    Ctrl A 全选Ctrl C 复制Ctrl F 查找Ctrl P 打印Ctrl X 剪切Ctrl V 粘贴Ctrl Z 撤消Ctrl Y 恢复Alt PrtScr 截屏(活动窗口)Ctrl Alt A 截屏(QQ截屏)Ctrl Shift X 截屏(360截屏)Delete 删除Win D 返回桌面Win E 打开我的电脑Win L 锁定桌面Win 左/右箭头 将当前…

    windows+nginx负载测试

    系统:windows2003nginx版本:1.7.3(官方推荐版本 #父节点 http upstream cluster_1{ ip_hash;#能较好地把同一个客户端的多次请求分配到同一台服务器处理&#xff0c;避免了加权轮询无法适用会话保持的需求 server host:port weight1;#权重越高转向的请求比重越大 server host:p…

    Vue 封装echarts柱状图(Bar)组件

    目的&#xff1a;减少重复代码&#xff0c;便于维护 显示效果 组件代码 <template><div class"ldw-data-content-box"><div class"ldw-chilren-box"><div class"title" v-if"title">{{ title }}</div>…

    9277用计算机,关于计算机常用进制以及进制之间的转换笔记

    计算机常用进制以及进制之间的转换进制的由来生活中的常用进制计算机中的二进制计算机常用四种进制的说明八进制和十六进制进制之间的转换进制的由来进位就是进位计数制&#xff0c;就是一种计数的方法古代社会的技术方式结绳计数书契计数算盘正字计数n进制&#xff0c;就是逢n…

    HTML5-寻路跟踪

    转载于:https://www.cnblogs.com/lgyup/p/3895914.html

    smartgwt_高级SmartGWT教程,第2部分

    smartgwt这是我的教程的第二部分&#xff0c;有关使用SmartGWT快速进行UI开发。 在本教程的第一部分中 &#xff0c;我们创建了基本的界面布局并添加了一些基本组件。 现在是时候解决这个问题&#xff0c;并使用SmartGWT的真正功能了。 在继续之前&#xff0c;让我们记住到目前…

    百年理工计算机专业课程,这两所国内的百年理工院校,实力强劲,都是国内顶尖实力...

    2021年全国高考终于圆满落下了帷幕&#xff0c;但考生们即将要面临一件人生大事&#xff0c;那就是高考志愿填报&#xff0c;因此高考虽然结束&#xff0c;但考生们的压力仍然是不小&#xff0c;只有正确地填好高考志愿&#xff0c;确保自己能够被心仪的高校收录取&#xff0c;…

    数学图形之SineSurface与粽子曲面

    SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正方体. 本文将展示SineSurface与粽子曲面的生成算法和切图,使用自己定义语法的脚…

    计算机工程学院文艺例会,西航职院 | 计算机工程学院 2019年度学生会干部第一次例会...

    原标题&#xff1a;西航职院 | 计算机工程学院 2019年度学生会干部第一次例会西航职院计算机工程学院&#xff0c;2019年度第一次学生会干部例会&#xff0c;于2月26日下午在四号教学楼201顺利召开。参加此次会议的有计算机学生会全体学生干部和指导老师刘老师。会议开始&#…

    dateformat线程_Java最佳实践–多线程环境中的DateFormat

    dateformat线程这是有关使用Java编程语言时的拟议实践的系列文章的第一篇。 所有讨论的主题均基于用例&#xff0c;这些用例源于电信行业关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前&#xff0c;强烈建议您参考相关的Java API文档以获取详细信息和代码示例。…

    计算机组装报告文档,计算机组装报告.doc.docx

    计算机组装与维护实训报告 2010-03-22 10:10计算机组装与维护实训报告 实习内容&#xff1a;计算机组装与维 护实习地点&#xff1a;学校机 房实 习目的&#xff1a; 通过计算机的组装&#xff0c; 认识计算机的硬件和结构&#xff0c; 了解计算机的整个组装过程和注意 事 项。…

    关于图连通性的几道题(水)

    POJ 2186 强连通分量缩点 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 using namespace std;5 6 int en[10010], col[10010], dfn[10010], low[10010], stack[10010], tot[10010], chu[10010];7 bool ins[10010];8 int n, m, esize, dtime…

    计算机教育 如何投稿,高职院校计算机教育论文投稿教育杂志-教育论文投稿

    教育学文摘》杂志征稿启示(杂志介绍)《教育学文摘》杂志创刊于1986年,系国家级教育类学术期刊&#xff0c;精选摘编有关教育理论研究和学校改革实践方面的优秀文章&#xff0c;由教育部主管&#xff0c;中国人民大学主办&#xff0c;面向国内外公开发行&#xff0c;本刊已被中国…

    一台计算机硬盘容量标为800gb,一台计算机的硬盘容量标为800GB,其存储容量是()。...

    台硬盘不适的装用于料是室外饰材。行的有_能进操作&#xff0c;计算机系统源管在W“资”中操作理器。不正有_确的&#xff0c;容量下列叙述中。的有描述正确&#xff0c;其存文输的中s系统下关于入。文档选定应_整篇&#xff0c;储容d文档编在W辑中。不能作进行_操&#xff0c;…

    提升您的Hibernate引擎

    是否想知道如何调整基于Hibernate的应用程序以获得无缝的可伸缩性和最佳性能&#xff1f; 本文探讨了基于Hibernate的应用程序的调整技术&#xff0c;重点是有效但文献记载不足的调整主题&#xff0c;例如继承映射&#xff0c;二级缓存和增强的序列标识符生成器。 它还提供了一…

    sql alter表字段处理

    --添加字段 ALTER table WCOLLECTION add CLT_ID int null default(0) --将已有字段类型为 NULL 修改为 NOT NULLalter table table_namealter column column_name char(20) not null--添加主键ALTER table WCOLLECTION add primary key (CLT_ID)转载于:https://www.cnblogs.c…

    流程图伪代码计算机语言,流程图与伪代码 PPT课件

    2018考纲分析,2018考纲分析,程序设计增加部分(适应2018新考纲),目录一、程序与算法介绍1.流程图2.伪代码二、程序的基本结构,一、程序与算法介绍,软件计算机程序文档资料程序数据结构算法程序设计方法语言工具和环境,算法的表示方法有很多种常用的有&#xff1a;自然语言、流程…

    2544 hdu

    // 顶点从1 开始 floyed#include <stdio.h>#define N 201#define INF 100000 int g[N][N],n,m; void floyed() { int i,j,k; for(k1;k<n;k) { for(i1;i<n;i) for(j1;j<n;j) if(g[i][j]>g[i][k]g[k][j]) g[i][j]g[i][k]g[k][j] ; } } int main(){ int i,j,x,y…

    笔记本计算机盖上盖子关机,笔记本电脑不关机就盖上盖子,这样好吗

    笔记本电脑不关机就盖上盖子不好&#xff0c;虽然在合上笔记本待机之后&#xff0c;主板和其他部件基本上都处于待命状态&#xff0c;硬盘由高速转入低速运转&#xff0c;但是待机状态下仍然有损耗&#xff0c;长时间不关机和重启&#xff0c;有些程序占据的内存得不到释放&…