SSH框架整合教程

2023-11-10

工程目录结构如下:

在这里插入图片描述

本工程只介绍SSH整合的基本流程,所以没有写接口

1. 导入jar包

<dependencies>
    <!--hibernate包-->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.10.Final</version>
    </dependency>
    <!-- 添加mysql驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.12</version>
    </dependency>
    <!--日志包-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.1</version>
    </dependency>
    <!--spring相关包-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.11.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.3.11.RELEASE</version>
    </dependency>
    <!--aop-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>4.3.11.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.3.11.RELEASE</version>
    </dependency>
    <!--Servlet相关包-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>
<build>
    <finalName>ssh-test01</finalName>
    <!--要配置这个资源路径,否则xml文件找不到-->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

2. DAO和实体类

dao和实体类是hibernate相关的部分:
实体类Dept

package com.ssh.pojo;
public class Dept {
    private Integer id;
    private String name;
    //getter/setter方法略
}

映射文件Dept.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.ssh.pojo.Dept" table="DEPT">
        <id name="id" type="java.lang.Integer">
            <column name="ID" precision="10" scale="0"/>
            <generator class="identity"/>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="20"/>
        </property>
    </class>
</hibernate-mapping>

实体类Employee

package com.ssh.pojo;

public class Employee {
    private Integer id;
    private String name;
    private Dept dept;
    //getter/setter方法略
}

映射文件:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.ssh.pojo.Employee" table="EMPLOYEE">
        <id name="id" type="java.lang.Integer">
            <column name="ID" precision="10" scale="0"/>
            <generator class="identity"/>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="20"/>
        </property>
        <!--多对一-->
        <many-to-one name="dept" class="com.ssh.pojo.Dept">
            <column name="DEPT_ID"/>
        </many-to-one>
    </class>
</hibernate-mapping>

EmployeeDAO

package com.ssh.dao;

import com.ssh.pojo.Employee;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import java.util.List;

//HibernateDaoSupport是Spring提供的类,对Hibernate的Session进行了封装
public class EmployeeDAO extends HibernateDaoSupport {
    //添加
    public void addEmployee(Employee emp) {
        super.getHibernateTemplate().save(emp);
    }

    //条件查询
    public List<Employee> getEmpByCriteria(DetachedCriteria criteria) {
        return (List<Employee>)super.getHibernateTemplate().findByCriteria(criteria);
    }
}

DeptDAO

package com.ssh.dao;

import com.ssh.pojo.Dept;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import java.util.List;

public class DeptDAO extends HibernateDaoSupport {

    public List<Dept> getDeptList() {
        return (List<Dept>) super.getHibernateTemplate().find("from Dept", null);
    }
}

3. Hibernate和Spring的整合

Hibernate和Spring整合的时候,Spring主要负责管理Hibernate的Session和事务
在spring-config.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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.2.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">

    <!--spring管理数据源-->
    <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- 配置hibernate的SessionFactory -->
    <bean id="sessionFactory"
          class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- hibernate配置信息 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
            </props>
        </property>
        <!--也可以写单独的hibernate配置文件-->
        <!--<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>-->
        <!--扫描映射文件所在的包-->
        <!--<property name="mappingLocations" value="classpath:com/ssh/pojo/*.hbm.xml"/>-->
        <!--可以每个文件单独配置-->
        <property name="mappingResources">
            <list>
                <value>com/ssh/pojo/Employee.hbm.xml</value>
                <value>com/ssh/pojo/Dept.hbm.xml</value>
            </list>
        </property>
    </bean>
    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!--事务增强-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!-- 传播行为,匹配的是方法名 -->
            <tx:method name="add*" rollback-for="Exception"/>
            <tx:method name="delete*" rollback-for="Exception"/>
            <tx:method name="update*" rollback-for="Exception"/>
            <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
            <tx:method name="do*" rollback-for="Exception"/>
        </tx:attributes>
    </tx:advice>
    <!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->
    <aop:config>
        <aop:pointcut id="serviceMethod"
                      expression="execution(* com.ssh.service..*(..))"/>
        <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>
    </aop:config>

    <bean id="employeeDAO" class="com.ssh.dao.EmployeeDAO">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <bean id="deptDAO" class="com.ssh.dao.DeptDAO">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
</beans>

数据库配置文件jdbc.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库?characterEncoding=utf-8
jdbc.username=用户名
jdbc.password=密码
日志文件log4j.properties
log4j.rootLogger=DEBUG, stdout, 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

4. Service

EmployeeService

package com.ssh.service;

