Struts2+Spring3+Mybatis3开发环境搭建

2023-11-03

本文主要介绍Struts2+Spring3+Mybatis3开发环境搭建

Struts和Spring不过多介绍。
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
环境:
Struts-2.3.14
Spring-3.2.1
MyBatis-3.2.2
在apache-tomcat-7.0.39下测试通过
 
Project目录结构
lib文件夹下的依赖包:
 
入口web.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  5.     id="WebApp_ID" version="3.0">  
  6.     <display-name>test_ssm</display-name>  
  7.     <welcome-file-list>  
  8.         <welcome-file>index.jsp</welcome-file>  
  9.     </welcome-file-list>  
  10.   
  11.     <!-- 配置spring资源 -->  
  12.     <context-param>  
  13.         <param-name>contextConfigLocation</param-name>  
  14.         <param-value>classpath:config/applicationContext-*.xml</param-value>  
  15.     </context-param>  
  16.   
  17.     <!-- 配置spring -->  
  18.     <listener>  
  19.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  20.     </listener>  
  21.   
  22.     <!-- 配置Struts2 -->  
  23.     <filter>  
  24.         <filter-name>struts2</filter-name>  
  25.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  26.         <init-param>  
  27.             <param-name>config</param-name>  
  28.             <param-value>struts-default.xml,struts-plugin.xml,/config/struts.xml</param-value>  
  29.         </init-param>  
  30.     </filter>  
  31.   
  32.     <filter-mapping>  
  33.         <filter-name>struts2</filter-name>  
  34.         <url-pattern>/*</url-pattern>  
  35.     </filter-mapping>  
  36.   
  37. </web-app>  

Spring配置文件
applicationContext-common.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
  4.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
  6.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
  7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd  
  8.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">  
  9.   
  10.     <!-- 启用spring注解支持 -->  
  11.     <context:annotation-config />  
  12.   
  13.     <!-- 配置DataSource数据源 -->  
  14.     <bean id="dataSource"  
  15.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  16.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  17.         <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />  
  18.         <property name="username" value="root" />  
  19.         <property name="password" value="123456" />  
  20.     </bean>  
  21.   
  22.     <!--创建sqlSessionFactory -->  
  23.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  24.         <property name="configLocation" value="classpath:config/mabatis-config.xml" />  
  25.         <property name="dataSource" ref="dataSource" />     
  26.         <property name="mapperLocations" value="classpath:com/jialin/mapper/**/*.xml" />    
  27.           
  28.     </bean>  
  29.   
  30. <!-- 配置事务管理器,注意这里的dataSource和SqlSessionFactoryBean的dataSource要一致,不然事务就没有作用了 -->  
  31.  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  32.     <property name="dataSource" ref="dataSource" />  
  33. </bean>   
  34.    
  35. <!-- 配置事务的传播特性 -->  
  36.  <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">  
  37.     <property name="transactionManager" ref="transactionManager" />  
  38.     <property name="transactionAttributes">  
  39.         <props>  
  40.             <prop key="add*">PROPAGATION_REQUIRED</prop>  
  41.             <prop key="edit*">PROPAGATION_REQUIRED</prop>  
  42.             <prop key="remove*">PROPAGATION_REQUIRED</prop>  
  43.             <prop key="insert*">PROPAGATION_REQUIRED</prop>  
  44.             <prop key="update*">PROPAGATION_REQUIRED</prop>  
  45.             <prop key="del*">PROPAGATION_REQUIRED</prop>  
  46.             <prop key="*">readOnly</prop>  
  47.         </props>  
  48.     </property>  
  49. </bean>   
  50.   
  51. </beans>  

