S2SH框架整合开发版(十一)中

简介: S2SH框架整合开发版(十一)

五. 分页Bean PageBean


package com.yjl.util;
import java.util.List;
/**
 * 关于分页的类
 *author 作者 yjl
*/
public class PageBean<T> {
  /**
   * @param currentPage 当前页
   * @param pageSize 每页显示多少条
   * @param recordCount 总记录数
   * @param recordList 本页的数据列表
   * @param pageCount 总页数
   * @param beginPageIndex 页码列表的开始索引(包含)
   * @param endPageIndex 页码列表的结束索引(包含)
   * @param isStart 是否是开始页
   * @param isEnd 是否是结束页
   */
  // 指定的或是页面参数
  private int currentPage;
  private int pageSize;
  // 查询数据库
  private long recordCount; 
  private List<T>recordList;
  // 计算
  private int pageCount;
  private int beginPageIndex;
  private int endPageIndex;
  private boolean start;
  private boolean end;
  //设置默认显示的页数,默认显示10页。
  public static final int DEFAULT_SHOW_PAGE=10;
  public static final int DEFAULT_CURRENT_PAGE=1;
  public static final int DEFAULT_PAGE_SIZE=10;
  /**
   * 只接受前4个必要的属性,会自动的计算出其他3个属生的值
   * 
   * @param currentPage
   * @param pageSize
   * @param recordCount
   * @param recordList
   */
  public PageBean(int currentPage, int pageSize, long recordCount, List<T>recordList) {
    if(currentPage<1){ //默认当前页为1
      currentPage=DEFAULT_CURRENT_PAGE;
    }
    if(pageSize<1){ //默认显示页数目为10
      pageSize=DEFAULT_PAGE_SIZE;
    }
    this.currentPage = currentPage;
    this.pageSize = pageSize;
    this.recordCount = recordCount;
    this.recordList = recordList;
    // 计算总页码
    pageCount = ((int)recordCount + pageSize - 1) / pageSize;
    // 计算 beginPageIndex 和 endPageIndex
    // >> 总页数不多于 SHOW_PAGE 页,则全部显示
    if (pageCount <=DEFAULT_SHOW_PAGE) {
      beginPageIndex = 1;
      endPageIndex = pageCount;
    }
    // >> 总页数多于 SHOW_PAGE 页,则显示当前页附近的共 SHOW_PAGE 个页码
    else {
      // 当前页附近的共 SHOW_PAGE 个页码(前SHOW_PAGE/2个 + 当前页 + 后SHOW_PAGE-1-前个)
      beginPageIndex = currentPage -(int)Math.ceil(((double)DEFAULT_SHOW_PAGE/2)-1);
      endPageIndex =beginPageIndex+DEFAULT_SHOW_PAGE-1;
      // 当前面的页码不足个时,则显示前SHOW_PAGE个页码
      if (beginPageIndex < 1) {
        beginPageIndex = 1;
        endPageIndex = DEFAULT_SHOW_PAGE;
      }
      // 当后面的页码不足5个时,则显示后SHOW_PAGE个页码
      if (endPageIndex > pageCount) {
        endPageIndex = pageCount;
        beginPageIndex = pageCount -DEFAULT_SHOW_PAGE + 1;
      }
    }
    //如何判断是否是开始页呢?
    start=(currentPage==1?true:false);
    end=(currentPage==pageCount?true:false);
  }
  public List<T> getRecordList() {
    return recordList;
  }
  public void setRecordList(List<T> recordList) {
    this.recordList = recordList;
  }
  public int getCurrentPage() {
    return currentPage;
  }
  public void setCurrentPage(int currentPage) {
    this.currentPage = currentPage;
  }
  public int getPageCount() {
    return pageCount;
  }
  public void setPageCount(int pageCount) {
    this.pageCount = pageCount;
  }
  public int getPageSize() {
    return pageSize;
  }
  public void setPageSize(int pageSize) {
    this.pageSize = pageSize;
  }
  public long getRecordCount() {
    return recordCount;
  }
  public void setRecordCount(long recordCount) {
    this.recordCount = recordCount;
  }
  public int getBeginPageIndex() {
    return beginPageIndex;
  }
  public void setBeginPageIndex(int beginPageIndex) {
    this.beginPageIndex = beginPageIndex;
  }
  public int getEndPageIndex() {
    return endPageIndex;
  }
  public void setEndPageIndex(int endPageIndex) {
    this.endPageIndex = endPageIndex;
  }
  public boolean isStart() {
    return start;
  }
  public void setStart(boolean start) {
    this.start = start;
  }
  public boolean isEnd() {
    return end;
  }
  public void setEnd(boolean end) {
    this.end = end;
  }
  @Override
  public String toString() {
    return "PageBean [currentPage=" + currentPage + ", pageSize=" + pageSize + ", recordCount=" + recordCount
        + ", recordList=" + recordList + ", pageCount=" + pageCount + ", beginPageIndex=" + beginPageIndex
        + ", endPageIndex=" + endPageIndex + ", isStart=" + start + ", isEnd=" + end + "]";
  }
}