import com.ssh.dao.EmployeeDAO;
import com.ssh.pojo.Employee;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class EmployeeService {
    @Autowired
    private EmployeeDAO employeeDAO;

    public void addEmployee(Employee emp) {
        employeeDAO.addEmployee(emp);
    }

    public List<Employee> getEmpByCriteria(DetachedCriteria criteria) {
        return employeeDAO.getEmpByCriteria(criteria);
    }
}

DeptService

package com.ssh.service;

import com.ssh.dao.DeptDAO;
import com.ssh.pojo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DeptService {
    @Autowired
    private DeptDAO deptDAO;

    public List<Dept> getDeptList(){
        return deptDAO.getDeptList();
    }
}

在spring-config.xml中配置对Service的扫描:

<context:component-scan base-package="com.ssh.service">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>

5. Controller

Controller就是SpringMVC的部分了:

package com.ssh.controller;

import com.ssh.pojo.Dept;
import com.ssh.pojo.Employee;
import com.ssh.service.DeptService;
import com.ssh.service.EmployeeService;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("/emp")
public class EmpController {
    @Autowired
    private EmployeeService employeeService;
    @Autowired
    private DeptService deptService;

    @RequestMapping("/list.html")
    public String list(Employee employee, Model model) {
        //封装查询条件
        DetachedCriteria criteria=DetachedCriteria.forClass(Employee.class);
        if(employee.getName()!=null&&employee.getName().trim().length()>0){
            criteria.add(Restrictions.like("name","%"+employee.getName()+"%"));
        }
        model.addAttribute("employeeList", employeeService.getEmpByCriteria(criteria));
        return "/emp_list.jsp";
    }

    //去添加员工的页面
    @RequestMapping("/go_add.html")
    public ModelAndView goAdd() {
        List<Dept> deptList = deptService.getDeptList();
        return new ModelAndView("/emp_add.jsp", "deptList", deptList);
    }

    @RequestMapping("/add.html")
    public String add(Employee employee) {
        employeeService.addEmployee(employee);
        //添加成功后跳转到列表页
        return "redirect:/emp/list.html";
    }

}

SpringMVC-servlet.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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
    <!-- 启动注解,注册服务-->
    <mvc:annotation-driven/>

    <!-- 启动自动扫描 -->
    <context:component-scan base-package="com.ssh.controller">
        <!-- 制定扫包规则 ,只扫描使用@Controller注解的JAVA类 -->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-config.xml</param-value>
    </context-param>
    <!--配置listener,在启动Web容器的时候加载Spring的配置-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<!--处理中文乱码-->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
    <!--处理hibernate懒加载问题-->
    <filter>
        <filter-name>openSessionInView</filter-name>
        <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>openSessionInView</filter-name>
        <url-pattern>*.html</url-pattern>
    </filter-mapping>
    <!--配置DispatcherServlet -->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
</web-app>

6. 页面

emp_add.jsp

<form action="/emp/add.html" method="post">
    员工姓名:<input type="text" name="name"/><br/>
    部门:<select name="dept.id">
    <c:forEach items="${deptList}" var="dept">
        <option value="${dept.id}">${dept.name}</option>
    </c:forEach>
</select><br/>
    <input type="submit" value="提交"/>
</form>

运行结果:

在这里插入图片描述

emp_list.jsp

<form action="/emp/list.html" method="post">
    员工姓名:<input type="text" name="name"/>
    <input type="submit" value="搜索"/>
</form>
<table>
    <tr>
        <td>id</td>
        <td>姓名</td>
        <td>部门</td>
    </tr>
    <c:forEach items="${employeeList}" var="emp">
        <tr>
            <td>${emp.id}</td>
            <td>${emp.name}</td>
            <td>${emp.dept.name}</td>
        </tr>
    </c:forEach>
</table>