applicationContext-beans.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
  4.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
  6.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
  7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd  
  8.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">  
  9.   
  10.      
  11.     <bean id="userInfoDao"  class="org.mybatis.spring.mapper.MapperFactoryBean"  
  12.         scope="prototype">  
  13.         <property name="mapperInterface" value="com.jialin.dao.UserInfoDao" />  
  14.         <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
  15.     </bean>  
  16.   
  17.     <bean id="userInfoService" class="com.jialin.service.UserInfoService"  
  18.         scope="prototype">  
  19.         <property name="userInfoDao" ref="userInfoDao" />  
  20.     </bean>  
  21.   
  22.     <!-- 为IRegisterService接口配置事务拦截器,baseTransactionProxy是事务拦截器,在Controller中获取这个对象 -->  
  23.     <bean id="IUserInfoService" parent="baseTransactionProxy">  
  24.         <!-- 实现类 -->  
  25.         <property name="target" ref="userInfoService" />  
  26.     </bean>  
  27.   
  28.     <bean id="userManageAction" class="com.jialin.action.UserManageAction"  
  29.         scope="prototype">  
  30.         <property name="userInfoService" ref="IUserInfoService" />  
  31.     </bean>  
  32.   
  33. </beans>  

Struts配置文件
struts.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5.   
  6. <struts>  
  7.       
  8.     <!-- 将Action的创建交给spring来管理 -->    
  9.     <constant name="struts.objectFactory" value="spring" />    
  10.       
  11.     <!-- 更改struts2请求Action的后缀名,默认为action。若想去掉后缀,设为","即可 -->  
  12.     <constant name="struts.action.extension" value=","></constant>  
  13.   
  14.     <package name="abstract_struts" abstract="true" extends="struts-default"  
  15.         namespace="/">  
  16.         <!-- 公共东西可以放到这个抽象包下 -->    
  17.     </package>  
  18.       
  19.     <!-- 包含的配置文件 -->  
  20.     <include file="/config/struts-user.xml"></include>  
  21. </struts>  

struts-user.xml
 
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5.   
  6. <struts>  
  7.      
  8.     <package name="MyActions" extends="struts-default">       
  9.         <action name="*_*" class="userManageAction" method="{1}">  
  10.             <result name="success" type="redirect">/{2}.jsp</result>  
  11.         </action>  
  12.     </package>  
  13.   
  14. </struts>  

Mybatis配置文件
mabatis-config.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  3. <configuration>  
  4.   
  5.       <typeAliases>    
  6.             <typeAlias alias="userinfo" type="com.jialin.entity.UserInfo"/>    
  7.       </typeAliases>    
  8.         
  9.       <!-- 因为已经在applicationContext-common中指定了映射文件的位置,这里就省略了 -->  
  10.       <!-- <mappers>    
  11.             <mapper resource="com/jialin/dao/registerMapper.xml"/>    
  12.       </mappers>   -->  
  13.   
  14. </configuration>  

UserManageAction.java
[java]  view plain copy print ?
  1. package com.jialin.action;  
  2.   
  3. import com.jialin.entity.UserInfo;  
  4. import com.jialin.service.IUserInfoService;  
  5.   
  6. public class UserManageAction {  
  7.   
  8.     private IUserInfoService userInfoService;  
  9.   
  10.     public IUserInfoService getUserInfoService() {  
  11.         return userInfoService;  
  12.     }  
  13.   
  14.     public void setUserInfoService(IUserInfoService userInfoService) {  
  15.         this.userInfoService = userInfoService;  
  16.     }  
  17.   
  18.     private UserInfo userInfo;  
  19.   
  20.     public UserInfo getUserInfo() {  
  21.         return userInfo;  
  22.     }  
  23.   
  24.     public void setUserInfo(UserInfo userInfo) {  
  25.         this.userInfo = userInfo;  
  26.     }  
  27.   
  28.       
  29.    
  30.     public String insertUser() {  
  31.   
  32.         userInfoService.insertUser(userInfo);  
  33.         return "success";  
  34.     }  
  35.   
  36.     public String editUser() {  
  37.   
  38.         userInfoService.edit(userInfo);  
  39.         return "success";  
  40.     }  
  41.   
  42.     public String removeUser() {  
  43.   
  44.         userInfoService.remove(userInfo);  
  45.         return "success";  
  46.     }  
  47.   
  48.     public String getUserById() {  
  49.         userInfoService.get(userInfo);  
  50.         return "success";  
  51.     }  
  52.   
  53.     public String getListByName() {  
  54.   
  55.         userInfoService.getList(userInfo);  
  56.   
  57.         return "success";  
  58.     }  
  59.   
  60.     public String getAllUser() {  
  61.         userInfoService.getAllUser();  
  62.         return "success";  
  63.     }  
  64.   
  65. }  
  66. <span style="font-family:微软雅黑;BACKGROUND-COLOR: #ffffff"></span>  
 