六. 查询帮助 QueryHelper类


package com.yjl.util;
import java.util.ArrayList;
import java.util.List;
/**
 * 这是辅助拼接HQL的语句,用于查询
 *author 作者 yuejl
 *version 创建时间 2018年3月28日下午11:04:37 
*/
@SuppressWarnings("rawtypes")
public class QueryHelper {
  private String fromClause; // FROM子句
  private StringBuffer whereClause =new StringBuffer(""); // Where子句
  private StringBuffer orderByClause =new StringBuffer(""); // OrderBy子句
  private List<Object> parameters = new ArrayList<Object>(); // 参数列表
  //定义要分组的那一个字段
  private String groupByCon;
  //记录要分组的那个字段写成的语句.
  private String groupCase=null;
  //定义聚交函数
  private String prefix="";
  /**
   * 生成From子句
   * @param clazz 类.class 如User.class
   * @param alias 别名 如u
   *            
   */
  public QueryHelper(Class clazz) {
    String tableName=clazz.getSimpleName();
    fromClause="FROM " +tableName+ " " + firstLower(tableName);
  }
  /**
   * 生成From子句
   * @param clazz 类.class 如User.class
   * @param alias 别名 如u
   *            
   */
  public QueryHelper(Class clazz, String alias) {
    fromClause="FROM " + clazz.getSimpleName() + " " + alias;
  }
  //继续添加From的表
  public QueryHelper addFrom(Class clazz){
    // FROM user u ,A a// where 
    String tableName=clazz.getSimpleName();
    fromClause+=" "+clazz.getSimpleName()+" "+firstLower(tableName);
    return this;
  }
  public QueryHelper addFrom(Class clazz,String alias){
    // FROM user u ,A a// where 
    fromClause+=" "+clazz.getSimpleName()+" "+alias;
    return this;
  }
  /**
   * 拼接Where子句
   * @param condition 判断的条件
   * @param params 条件为true是的参数,只添加参数
   */
  public QueryHelper addCondition(String condition, Object... params) {
    // 拼接
    if (whereClause.length() == 0) {
      whereClause.append(" WHERE " + condition);
    } else {
      whereClause.append(" AND " + condition);
    }
    // 参数
    if (params != null) {
      for (Object p : params) {
        parameters.add(p);
      }
    }
    return this;
  }
  /**
   * 如果第一个参数为true,则拼接Where子句
   * @param append 判断条件是否为true
   * @param condition 语句
   * @param params 参数
   */
  public QueryHelper addCondition(boolean append, String condition, Object... params) {
    if (append) {
      addCondition(condition, params);
    }
    return this;
  }
  public QueryHelper addGroup(boolean append,String condition){
    if(append){
      groupCase=" GROUP BY "+condition;
      this.groupByCon=condition;
    }else{
    }
    return this;
  }
  /**
   * 拼接OrderBy子句
   * 
   * @param propertyName 参与排序的属性名
   * @param asc true表示升序,false表示降序
   */
  public QueryHelper addOrderProperty(String propertyName, boolean asc) {
    if (orderByClause.length() == 0) {
      orderByClause.append(" ORDER BY " + propertyName + (asc ? " ASC" : " DESC"));
    } else {
      orderByClause.append(", " + propertyName + (asc ? " ASC" : " DESC"));
    }
    return this;
  }
  /**
   * 如果第一个参数为true,则拼接OrderBy子句
   * @param append 是否排序的条件
   * @param propertyName 按照什么排序
   * @param asc true表示升序,false表示降序
   */
  public QueryHelper addOrderProperty(boolean append, String propertyName, boolean asc) {
    if (append) {
      addOrderProperty(propertyName, asc);
    }
    return this;
  }
  public void setCount(){
    prefix="select count(*) ";
  }
  /**
   * 获取生成的用于查询数据列表的HQL语句
   * 
   * @return
   */
  public String getListQueryHql() {
    if(groupCase==null){
      return prefix+fromClause+whereClause.toString()+orderByClause.toString();
    }else{
      return prefix+fromClause+whereClause.toString()+groupCase+orderByClause.toString();
    }
  }
  /**
   * 获取生成的用于查询总记录数的HQL语句
   * 
   * @return
   */
  public String getCountQueryHql() {
    //return "SELECT COUNT(*) " +getListQueryHql();
    if(getListQueryHql().indexOf("GROUP BY")!=-1){
      return "SELECT COUNT( DISTINCT "+groupByCon+") " +fromClause+whereClause.toString()+orderByClause.toString();
    }else{
      return "SELECT COUNT(*) " +getListQueryHql();
    }
  }
  /**
   * 获取HQL中的参数值列表
   * 
   * @return
   */
  public List<Object> getParameters() {
    return parameters;
  }
  public Object[] getParams(){
    return (Object[])parameters.toArray();
  }
  public String firstLower(String str){
    return str.substring(0,1).toLowerCase()+str.substring(1);
  }
  public String firstUpper(String str){
    return str.substring(0,1).toUpperCase()+str.substring(1);
  }
}