运行结果:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH框架整合教程 的相关文章

  • 编译错误:Android Studio

    我正在尝试修改基于 IntelliJ 构建的现有 Android 项目 我已经搜索并尝试了很多东西 但我的错误仍然没有消失 Error 5 1 android apt compiler main D android tinynote app
  • 定制法国号码格式

    我尝试为美国国家 地区使用自定义数字格式 到目前为止效果很好 Not something I want NumberFormat numberFormat0 NumberFormat getNumberInstance Locale US
  • JLabel.setText() 中的换行符

    使用 JLabel setText 时如何插入换行符 我尝试使用 Html 但似乎可以使其适用于 setText 仅适用于 jLabel 的初始声明 最初声明 jlabel 时的方法是 label new JLabel Hello Worl
  • java中如何围绕另一个移动对象旋转一个对象?

    我对 Java 很陌生 想要编写一个简单的太阳系统 其中月球绕地球旋转 地球绕太阳旋转 一切正常 除了月亮不想正确移动 由于地球偏离月球的初始位置 月球的自转半径会根据该距离而增大 同样 当地球接近月球惯性位置时 自转半径会减小 如果初始位
  • 在 Jenkins 内运行构建时,我收到“java/lang/OutOfMemoryError”

    2020 02 25 10 11 24 986 0000 id 79 信息hudson model AsyncPeriodicWork lambda doRun 0 开始maven repo cleanup 2020 02 25 10 11
  • 用户“root”@“localhost”的访问被拒绝

    我正在尝试从数据库中获取记录 但我面临这个访问被拒绝的问题 我尝试了 Stack Overflow 上提到的其他解决方案 例如向用户授予权限 但没有任何效果 访问数据库的代码 public void service HttpServletR
  • HQL 中的日期比较(不带时间戳)

    我必须比较 hibernate hql 查询中的两个日期 我在 java bean 中使用 java util Date 并在 mysql 数据库中使用时间戳作为数据类型 select t from Task t where t modif
  • 如何在 Android 中将 EditText 绘制到画布上?

    我想画画 EditText username new EditText context 到我画布上的特定位置 protected void onDraw Canvas canvas 是否可以在基础上画出x y在我的 Java 文件中协调而不
  • 如何仅在数据库、模式和表尚不存在时自动创建它们

    我想创建一个简单的网络应用程序 允许远程客户端跟踪发布请求中的某些内容 将所有跟踪保存在轻量级数据库中 返回 get 请求的所有跟踪 关于数据库 我想 将其位置放在我的 web 应用程序的属性文件中 并将此位置用于 persistence
  • WSDL 表示中的枚举类型

    WSDL 表示如下
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • 如何在最短的时间内克隆java中的输入流

    有人可以告诉我如何克隆输入流 并花费尽可能少的创建时间吗 我需要多次克隆输入流以使用多种方法来处理 IS 我尝试了三种方法 但由于这样或那样的原因 事情不起作用 方法 1 感谢 stackoverflow 社区 我发现以下链接很有帮助 并将
  • 如何在 Eclipse 中使用 Hibernate Tools 生成 DAO?

    我在用着 Eclipse Java EE IDE Web 开发人员 版本 Indigo 发布 使用 hibernate 工具 我对 Eclipse 中的 hibernate 很陌生 所以我学习如何配置 hibernate 并使用注释生成 P
  • JFreeChart MeterPlot

    我目前正在用java做Agent项目 在某些时候 我需要显示一个仪表 例如 电池电量 我的程序中有 5 个代理 每个代理都会创建自己的带有名称的仪表图 但不知何故他们没有更新数据集 或者他们正在更新数据集 只是它没有显示在仪表图上 任何想法
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • Android:如何以编程方式仅圆化位图的顶角?

    我目前正在使用这段代码 Override public Bitmap transform Bitmap source Bitmap result Bitmap createBitmap source getWidth source getH
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • Spring Data JPA 和 Exists 查询

    我正在使用 Spring Data JPA 使用 Hibernate 作为我的 JPA 提供程序 并想要定义一个exists附加 HQL 查询的方法 public interface MyEntityRepository extends C
  • SAXParseException:找不到元素“定义”的声明

    我对 camunda 和 DMN 完全陌生 我试图在 spring boot 中运行 DMN 示例 链接在这里 https github com camunda camunda bpm examples tree master dmn en
  • Spring JMS开始根据请求监听jms队列

    Spring提供 JMSListener用于监听来自特定队列的消息的注释 还有一个替代方案实施JmsListenerConfigurer http docs spring io spring docs current spring fram