IUserInfoService.java
[java]  view plain copy print ?
  1. package com.jialin.service;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.jialin.entity.UserInfo;  
  6.   
  7. public interface IUserInfoService {  
  8.     public void insertUser(UserInfo user);  
  9.   
  10.     public void edit(UserInfo user);  
  11.   
  12.     public void remove(UserInfo user);  
  13.   
  14.     public UserInfo get(UserInfo user);  
  15.   
  16.     public List getList(UserInfo user);  
  17.       
  18.     public List getAllUser();  
  19. }  

UserInfoService.java
[java]  view plain copy print ?
  1. package com.jialin.service;  
  2.   
  3. import java.util.List;  
  4.   
  5. import java.util.Iterator;  
  6.   
  7. import com.jialin.dao.UserInfoDao;  
  8. import com.jialin.entity.UserInfo;  
  9.   
  10. public class UserInfoService implements IUserInfoService {  
  11.       
  12.     private UserInfoDao userInfoDao;  
  13.       
  14.   
  15.     public UserInfoDao getUserInfoDao() {  
  16.         return userInfoDao;  
  17.     }  
  18.   
  19.     public void setUserInfoDao(UserInfoDao userInfoDao) {  
  20.         this.userInfoDao = userInfoDao;  
  21.     }  
  22.   
  23.     @Override  
  24.     public void insertUser(UserInfo user)  
  25.     {  
  26.         userInfoDao.insertUser(user);  
  27.     }  
  28.   
  29.     @Override  
  30.     public void edit(UserInfo user) {  
  31.         userInfoDao.edit(user);  
  32.           
  33.     }  
  34.   
  35.     @Override  
  36.     public void remove(UserInfo user) {  
  37.         userInfoDao.remove(user);  
  38.           
  39.     }  
  40.   
  41.     @Override  
  42.     public UserInfo get(UserInfo user) {  
  43.         UserInfo user1=userInfoDao.get(user);  
  44.         System.out.println(user1.getUsername());  
  45.         return user1;  
  46.     }  
  47.   
  48.     @Override  
  49.     public List getList(UserInfo user) {  
  50.         List list=userInfoDao.getList(user);  
  51.           
  52.         for(Iterator iter=list.iterator();iter.hasNext();)  
  53.         {  
  54.             UserInfo user1=(UserInfo)iter.next();  
  55.             System.out.println(user1.getUsername()+",");  
  56.         }  
  57.           
  58.         return list;  
  59.     }  
  60.   
  61.     @Override  
  62.     public List getAllUser() {  
  63.         List list= userInfoDao.getAllUser();  
  64.         for(Iterator iter=list.iterator();iter.hasNext();)  
  65.         {  
  66.             UserInfo user=(UserInfo)iter.next();  
  67.             System.out.println(user.getUsername()+",");  
  68.         }  
  69.           
  70.         return list;  
  71.     }  
  72.       
  73. }  

UserInfoDao.java
[java]  view plain copy print ?
  1. package com.jialin.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.jialin.entity.UserInfo;  
  6.   
  7. public interface UserInfoDao {  
  8.       
  9.     public void insertUser(UserInfo user);  
  10.   
  11.     public void edit(UserInfo user);  
  12.   
  13.     public void remove(UserInfo user);  
  14.   
  15.     public UserInfo get(UserInfo user);  
  16.   
  17.     public List getList(UserInfo user);  
  18.       
  19.     public List getAllUser();  
  20. }  