七. dao层 (可以省略,但最好不省略)


七.一 UserDao


package com.yjl.dao;
import com.yjl.pojo.User;
import com.yjl.util.BaseDao;
/**
 @author:yuejl
 @date: 2019年5月22日 下午8:04:06
 @Description 类的相关描述
*/
public interface UserDao extends BaseDao<User> {
}


七.二 UserDaoImpl


package com.yjl.dao.impl;
import org.springframework.stereotype.Repository;
import com.yjl.dao.UserDao;
import com.yjl.pojo.User;
import com.yjl.util.BaseDaoImpl;
/**
 @author:yuejl
 @date: 2019年5月22日 下午8:04:43
 @Description 类的相关描述
*/
@Repository("userDao")
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {
}


如果继续写部门的话,就是:


public interface DeptDao extends BaseDao<Dept> {
}


@Repository("deptDao")
public class DeptDaoImpl extends BaseDaoImpl<Dept> implements DeptDao {
}


八. service 层


八.一 UserService 接口。 (需要用什么方法,就写相对应的方法,不需要写完。 为了测试,写完了。)


package com.yjl.service;
import java.io.Serializable;
import java.util.List;
import com.yjl.pojo.User;
import com.yjl.util.PageBean;
import com.yjl.util.QueryHelper;
/**
 @author:yuejl
 @date: 2019年5月22日 下午8:04:57
 @Description 类的相关描述
*/
public interface UserService{
  /**
   * @param t pojo插入对象
   * @return 添加对象
   */
  void addEntity(User t);
  /**
   * 
   * @param id 主键编号
   * @return 根据id编号删除当前对象
   */
  void deleteEntity(Serializable id);
  /**
   * @param t pojo更新对象
   * @return  更新对象
   */
  void updateEntity(User t);
  /**
   * @param t 保存或者是更新的对象
   * @return 保存或者是更新,如果没有该对象,就保存,如果有,就更新。
   */
  void saveOrUpdateEntity(User t);
  /**
   * @param id 主键编号
   * @return 根据id编号查询当前对象,是唯一值.
   */
  User getEntityById(Serializable id);
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @return 返回唯一确定的结果,得到的是唯一值。
   */
  User getEntity(String hql,Object []params);
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @return 返回唯一确定的结果,得到的是唯一值。
   */
  User getEntity(String hql,List<Object> params);
  /**
   * @param ids 主键编号集合,in 的形式
   * @return 根据id编号集合,查询所有的对象集合信息。
   */
  List<User> findEntitysByIds(Serializable []ids);
  /**
   * @return 查询所有的对象信息
   */
  List<User> findAllEntitys();
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @return 返回所有的结果,得到全部的记录。
   */
  List<User> findEntitysByHql(String hql,Object []params);
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @return 返回所有的结果,得到全部的记录。
   */
  List<User> findEntitysByHql(String hql,List<Object> params);
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @param currentPage 当前页
   * @param pageSize 每页的数目
   * @return 返回分页的结果,得到全部的记录
   */
  List<User> findEntitysByHql(String hql, Object[] params,
      int currentPage, int pageSize);
  /**
   * 
   * @param hql hql查询语句,用? 进行占位.
   * @param params 参数
   * @param currentPage 当前页
   * @param pageSize 每页的数目
   * @return 返回分页的结果,得到全部的记录
   */
  List<User> findEntitysByHql(String hql, List<Object> params,
      int currentPage, int pageSize);
  /**
   * 
   * @param currentPage 当前页
   * @param pageSize 每页的数目
   * @param ph 分页查询帮助类
   * @return 返回分页查询的结果
   */
  PageBean<User> page(int currentPage,int pageSize,QueryHelper ph);
  /**
   * @return 返回全部结果的数目
   */
  Long count();
  /**
   *
   * @param hql hql语句
   * @return 返回数目
   */
  Long count(String hql);
  /**
   * 
   * @param hql hql语句
   * @param params 参数
   * @return 返回数目
   */
  Long count(String hql,Object []params);
  /**
   * 
   * @param hql hql语句
   * @param params 参数
   * @return 返回数目
   */
  Long count(String hql,List <Object> params);
  List<User> findEntitysByHql(QueryHelper qh);
  Long count(QueryHelper qh);
  Object queryUnique(String hql,Object[] params);
}