随机推荐

  • 猪齿鱼平台的部署教程

    以下是基于猪齿鱼平台的部署教程 安装 Docker 在猪齿鱼平台中 应用会运行在 Docker 容器中 所以首先需要安装 Docker 可以按照以下步骤在 CentOS 7 系统上安装 Docker 安装依赖 sudo yum instal
  • kong认证插件添加第二认证方式

    在认证插件对象 如ldap auth 的anonymous 字段添加第二认证方式 查看ldap的插件设置 anonymous 为basic auth的plugin的consumer id 在Authorization中设置认证密码 user
  • vulnhub-sick0s1.2简单靶场提权

    以下均在测试环境进行 遵纪守法 靶场下载地址 https download vulnhub com sickos sick0s1 2 zip 下载后直接用vm导入 网卡NAT模式即可 首先进行信息收集 nmap 192 168 111 0
  • 500报错及故障排除

    500 Internal Server Error 每次打开网页时 浏览器都会向托管站点的服务器发送请求 服务器将返回请求的数据和响应代码 HTTP响应状态代码指示请求是否成功 500到599范围内的代码表示服务器错误 该错误不是由浏览器或
  • 论文英文参考文献[10]的时候后面多空格_毕业论文格式问题批量修改

    今天 给大家介绍一下毕业论文中常见的格式错误批量修改方法 问题一 英文摘要部分或参考文献的英文标点符号检查 采用ENDNOTE ZOTERO这类文献管理软件直接导入的 不存在这类问题 主要针对不会使用软件的而手动复制编写的参考文献 主要涉及
  • Mysql视图

    文章目录 1 简介 2 视图的操作语法 3 视图检查选项 4 视图的更新与作用 1 简介 视图 view 是一种虚拟存在的表 视图中的数据并不在数据库中实际存在 行和列数据来自定义视图的查询中使用的表 并且是在使用视图时动态生成的 通俗来讲
  • 缺页中断过程详解

    缺页中断机构 总而言之 对于我们的缺页的访问 会发生一个缺页中断 缺页中断由当前指令发出 所以属于内中断 中断后该程序就阻塞了 然后等待中断程序结束 再执行 中断程序判断 内存中是否有空闲内存块 如果有 就调入该内存块 并且修改页表项 如果
  • 【thinkphp5】使用tp5开发api接口 定义全局异常处理

    1 新建文件夹以及文件 路径 application lib exception ExceptionHandler php 并键入以下代码
  • Eigen库Vector3d定义及赋值学习

    include
  • JVM--基础--20--对象的创建过程

    JVM 基础 20 对象的创建过程 1 对象的创建过程 讨论的对象限于普通Java对象 不包括数组和Class对象等 虚拟机遇到一条new指令时 过程如下 1 1 类加载 当虚拟机遇到一条new指令时 首先去检查这个指令的参数是否能在常量池
  • 封装一个可变参数打印函数

    在开发中 经常会用到打印 而这些打印在程序运行阶段不需要 仅在调试或开启现象的时候需要 我们用printf来打印往往不能对其进行灵活的控制 这个时候 我们就可以自己封装一个与printf功能相同的打印函数 加一些调试开关 就可以 用到的接口
  • 你真的了解background-position

    background属性是CSS中最常见的属性之一 它是一个简写属性 其包含background color background image background repeat background attachment backgrou
  • Verilog中的变量节选(part-select):中括号[]中的加号(+:)和减号(-:)的作用?

    Verilog 1995 允许在节选范围的索引为常数时从一个向量中节选连续的比特 Verilog 2001 2005 提供了两个新的节选运算符来支持固定宽度的变量节选 和 其语法分别为 lt starting bit gt lt width
  • qt学习笔记(八)之深入QSqlQuery

    在上一节中 我们直接调用QSqlQuery exec 对数据库进行增删改查等简单操作 在项目开发中 为了实现系统的低耦合 我们就必须封装出一个数据库功能模块 一 prepare 首先创建一个头文件 attend db h 初始化数据库操作
  • 【ES实战】_forcemerge API 使用说明

    forcemerge API 使用说明 文章目录 forcemerge API 使用说明 强制合并segment文件 API 语法 可选参数 多索引操作 使用案例 查找存在删除文档的索引 查看线程池情况 查看segment情况 查看任务 1
  • HBase集群升级, 通过HBase rpm 或 tar包形式(以HDP 为例,包含 升级及HBCK2 介绍和使用)

    目录 1 前言 2 编译 HBase 报错处理 Caused by java lang AbstractMethodError org apache hadoop hbase ipc RpcScheduler getMetaPriority
  • 小程序中安装@vant依赖

    大家好 我是雄雄 今天给大家分享一篇 关于小程序中如何安装 vant依赖 小程序中安装 vant依赖 cd miniprogram npm i vant weapp S production 将node modules文件夹下面的 vant
  • 用GPT-4 写2022年天津高考作文能得多少分?

    正文共 792 字 阅读大约需要 3 分钟 学生必备技巧 您将在3分钟后获得以下超能力 积累作文素材 Beezy评级 B级 经过简单的寻找 大部分人能立刻掌握 主要节省时间 推荐人 Kim 编辑者 Linda 图片由Lexica 生成 输入
  • 一步一步学Qt(Qt Quick)/qml 开发第五篇(第一个可视的应用)

    现在我们开始仿照官网的demo做一个小东西 开始之前先看效果图 android如下 下面开始正文 因为在开始搞这个demo的时候 我遇到一个问题 所以为了避免这个 我将从创建项目开始 OK 废话不多说 第一步 打开你的QtCreator 选
  • SSH框架整合教程

    工程目录结构如下 本工程只介绍SSH整合的基本流程 所以没有写接口 1 导入jar包