UserInfo.java
[java]  view plain copy print ?
  1. package com.jialin.entity;  
  2.   
  3. public class UserInfo {  
  4.     private int id;  
  5.     private String username;  
  6.     private String password;  
  7.     private String ismanager;  
  8.   
  9.     public void setIsmanager(String ismanager) {  
  10.         this.ismanager = ismanager;  
  11.     }  
  12.   
  13.     public String getIsmanager() {  
  14.         return ismanager;  
  15.     }  
  16.   
  17.     public void setUsername(String username) {  
  18.         this.username = username;  
  19.     }  
  20.   
  21.     public String getUsername() {  
  22.         return username;  
  23.     }  
  24.   
  25.     public void setPassword(String password) {  
  26.         this.password = password;  
  27.     }  
  28.   
  29.     public String getPassword() {  
  30.         return password;  
  31.     }  
  32.   
  33.     public void setId(int id) {  
  34.         this.id = id;  
  35.     }  
  36.   
  37.     public int getId() {  
  38.         return id;  
  39.     }  
  40.   
  41. }  

Mybaitis映射文件
userinfo-mapper.xml
[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">     
  3.     
  4. <mapper namespace="com.jialin.dao.UserInfoDao">     
  5.       <!-- 自动生成id策略 -->  
  6.     <insert id="insertUser"  parameterType="userinfo"  useGeneratedKeys="true"  keyProperty="id">    
  7.             insert into userinfo(username,password,ismanager) values (#{username},#{password},#{ismanager})    
  8.     </insert>    
  9.       
  10.     <!-- userInfoResultMap是userinfo-resultmap.xml中定义的resultmap -->  
  11.     <select id="getList"  parameterType="userinfo" resultType="list" resultMap="userInfoResultMap">  
  12.             select * from userinfo where username like '%' #{username} '%'  
  13.     </select>  
  14.       
  15.     <select id="getAllUser" resultType="list"  resultMap="userInfoResultMap">  
  16.             select * from userinfo  
  17.     </select>  
  18.       
  19.     <select id="get"  parameterType="userinfo"  resultType="com.jialin.entity.UserInfo" resultMap="userInfoResultMap">  
  20.         <![CDATA[ 
  21.             select * from userinfo where id = #{id} 
  22.         ]]>  
  23.     </select>  
  24.       
  25.     <update id="edit"  parameterType="userinfo">  
  26.         update userinfo set  
  27.         username = #{username},  
  28.         password = #{password}  
  29.         where id = #{id}  
  30.     </update>  
  31.       
  32.     <delete id="remove" parameterType="userinfo">  
  33.         delete from userinfo where id = #{id}  
  34.     </delete>  
  35.       
  36. </mapper>    

userinfo-resultMap.xml

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   
  3.     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  4. <mapper namespace="com.jialin.dao.UserInfoDao">  
  5.     <resultMap type="com.jialin.entity.UserInfo" id="userInfoResultMap">  
  6.         <id property="id" column="id"/>  
  7.         <result property="username" column="username"/>  
  8.         <result property="password" column="password"/>  
  9.         <result property="ismanager" column="ismanager"/>  
  10.     </resultMap>  
  11. </mapper>  

测试jsp
[html]  view plain copy print ?
  1. <%@ page contentType="text/html; charset=UTF-8"%>  
  2.   
  3.   
  4. <html>  
  5. <head>  
  6. <title></title>  
  7.   
  8. <script type="text/javascript">  
  9.       
  10.     function insertUser()  
  11.     {  
  12.         var myform=document.forms[0];  
  13.         myform.action="insertUser_success";  
  14.         myform.method="post";  
  15.         myform.submit();  
  16.     }  
  17.       
  18.     function getUserByName()  
  19.     {  
  20.         var myform=document.forms[0];  
  21.         myform.action="getListByName_success";  
  22.         myform.method="post";  
  23.         myform.submit();  
  24.     }  
  25.       
  26.     function getAllUser()  
  27.     {  
  28.         var myform=document.forms[0];  
  29.         myform.action="getAllUser_success";  
  30.         myform.method="post";  
  31.         myform.submit();  
  32.     }  
  33.       
  34.     function editUser()  
  35.     {  
  36.         var myform=document.forms[0];  
  37.         myform.action="editUser_success";  
  38.         myform.method="post";  
  39.         myform.submit();  
  40.     }  
  41.       
  42.     function getUserById()  
  43.     {  
  44.         var myform=document.forms[0];  
  45.         myform.action="getUserById_success";  
  46.         myform.method="post";  
  47.         myform.submit();  
  48.     }  
  49.       
  50.     function removeUser()  
  51.     {  
  52.         var myform=document.forms[0];  
  53.         myform.action="removeUser_success";  
  54.         myform.method="post";  
  55.         myform.submit();  
  56.     }  
  57.       
  58.   
  59. </script>  
  60.   
  61.   
  62. </head>  
  63. <body>  
  64.     <h1>用户管理</h1>  
  65.     <hr>  
  66.     <form name="myform" >  
  67.         id:<input type="text" name="userInfo.id"> <br>  
  68.         用户名:<input type="text" name="userInfo.username"> <br>  
  69.         密码:<input type="text" name="userInfo.password">  <br>  
  70.         是否为管理员:<input type="text" name="userInfo.ismanager"><br>  
  71.         <input type="button" name="btninsert" onclick="insertUser()" value="增加" />  
  72.         <input type="button" name="btnedit" onclick="editUser()" value="修改" />  
  73.         <input type="button" name="btnremove" onclick="removeUser()" value="删除"  /><br>  
  74.         <input type="button" name="btnget" onclick="getUserById()" value="按id查询"  />  
  75.         <input type="button" name="btngetlist" onclick="getUserByName()" value="按名称查询"  />  
  76.         <input type="button" name="btngetall" onclick="getAllUser()" value="查询全部"  />  
  77.     </form>  
  78. </body>  
  79. </html>  
原文地址: http://blog.csdn.net/shan9liang/article/details/9079567
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts2+Spring3+Mybatis3开发环境搭建 的相关文章

随机推荐

  • elasticsearch 5.x删除index/type

    elasticsearch 5 x删除index 在head插件中执行 DELETE ip port index 看到 acknowledge true 即为成功 elasticsearch 5 x删除type 在kibana界面 dev
  • java 参数明明名字都是对的为什么值传不过来

    java 参数明明名字都是对的为什么值传不过来 那是因为值的类型不一样 导致匹配不上 一个是long 一个是string
  • C++数据结构笔记(3)线性表的链式存储底层实现

    本系列的帖子并不包含全部的基础知识 只挑一部分最核心的知识点总结 着重于具体的实现细节而并非理论的知识点总结 大家按需阅读学习 链表的核心概念总结如下 1 链式存储不需要连续的内存空间 2 链表由一系列的结点组成 每个节点包含两个域 分别是
  • Unity获得当前场景所有物体

    前言 1 GameObject FindObjectsOfType typeof GameObject 只能获得所有active物体 2 GameObject FindObjectsOfTypeAll该方法已过时 解决方案 可以使用Reso
  • 定义一个Student类,成员变量有姓名、年龄;用数组存5个学生对象,并输出

    public class Student String name int age public Student String name int age this name name this age age public class tex
  • IntersectionObserver实现图片懒加载(超详细!)

    关于IntersectionObserver 官方上说明是提供了一种异步观察目标元素与其祖先元素或顶级文档视窗 viewport 交叉状态的方法 祖先元素与视窗 viewport 被称为根 root 具体的内容可以参考官网解释 https
  • 前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整

    目录 游戏主体部分 普通模式 游戏主体部分 地狱模式 游戏主页入口 预览图 游戏入口代码 1 html 2 css 3 js 注册页面代码 游戏实现很简单 只写游戏主体的话只要三小时就够了 话不多说 我们直接来看效果预览 转成gif图之后有
  • MATLAB读dat文件中存储的十六进制数

    搞了好久都没搞懂为什么MATLAB里load textread都打不开区区一个十六进制文件 经过不懈的寻找 发现fopen fread就是永远滴神 果然灯下黑 data zeros 1 1000 fid fopen 1 dat rb row
  • 云服务器有比虚拟主机好吗,云服务器有比虚拟主机好吗

    云服务器有比虚拟主机好吗 内容精选 换一换 在高可用部署场景下 ASCS主备节点通过共享盘实现数据同步 本章节指导用户将ASCS主节点的数据盘绑定给ASCS备节点并为ASCS主备节点绑定浮动IP 已在SAP ASCS主备节点之间进行过相互的
  • 大数据学习之Hive——05Hive函数

    一 内置函数 1 数学函数 Return Type Name Signature Description DOUBLE round DOUBLE a 返回对a四舍五入的BIGINT值 DOUBLE round DOUBLE a INT d
  • 网页上文本框禁止复制粘贴怎么破解

    我们首先来介绍如何实现禁止复制 知道了禁止的方式 再破解就容易了 实现禁止复制粘贴 比较简单 直接上代码 h1 本代码在UC手机浏览器上不生效 其它手机浏览器暂未发现问题 PC全部没问题 h1 p p
  • uniapp swiper轮播图片+视频

    1 效果 2 代码展示
  • Java高并发- 锁的优化及 JVM 对锁优化所做的努力

    在高并发环境下 激烈的锁竞争会导致程序的性能下降 所以我们有必要讨论一下有关 锁 的性能问题及注意事项 如 避免死锁 减小锁粒度 锁分离等 一 锁优化 1 1 减小锁持有时间 在锁竞争过程中 单个线程对锁的持有时间与系统性能有着直接的关系
  • docker安装golang

    这里写目录标题 下载golang的Docker镜像 使用Golang镜像 下载golang的Docker镜像 docker search golang 查询Golang的镜像信息 选择使用第一个 执行命令 docker pull docke
  • [Android]ProgressBar进度条

    ProgressBar ProgressBar是进度条控件 ProgressBar的应用场景很多 比如用户登录时 后台发送请求 以及进行等待服务器返回信息等一些比较耗时的操作 这个时候如果没有提示 用户可能会以为程序崩溃了或手机死机了 会大
  • C++容器篇,list容器

    C 容器篇 list容器 1 list的介绍和使用 1 1 list的介绍 list的参考文档 list是C 的容器之一 其本质是双向链表 它是可以在常数时间复杂度内进行插入和删除的序列式容器 list和forword list非常相似 其
  • stm32实现json格式传输/ cjson使用

    cjson是一个开源的C文件 可以实现用C语言生成json格式数据 目录 步骤1 准备工作 步骤2 cjson函数简单讲解 步骤3 一个例子 生成json格式数据 步骤1 准备工作 在keil里添加cjson c和cjson h cjson
  • linux下生成高强度密码的四大神器

    导读 安全是一个大的话题 给服务器设置一个高强度的密码是非常重要的 你可能会疑惑一个高强度的密码究竟是什么样的呢 怎么才能生成一个那样的密码呢 不用担心下面我们将介绍 4 种简单方法让你在 Linux 中生成一个高强度密码 1 在 Linu
  • CentOS 6和CentOS 7的磁盘空间清理

    收集整理了一些在CentOS 6或者CentOS 7服务器中 快速清理磁盘空间的方法 首先 必须先安装yum utils工具组件 yum y install yum utils 1 删除日志文件 find var name log size
  • Struts2+Spring3+Mybatis3开发环境搭建

    本文主要介绍Struts2 Spring3 Mybatis3开发环境搭建 Struts和Spring不过多介绍 MyBatis 是支持普通 SQL 查询 存储过程和高级映射的优秀持久层框架 MyBatis 消除了几乎所有的 JDBC 代码和