八.二 UserServiceImpl 实现类


package com.yjl.service.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yjl.dao.UserDao;
import com.yjl.pojo.User;
import com.yjl.service.UserService;
import com.yjl.util.PageBean;
import com.yjl.util.QueryHelper;
/**
 @author:yuejl
 @date: 2019年5月22日 下午8:05:15
 @Description 类的相关描述
*/
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
  @Resource
  private UserDao userDao;
  @Override
  public void addEntity(User t) {
    userDao.addEntity(t);
  }
  @Override
  public void deleteEntity(Serializable id) {
    userDao.deleteEntity(id);
  }
  @Override
  public void updateEntity(User t) {
    userDao.updateEntity(t);
  }
  @Override
  public void saveOrUpdateEntity(User t) {
    userDao.saveOrUpdateEntity(t);
  }
  @Override
  public User getEntityById(Serializable id) {
    return userDao.getEntityById(id);
  }
  @Override
  public User getEntity(String hql, Object[] params) {
    return userDao.getEntity(hql, params);
  }
  @Override
  public User getEntity(String hql, List<Object> params) {
    return userDao.getEntity(hql, params);
  }
  @Override
  public List<User> findEntitysByIds(Serializable[] ids) {
    return userDao.findEntitysByIds(ids);
  }
  @Override
  public List<User> findAllEntitys() {
    return userDao.findAllEntitys();
  }
  @Override
  public List<User> findEntitysByHql(String hql, Object[] params) {
    return userDao.findEntitysByHql(hql, params);
  }
  @Override
  public List<User> findEntitysByHql(String hql, List<Object> params) {
    return userDao.findEntitysByHql(hql, params);
  }
  @Override
  public List<User> findEntitysByHql(String hql, Object[] params, int currentPage, int pageSize) {
    return userDao.findEntitysByHql(hql, params,currentPage,pageSize);
  }
  @Override
  public List<User> findEntitysByHql(String hql, List<Object> params, int currentPage, int pageSize) {
    return userDao.findEntitysByHql(hql, params,currentPage,pageSize);
  }
  @Override
  public PageBean<User> page(int currentPage, int pageSize, QueryHelper qh) {
    return userDao.page(currentPage, pageSize, qh);
  }
  @Override
  public Long count() {
    return userDao.count();
  }
  @Override
  public Long count(String hql) {
    return userDao.count(hql);
  }
  @Override
  public Long count(String hql, Object[] params) {
    return userDao.count(hql,params);
  }
  @Override
  public Long count(String hql, List<Object> params) {
    return userDao.count(hql,params);
  }
  @Override
  public List<User> findEntitysByHql(QueryHelper qh) {
    return userDao.findEntitysByHql(qh);
  }
  @Override
  public Long count(QueryHelper qh) {
    return userDao.count(qh);
  }
  @Override
  public Object queryUnique(String hql, Object [] params) {
    return userDao.queryUnique(hql,params);
  }
}


