基于 SSH 框架的 Criteria 和 DetachedCriteria 多条件查询
Hibernate 定义了 CriteriaSpecification 接口规范用来完成面向对象的条件查询,Criteria 和 DetachedCriteria 就是 CriteriaSpecification 的子接口。
在进行本篇的内容之前,我们先来大致说一说 Criteria 和 DetachedCriteria 的主要区别:
Criteria 和 DetachedCriteria 的创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需 Session。
本篇完整实现如下:
一、导 jar 包
- antlr-2.7.6.jar
- asm-commons-3.3.jar
- commons-collections-3.1.jar
- commons-fileupload-1.3.jar
- commons-io-2.0.1.jar
- commons-lang3-3.1.jar
- commons-logging-1.1.3.jar
- dom4j-1.6.1.jar
- freemarker-2.3.19.jar
- hibernate3.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
- javassist-3.12.0.GA.jar
- jta-1.1.jar
- mysql-connector-java-5.0.8-bin.jar
- ognl-3.0.6.jar
- slf4j-api-1.6.1.jar
- spring-beans-4.3.8.RELEASE.jar
- spring-context-4.3.8.RELEASE.jar
- spring-core-4.3.8.RELEASE.jar
- spring-expression-4.3.8.RELEASE.jar
- spring-jdbc-4.3.8.RELEASE.jar
- spring-orm-4.3.8.RELEASE.jar
- spring-tx-4.3.8.RELEASE.jar
- spring-web-4.3.8.RELEASE.jar
- struts2-core-2.3.15.3.jar
- struts2-spring-plugin-2.3.15.3.jar
- xwork-core-2.3.15.3.jar
二、配置 Struts2 核心过滤器 (web.xml)
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
三、Jsp 表单查询页 (list.jsp)
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib uri="/struts-tags" prefix="s" %>
- <%
- 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="">
- <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>
- <form action="${pageContext.request.contextPath}/queryCourseByCondition.action"
- method="post">
- <table width="88%" border="" class="emp_table" style="width:80%;">
- <tr>
- <td width="20%">姓名:</td>
- <td><input type="text" name="userName" size="" value="" /></td>
- </tr>
- <tr>
- <td >性别:</td>
- <td > <select name="gender" id="sex">
- <option value="">--选择性别--</option>
- <option value="男">男</option>
- <option value="女">女</option>
- </select>
- </td>
- </tr>
- <tr>
- <td >年龄:</td>
- <td ><input type="text" name="ageStart" size="" value="" /> 至 <input
- type="text" name="ageEnd" size="" value="" /></td>
- </tr>
- <tr>
- <td>是否上传简历:</td>
- <td ><select name="isUpload" id="isUpload">
- <option value="">--请选择--</option>
- <option value="">有</option>
- <option value="">无</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>信息备注:</td>
- <td><input type="text" name="remark" size="" value="" /></td>
- </tr>
- </table><br>
- <input type="submit" value="查询"/>
- <hr>
- <table width="97%" border="" >
- <tr class="henglan" style="font-weight:bold;">
- <td width="14%" align="center">姓名</td>
- <td width="13%" align="center">性别</td>
- <td width="13%" align="center">年龄</td>
- <td width="18%" align="center">简历</td>
- <td width="20%" align="center">备注</td>
- </tr>
- <%--数据展示 --%>
- <s:iterator>
- <tr class="tabtd1">
- <td align="center"><s:property value="userName"/> </td>
- <td align="center"><s:property value="gender"/></td>
- <td align="center"><s:property value="age"/></td>
- <td align="center"><s:property value="fileName"/></td>
- <td align="center"><s:property value="remark"/></td>
- </tr>
- </s:iterator>
- </table>
- </form>
- </body>
- </html>
四、封装 UserBean (User.java)
- package com.fhcq.bean;
- import java.io.Serializable;
- public class User implements Serializable {
- private Integer userID;
- private String userName;
- private String gender;
- private Integer age;
- private String fileName;
- private String remark;
- public Integer getUserID() {
- return userID;
- }
- public void setUserID(Integer userID) {
- this.userID = userID;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- public String getFileName() {
- return fileName;
- }
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- public String getRemark() {
- return remark;
- }
- public void setRemark(String remark) {
- this.remark = remark;
- }
- }
五、配置数据库表生成策略 (User.hbm.xml)
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <hibernate-mapping package="com.fhcq.bean">
- <!-- name是类名 如果有包就不用写全类名,否则要写。 table 表示对应的表名 。建议都要写 -->
- <class name="User" table="user">
- <!--使用Id配置主键 必须配置 -->
- <id name="userID" column="userID">
- <!--目前照常,主键生成策略 -->
- <generator class="native"></generator>
- </id>
- <property name="userName" column="userName"></property>
- <property name="gender" column="gender"></property>
- <property name="age" column="age"></property>
- <property name="filename" column="filename"></property>
- <property name="remark" column="remark"></property>
- </class>
- </hibernate-mapping>
六、设置数据库连接参数 (hibernate.cfg.xml)
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory name="foo">
- <!-- 配置数据库驱动 -->
- <property name="hibernate.connection.driver_class">
- com.mysql.jdbc.Driver
- </property>
- <!-- 要连接数控的用户名 -->
- <property name="hibernate.connection.username">root</property>
- <!-- 密码 -->
- <property name="hibernate.connection.password">123456</property>
- <!-- 连接数据库的路径 那个服务器 那个数据库 -->
- <property name="hibernate.connection.url">
- jdbc:mysql://localhost:3306/usermanager
- </property>
- <!-- 操作的时候显示操做过程中的sql语句 -->
- <property name="show_sql">true</property>
- <!-- 格式化它要显示的sql语句 -->
- <property name="format_sql">true</property>
- <!-- 是否要自动创建表 -->
- <property name="hbm2ddl.auto">update</property>
- <!-- 事务自动提交 -->
- <property name="connection.autocommit">true</property>
- <!-- 优化选项 -->
- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
- <!-- 导入映射文件 -->
- <mapping resource="com/fhcq/bean/User.hbm.xml" />
- </session-factory>
- </hibernate-configuration>
七、配置 Struts (struts.xml)
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
- "http://struts.apache.org/dtds/struts-2.3.dtd">
- <struts>
- <!--修改struct2称为开发模式,修改配置之后会自动加载 -->
- <constant name="struts.devMode" value="true"></constant>
- <package name="package1" extends="struts-default">
- <!-- 多条件查询 -->
- <action name="queryCourseByCondition"
- class="com.fhcq.action.QueryUserByConditionAction"
- method="queryCourseByCondition">
- <result name="success">/index.jsp</result>
- </action>
- </package>
- </struts>
八、表示层
8.1、QueryUserByConditionAction
- package com.fhcq.action;
- import java.util.List;
- import com.fhcq.bean.User;
- import com.fhcq.service.IUserService;
- import com.fhcq.service.UserServiceImpl;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.ModelDriven;
- import com.opensymphony.xwork2.util.ValueStack;
- public class QueryUserByConditionAction extends ActionSupport implements
- ModelDriven<User>{
- User user= new User();
- private String ageStart;
- private String ageEnd;
- private String isUpload;
- IUserService service;
- public String queryCourseByCondition(){
- String userName = user.getUserName();
- String gender = user.getGender();
- String remark = user.getRemark();
- List<User> userlist = service.queryUserByCondition
- (userName,gender,ageStart,ageEnd,isUpload,remark);
- System.out.println("QueryUserByConditionAction queryUser() userlist=
- "+userlist);
- ActionContext context = ActionContext.getContext();
- ValueStack valueStack = context.getValueStack();
- valueStack.push(userlist);
- return SUCCESS;
- }
- @Override
- public User getModel() {
- // TODO Auto-generated method stub
- return user;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- public String getIsUpload() {
- return isUpload;
- }
- public void setIsUpload(String isUpload) {
- this.isUpload = isUpload;
- }
- public String getAgeStart() {
- return ageStart;
- }
- public void setAgeStart(String ageStart) {
- this.ageStart = ageStart;
- }
- public String getAgeEnd() {
- return ageEnd;
- }
- public void setAgeEnd(String ageEnd) {
- this.ageEnd = ageEnd;
- }
- public IUserService getService() {
- return service;
- }
- public void setService(IUserService service) {
- this.service = service;
- }
- }
九、业务层
9.1、QueryUserService
- package com.fhcq.service;
- import java.util.List;
- import com.fhcq.bean.User;
- public interface IUserService {
- List<User> queryUserByCondition(String userName, String gender,String ageStart,
- String ageEnd, String isUpload,String remark);
- }
9.2、QueryUserServiceImpl
- package com.fhcq.service;
- import java.util.List;
- import com.fhcq.bean.User;
- import com.fhcq.dao.IUserDao;
- import com.fhcq.dao.UserDaoImpl;
- public class UserServiceImpl implements IUserService{
- IUserDao dao;
- @Override
- public List<User> queryUserByCondition(String userName, String gender,
- String ageStart, String ageEnd, String isUpload,String remark) {
- // TODO Auto-generated method stub
- List<User> queryUserByCondition = dao.queryUserByCondition
- (userName,gender,ageStart,ageEnd,isUpload,remark);
- return queryUserByCondition;
- }
- public IUserDao getDao() {
- return dao;
- }
- public void setDao(IUserDao dao) {
- this.dao = dao;
- }
- }
十、数据持久化层
10.1、QueryUserDao
- package com.fhcq.dao;
- import java.util.List;
- import com.fhcq.bean.User;
- public interface IUserDao {
- List<User> queryUserByCondition(String userName, String gender, String ageStart,
- String ageEnd, String isUpload, String remark);
- }
Criteria 在线实现多条件查询:
10.2、配置 Spring (applicationContext.xml)
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="myUserDaoImpl" class="com.fhcq.dao.UserDaoImpl"></bean>
- <bean id="service" class="com.fhcq.service.UserServiceImpl" >
- <property name="dao" ref="myUserDaoImpl"></property>
- </bean>
- </beans>
10.3、HibernateUtils 方法封装
- package com.fhcq.utils;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- public class HibernateUtils {
- static SessionFactory sessionFactory;
- static {
- Configuration configure = new Configuration().configure();
- sessionFactory = configure.buildSessionFactory();
- //增加 关闭虚拟机的时候自动释放
- Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
- @Override
- public void run() {
- // TODO Auto-generated method stub
- System.out.println("当运行结束的时候执行!");
- sessionFactory.close();
- }
- }));
- }
- public static Session getSession(){
- Session openSession = sessionFactory.openSession();
- return openSession;
- }
- public static Session getCurrentSession(){
- Session openSession = sessionFactory.getCurrentSession();
- return openSession;
- }
- }
10.4、QueryUserDaoImpl
- package com.fhcq.dao;
- import java.util.List;
- import org.apache.commons.lang3.StringUtils;
- import org.hibernate.Criteria;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- import org.hibernate.criterion.Restrictions;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import com.fhcq.bean.User;
- import com.fhcq.utils.HibernateUtils;
- public class UserDaoImpl implements IUserDao{
- @Override
- public List<User> queryUserByCondition(String userName, String gender,
- String ageStart, String ageEnd, String isUpload, String remark) {
- // TODO Auto-generated method stub
- //如果查询页所有条件都没未填选的话,点击查询按钮则查询所有用户
- if(StringUtils.isBlank(userName) && StringUtils.isBlank(gender) &&
- StringUtils.isBlank(ageStart) && StringUtils.isBlank(ageEnd) &&
- StringUtils.isBlank(isUpload) && StringUtils.isBlank(remark)){
- Session session = HibernateUtils.getSession();
- session.beginTransaction();
- //-----------------------------
- Query createQuery = session.createQuery("from User");
- List<User> userlist = createQuery.list();
- //------------------------------
- session.getTransaction().commit();
- session.close();
- return userlist;
- }else{
- Configuration configure = new Configuration().configure();
- SessionFactory sessionFactory = configure.buildSessionFactory();
- Session openSession = sessionFactory.openSession();
- //------------------------------
- Criteria createCriteria = openSession.createCriteria(User.class);
- if(StringUtils.isNotBlank(userName)){
- createCriteria.add(Restrictions.like("userName", userName.replace
- ("", "")));
- }
- if(StringUtils.isNotBlank(gender)){
- createCriteria.add(Restrictions.eq("gender", gender));
- }
- if(StringUtils.isNotBlank(ageStart)){
- Integer ageStart1 =Integer.parseInt(ageStart);
- createCriteria.add(Restrictions.ge("age", ageStart1));
- }
- if(StringUtils.isNotBlank(ageEnd)){
- Integer ageEnd1 =Integer.parseInt(ageEnd);
- createCriteria.add(Restrictions.le("age", ageEnd1));
- }
- if(StringUtils.isNotBlank(isUpload)){
- if("".equals(isUpload)){
- createCriteria.add(Restrictions.isNotNull("fileName"));
- }else{
- createCriteria.add(Restrictions.isNull("fileName"));
- }
- }
- if(StringUtils.isNotBlank(remark)){
- createCriteria.add(Restrictions.like("remark",
- remark.replace("", "")));
- }
- List userlist = createCriteria.list();
- //------------------------------
- openSession.close();
- sessionFactory.close();
- return userlist;
- }
- }
- }
DetachedCriteria 离线实现多条件查询:
10.2、配置 Spring (applicationContext.xml)
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="mysessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <!-- hibernate.cfg.xml 告诉springHibernate的配置文件在哪 -->
- <property name="configLocation" value="classpath:hibernate.cfg.xml">
- </property>
- </bean>
- <bean id="myHibernateTemplate"
- class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory" ref="mysessionFactory"></property>
- </bean>
- <bean id="myuserDaoImpl" class="com.fhcq.dao.UserDaoImpl">
- <property name="hibernateTemplate" ref="myHibernateTemplate"></property>
- </bean>
- <bean id="service" class="com.fhcq.service.UserServiceImpl" >
- <property name="dao" ref="myuserDaoImpl"></property>
- </bean>
- </beans>
10.3、QueryUserDaoImpl
- package com.fhcq.dao;
- import java.util.List;
- import org.apache.commons.lang3.StringUtils;
- import org.hibernate.criterion.DetachedCriteria;
- import org.hibernate.criterion.Restrictions;
- import org.hibernate.criterion.MatchMode;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import com.fhcq.bean.User;
- public class UserDaoImpl extends HibernateDaoSupport implements IUserDao{
- List<User> findByCriteria ;
- @Override
- public List<User> queryUserByCondition(String userName, String gender,
- String ageStart, String ageEnd,String isUpload, String remark) {
- // TODO Auto-generated method stub
- //如果查询页所有条件都没未填选的话,点击查询按钮则查询所有用户
- if(StringUtils.isBlank(userName) && StringUtils.isBlank(gender) &&
- StringUtils.isBlank(ageStart) && StringUtils.isBlank(ageEnd) &&
- StringUtils.isBlank(isUpload) && StringUtils.isBlank(remark)){
- findByCriteria = (List<User>) getHibernateTemplate().findByCriteria
- (DetachedCriteria.forClass(User.class));
- }else{
- DetachedCriteria forClass = DetachedCriteria.forClass(User.class);
- if(StringUtils.isNotBlank(userName)){
- forClass.add(Restrictions.like("userName", userName.replace
- ("", ""), MatchMode.ANYWHERE));
- }
- if(StringUtils.isNotBlank(gender)){
- forClass.add(Restrictions.eq("gender", gender));
- }
- if(StringUtils.isNotBlank(ageStart)){
- Integer ageStart1 =Integer.parseInt(ageStart);
- forClass.add(Restrictions.ge("age", ageStart1));
- }
- if(StringUtils.isNotBlank(ageEnd)){
- Integer ageEnd1 =Integer.parseInt(ageEnd);
- forClass.add(Restrictions.le("age", ageEnd1));
- }
- if(StringUtils.isNotBlank(isUpload)){
- if("".equals(isUpload)){
- forClass.add(Restrictions.isNotNull("fileName"));
- }else{
- forClass.add(Restrictions.isNull("fileName"));
- }
- }
- if(StringUtils.isNotBlank(remark)){
- forClass.add(Restrictions.like("remark",remark.replace
- ("", ""), MatchMode.ANYWHERE));
- }
- findByCriteria = (List<User>) getHibernateTemplate().findByCriteria
- (forClass);
- }
- if(findByCriteria.size()>0){
- return findByCriteria;
- }
- return null;
- }
- }
基于 SSH 框架的 Criteria 和 DetachedCriteria 多条件查询的更多相关文章
- 基于SSH框架的学生公寓管理系统的质量属性
系统名称:学生公寓管理系统 首先介绍一下学生公寓管理系统,在学生公寓管理方面,针对学生有关住宿信息问题进行管理,学生公寓管理系统主要包含了1)学生信息记录:包括学号.姓名.性别.院系.班级:2)住宿信 ...
- 基于ssh框架的在线考试系统开发的质量属性
我做的系统是基于ssh框架的在线考试系统.在线考试系统有以下几点特性:(1)系统响应时间需要非常快,可以迅速的出题,答题.(2)系统的负载量也需要非常大,可以支持多人在线考试(3)还有系统的安全性也需 ...
- 基于SSH框架的考勤管理系统的设计与实现
基于SSH框架的考勤管理系统的设计与实现
- 基于SSH框架的在线考勤系统开发的质量属性
我要开发的是一个基于SSH框架的在线考勤系统. 质量属性是指影响质量的相关因素,下面我将分别从6个系统质量属性(可用性,易用性,可修改性,性能,安全性,可测试性)来分析我的系统,以及如何实现这些质量属 ...
- 基于SSH框架开发的《高校大学生选课系统》的质量属性的实现
基于SSH框架开发的<高校大学生选课系统>的质量属性的实现 对于可用性采取的是错误预防战术,即阻止错误演变为故障:在本系统主要体现在以下两个方面:(1)对于学生登录模块,由于初次登陆,学生 ...
- 如何实现基于ssh框架的投票系统的的质量属性
如何实现基于ssh框架的投票系统的的质量属性: 项目 :网上考试系统 我做的是网上考试系统,因为标准化的考试越来越重要,而通过计算机进行标准化判卷,系统会自动判卷出成绩,组织考试的人不用组织人员打印试 ...
- 基于SSH框架的学生选课质量属性分析
系统:学生选课系统 框架:SSH(Struts2+Spring+Hibernate) 我做的是基于SSH框架的学生选课系统.学生选课系统的特性:①系统响应时间短,能够快速调出课程数据供学生选课提交.② ...
- 基于SSH框架的网上书店系统开发的质量属性
基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...
- 文献综述十八:基于SSH框架的进销存管理系统设计与实现
一.基本信息 标题:基于SSH框架的进销存管理系统设计与实现 时间:2017 出版源:内蒙古科技与经济 文件分类:对框架的研究 二.研究背景 进销存管理系统在各企业中广泛应用,使用SSH框架,很大程度 ...
随机推荐
- MyEclipse和Eclipse中jsp、html格式化自动排版问题
一.myeclipse的漂亮排版设置 步骤: 在左侧快捷 “搜索” 框里面输入 html . 点击选中左侧HTML Source . line - width 是设置当前行里面有多少字符时,就换行.这 ...
- 2015/11/7用Python写游戏,pygame入门(7):碰撞检测
我们已经完成了飞机大战的大部分东西,但是游戏还是没有办法正式开玩,因为子弹并不能打掉飞机.只有完成了这一个工作,游戏才算基本成型. 今天的内容就非常简单了,就是做到这个碰撞检测,以及控制好子弹和飞机的 ...
- An Insight to References in C++
[An Insight to References in C++] 引用的本质是常指针.占用的内存和指针一样. 参考:http://www.codeproject.com/Articles/13363 ...
- AspNetPager控件的最基本用法
AspNetPager控件是一个基于.net的第三方免费开源控件,具有开发高效.使用方便.功能完整等优点.它弥补了GridView内置分页以及PageDatasource类辅助分页的不足,将分页数据逻 ...
- 悲催的IE6 七宗罪大吐槽(带解决方法)第三部分
五:文字溢出bug(注释bug) 1.在以下情况下将会引起文字溢出bug 一个容器包含2两个具有“float”样式的子容器. 第二个容器的宽度大于父容器的宽度,或者父容器宽度减去第二个容器宽度的值小于 ...
- 在windows的IDEA运行Presto
After building Presto for the first time, you can load the project into your IDE and run the server. ...
- nginx配置php时fastcgi_pass参数问题
更多内容推荐微信公众号,欢迎关注: 在配置nginx的时候,fastcgi_pass的配置问题,如下所示: location ~ \.php$ { root /home/wwwroot; fastcg ...
- Django 安装 —Django学习 (一)
Django Django 是一个python 框架, 采用MTV的模式,模型,模板,视图 注意事项 Django 版本和 python 的版本是一一对应的,安装时一定要注意相应的版本信息. 如下图: ...
- 20165230 2017-2018-2 《Java程序设计》第8周学习总结
20165230 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十二章 java多线程机制 一个进程在其执行过程中,可产生多个线程.线程是比进程更小的执行 ...
- Centos7安装 mysql5.6.29 shell脚本
有很多可以借鉴的地方,故转载: 创建脚本mysql.sh,直接运行sh mysql.sh !/bin/bash if [ -d /software ] ;then cd /software else ...