八.二 UserServiceImpl 实现类


package com.yjl.service.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yjl.dao.UserDao;
import com.yjl.pojo.User;
import com.yjl.service.UserService;
import com.yjl.util.PageBean;
import com.yjl.util.QueryHelper;
/**
 @author:yuejl
 @date: 2019年5月22日 下午8:05:15
 @Description 类的相关描述
*/
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
  @Resource
  private UserDao userDao;
  @Override
  public void addEntity(User t) {
    userDao.addEntity(t);
  }
  @Override
  public void deleteEntity(Serializable id) {
    userDao.deleteEntity(id);
  }
  @Override
  public void updateEntity(User t) {
    userDao.updateEntity(t);
  }
  @Override
  public void saveOrUpdateEntity(User t) {
    userDao.saveOrUpdateEntity(t);
  }
  @Override
  public User getEntityById(Serializable id) {
    return userDao.getEntityById(id);
  }
  @Override
  public User getEntity(String hql, Object[] params) {
    return userDao.getEntity(hql, params);
  }
  @Override
  public User getEntity(String hql, List<Object> params) {
    return userDao.getEntity(hql, params);
  }
  @Override
  public List<User> findEntitysByIds(Serializable[] ids) {
    return userDao.findEntitysByIds(ids);
  }
  @Override
  public List<User> findAllEntitys() {
    return userDao.findAllEntitys();
  }
  @Override
  public List<User> findEntitysByHql(String hql, Object[] params) {
    return userDao.findEntitysByHql(hql, params);
  }
  @Override
  public List<User> findEntitysByHql(String hql, List<Object> params) {
    return userDao.findEntitysByHql(hql, params);
  }
  @Override
  public List<User> findEntitysByHql(String hql, Object[] params, int currentPage, int pageSize) {
    return userDao.findEntitysByHql(hql, params,currentPage,pageSize);
  }
  @Override
  public List<User> findEntitysByHql(String hql, List<Object> params, int currentPage, int pageSize) {
    return userDao.findEntitysByHql(hql, params,currentPage,pageSize);
  }
  @Override
  public PageBean<User> page(int currentPage, int pageSize, QueryHelper qh) {
    return userDao.page(currentPage, pageSize, qh);
  }
  @Override
  public Long count() {
    return userDao.count();
  }
  @Override
  public Long count(String hql) {
    return userDao.count(hql);
  }
  @Override
  public Long count(String hql, Object[] params) {
    return userDao.count(hql,params);
  }
  @Override
  public Long count(String hql, List<Object> params) {
    return userDao.count(hql,params);
  }
  @Override
  public List<User> findEntitysByHql(QueryHelper qh) {
    return userDao.findEntitysByHql(qh);
  }
  @Override
  public Long count(QueryHelper qh) {
    return userDao.count(qh);
  }
  @Override
  public Object queryUnique(String hql, Object [] params) {
    return userDao.queryUnique(hql,params);
  }
}


九. User 实现类及其映射配置文件


九.一 User.java


package com.yjl.pojo;
/**
 @author:yuejl
 @date: 2019年4月20日 上午10:06:22
 @Description 类的相关描述
*/
public class User {
  /**
   * @param id 主键编号
   * @param name 姓名
   * @param sex 性别
   * @param age 年龄
   */
  private Integer id;
  private String name;
  private String sex;
  private Integer age;
  public User() {
    super();
  }
  public User(Integer id, String name, String sex, Integer age) {
    super();
    this.id = id;
    this.name = name;
    this.sex = sex;
    this.age = age;
  }
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age+"]";
  }
}


package com.yjl.pojo;
/**
 @author:yuejl
 @date: 2019年4月20日 上午10:06:22
 @Description 类的相关描述
*/
public class User {
  /**
   * @param id 主键编号
   * @param name 姓名
   * @param sex 性别
   * @param age 年龄
   */
  private Integer id;
  private String name;
  private String sex;
  private Integer age;
  public User() {
    super();
  }
  public User(Integer id, String name, String sex, Integer age) {
    super();
    this.id = id;
    this.name = name;
    this.sex = sex;
    this.age = age;
  }
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age+"]";
  }
}


九.二 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.yjl.pojo">
  <!-- 具体的实体类 -->
  <class name="User" table="user">
    <!-- 主键 -->
    <id name="id" column="id">
                    <generator class="native"></generator>
                </id>
    <!-- 其余属性 -->
    <property name="name"></property>
    <property name="sex" ></property>
    <property name="age"></property>
  </class>
</hibernate-mapping>



相关文章
|
5月前
|
Java Shell 分布式数据库
Pinpoint【部署 01】JDK\HBase\Pinpoint Collector+Web 最新版 2.3.3 安装配置运行验证及脚本文件分享(避坑指南捷径指北)20230228
Pinpoint【部署 01】JDK\HBase\Pinpoint Collector+Web 最新版 2.3.3 安装配置运行验证及脚本文件分享(避坑指南捷径指北)20230228
82 0
|
8月前
|
存储 Java 关系型数据库
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)上
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)
|
8月前
|
Java 数据库 数据安全/隐私保护
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)下
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)
|
XML 自然语言处理 Java
【Java框架型项目从入门到装逼】第三节 - 如何用Tomcat发布web项目?
【Java框架型项目从入门到装逼】第三节 - 如何用Tomcat发布web项目?
实战:第二十六章:Idea启动项目报错解决方案
实战:第二十六章:Idea启动项目报错解决方案
187 0
|
存储 移动开发 小程序
uniapp环境搭建以及基础配置详解
安装编辑器 HbuilderX(HbuilderX 是通用的前端开发工具,但为 uni-app 做了特别强化)。 下载 APP 开发板,可开箱即用。 安装微信开发者工具。
689 0
uniapp环境搭建以及基础配置详解
|
安全 Java 关系型数据库
Mall电商实战项目全面升级!支持最新版SpringBoot,干掉循环依赖
技术栈升级 mall项目采用现阶主流技术实现,这些主流技术基本都升级了目前最新稳定版,具体升级内容大家可以参考下表。 技术版本说明
|
XML JSON Java
第二篇:SpringBoot入门案例(IDEA联网版本)
第二篇:SpringBoot入门案例(IDEA联网版本)
223 0
第二篇:SpringBoot入门案例(IDEA联网版本)
|
JavaScript Dubbo Java
我们公司使用了 6 年的Spring Boot 项目部署方案!打包 + Shell 脚本部署详解
我们公司使用了 6 年的Spring Boot 项目部署方案!打包 + Shell 脚本部署详解
我们公司使用了 6 年的Spring Boot 项目部署方案!打包 + Shell 脚本部署详解
|
jenkins 持续交付 数据安全/隐私保护
Jenkins2.249-自定义插件安装(十一)
自定义安装Jenkins2.249 由于之前一直使用的Jenkins2.176版本在做sonarqube集成的时候总是有问题,因此直接使用最新版本的2.249来集成
260 0
Jenkins2.249-自定义插件安装(十一)