一 使用 JedisAPI 操作 Redis

Jedis 集成了 redis 的一些命令操作,封装了对 redis 命令的 Java 客户端。

1 使用 Jedis 操作 Redis 单机版

1.1 创建一个jar工程

1.2 修改 POM 文件添加 Jedis 坐标

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.y</groupId><artifactId>jedisDemo</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency></dependencies>
</project>

1.3 测试 Jedis 操作 Redis 单机版

package com.y;import java.io.IOException;
import java.util.HashSet;
import java.util.Set;import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;public class TestJedis {public static void main(String[] args) throws Exception {TestJedis test = new TestJedis();test.testJedisSingle();}public void testJedisSingle(){Jedis jedis = new Jedis("192.168.178.3",6379);String result = jedis.set("name","tom");System.out.println(result);String str = jedis.get("name");System.out.println(str);Long l = jedis.hset("user", "username", "jery");System.out.println(l);String hres = jedis.hget("user","username");System.out.println(hres);jedis.close();}}

1.4 测试使用连接池操作 Redis 单机版

package com.y;import java.io.IOException;
import java.util.HashSet;
import java.util.Set;import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;public class TestJedis {public static void main(String[] args) throws Exception {  TestJedis test = new TestJedis();test.testJedisPool(); }public void testJedisPool(){JedisPool pool = new JedisPool("192.168.178.3",6379);Jedis jedis =  pool.getResource();String result = jedis.set("name","tom");System.out.println(result);String str = jedis.get("name");System.out.println(str);Long l = jedis.hset("user", "username", "jery");System.out.println(l);String hres = jedis.hget("user","username");System.out.println(hres);jedis.close();}
}

2 使用 Jedis 操作 Redis 集群

 package com.y;import java.io.IOException;
import java.util.HashSet;
import java.util.Set;import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;public class TestJedis {public static void main(String[] args) throws Exception {  TestJedis test = new TestJedis();test.testJeidsCluster();}public void testJeidsCluster() throws Exception{Set<HostAndPort> nodes = new HashSet<>();nodes.add(new HostAndPort("192.168.178.3",8001));nodes.add(new HostAndPort("192.168.178.3",8002));nodes.add(new HostAndPort("192.168.178.3",8003));nodes.add(new HostAndPort("192.168.178.3",8004));nodes.add(new HostAndPort("192.168.178.3",8005));nodes.add(new HostAndPort("192.168.178.3",8006));JedisCluster jc = new JedisCluster(nodes);String result = jc.set("name","tom");System.out.println(result);String str = jc.get("name");System.out.println(str);Long l = jc.hset("user", "username", "jery");System.out.println(l);String hres = jc.hget("user","username");System.out.println(hres);jc.close();}
}

七、 Spring 整合 Jedis

1 整合单机版

1.1 创建一个jar工程

1.2 修改 POM 文件添加 Jedis 与 Spring 的坐标

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.y</groupId><artifactId>spring-JedisDemo</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.3.RELEASE</version></dependency></dependencies>
</project>

1.3 创建 JedisDao 接口与接口实现类

JedisDao :

package com.y.dao;public interface JedisDao {public String set(String key ,String value);public String get (String key);public Long  hset(String hkey,String key,String value );public String hget(String hkey, String key);
}

JedisDaoImpl :

package com.y.dao.impl;import org.springframework.beans.factory.annotation.Autowired;
import com.y.dao.JedisDao;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;public class JedisSingleDaoImpl implements JedisDao {@Autowiredprivate JedisPool jedisPool;@Overridepublic String set(String key, String value) {    Jedis jedis = jedisPool.getResource(); return jedis.set(key, value);}@Overridepublic String get(String key) { Jedis jedis = jedisPool.getResource(); return jedis.get(key);}@Overridepublic Long hset(String hkey, String key, String value) {Jedis jedis = jedisPool.getResource();return jedis.hset(hkey, key, value);}@Overridepublic String hget(String hkey, String key) {Jedis jedis = jedisPool.getResource();return jedis.hget(hkey, key);}
}

1.4 在 Spring 配置文件中整合 Jedis

<?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:p="http://www.springframework.org/schema/p"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.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.y.dao"></context:component-scan><!-- jedisPool 的配置 --><bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最大连接数 --><property name="maxTotal" value="30" /><!-- 最大空闲连接数 --><property name="maxIdle" value="10" /><!-- 每次释放连接的最大数目 --><property name="numTestsPerEvictionRun" value="1024" /><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="30000" /><!-- 连接最小空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000" /><!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000" /><!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 --><property name="maxWaitMillis" value="1500" /><!-- 在获取连接的时候检查有效性, 默认 false --><property name="testOnBorrow" value="true" /><!-- 在空闲时检查有效性, 默认 false --><property name="testWhileIdle" value="true" /><!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true --><property name="blockWhenExhausted" value="false" /></bean><bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig"><ref bean="poolconfig" /></constructor-arg><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>6379</value></constructor-arg></bean><bean id="jedisSingleDaoImpl" class="com.y.dao.impl.JedisSingleDaoImpl"></bean>
</beans>

1.5 测试单机版

package com.y;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.y.dao.JedisDao;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;public class Test {public static void main(String[] args) {Test.testJedisSingle();}public static void testJedisPool(){JedisPool jp =new JedisPool("192.168.178.3",6379);Jedis jedis = jp.getResource();jedis.set("name", "tom");String str = jedis.get("name");System.out.println(str);jedis.close();}public static void testJedisSingle(){ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-Jedis.xml");JedisDao jd = (JedisDao) ac.getBean("jedisClusterDaoImpl");String str = jd.set("端午节","五月五日");System.out.println(str);String result = jd.get("端午节");System.out.println(result);  }
}

2 整合集群版

2.1 添加 JedisDao 实现类。基于 JedisCluster 的实现

JedisDao与单机版一样,实现类JedisClusterDaoImpl为:

package com.y.dao.impl;import org.springframework.beans.factory.annotation.Autowired;
import com.y.dao.JedisDao;
import redis.clients.jedis.JedisCluster;
public class JedisClusterDaoImpl implements JedisDao {@Autowiredprivate JedisCluster jedisCluster;@Overridepublic String set(String key, String value) {  return jedisCluster.set(key, value);}@Overridepublic String get(String key) {return jedisCluster.get(key);}@Overridepublic Long hset(String hkey, String key, String value) {return jedisCluster.hset(hkey, key, value);}@Overridepublic String hget(String hkey, String key) {return jedisCluster.hget(hkey, key);}
}

2.2 在 Spring 配置文件中整合 JedisCluster

<?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:p="http://www.springframework.org/schema/p"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.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.y.dao"></context:component-scan><!-- jedisPool 的配置 --><bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最大连接数 --><property name="maxTotal" value="30" /><!-- 最大空闲连接数 --><property name="maxIdle" value="10" /><!-- 每次释放连接的最大数目 --><property name="numTestsPerEvictionRun" value="1024" /><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="30000" /><!-- 连接最小空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000" /><!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000" /><!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 --><property name="maxWaitMillis" value="1500" /><!-- 在获取连接的时候检查有效性, 默认 false --><property name="testOnBorrow" value="true" /><!-- 在空闲时检查有效性, 默认 false --><property name="testWhileIdle" value="true" /><!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true --><property name="blockWhenExhausted" value="false" /></bean><bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig"><ref bean="poolconfig" /></constructor-arg><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>6379</value></constructor-arg></bean><bean id="JedisCluster" class="redis.clients.jedis.JedisCluster"><constructor-arg name="nodes"><set><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8001</value></constructor-arg></bean><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8002</value></constructor-arg></bean><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8003</value></constructor-arg></bean><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8004</value></constructor-arg></bean><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8005</value></constructor-arg></bean><bean class="redis.clients.jedis.HostAndPort"><constructor-arg name="host"><value>192.168.178.3</value></constructor-arg><constructor-arg name="port"><value>8006</value></constructor-arg></bean></set></constructor-arg><constructor-arg name="poolConfig"><ref bean="poolconfig" /></constructor-arg></bean><bean id="jedisClusterDaoImpl" class="com.y.dao.impl.JedisClusterDaoImpl"></bean>
</beans>

2.3 测试集群版

package com.y;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.y.dao.JedisDao;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;public class Test {public static void main(String[] args) {Test.testJedisCluster();}public static void testJedisPool(){JedisPool jp =new JedisPool("192.168.178.3",6379);Jedis jedis = jp.getResource();jedis.set("name", "tom");String str = jedis.get("name");System.out.println(str);jedis.close();}public static void testJedisCluster(){ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-Jedis.xml");JedisDao jd = (JedisDao) ac.getBean("jedisClusterDaoImpl");String str = jd.set("端午节","五月五日");System.out.println(str);String result = jd.get("端午节");System.out.println(result);}
}

八、 Redis Desktop Manager 的使用

1 创建与 Redis 的链接

九、 实战案例

1 需求

  • 实现用户添加功能。
  • 实现用户查询功能,并使用 Redis 作为查询缓存。
  • 实现用户更新功能,同步缓存。

2 数据库的表结构

CREATE TABLE `user` (`userid` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(30) DEFAULT NULL,`userage` int(11) DEFAULT NULL,PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

3 创建项目

创建一个war项目。

4 修改 POM 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.y</groupId><artifactId>redis_parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.y</groupId><artifactId>usermanager</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency><!-- 日志处理 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency><!-- JSP相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><scope>provided</scope></dependency><!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources><!-- tomcat插件,由于子项目不一定每个都是web项目,所以该插件只是声明,并未开启 --><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><path>/</path><port>8080</port></configuration></plugin></plugins></build>
</project>

5 框架整合

6 实现业务

6.1 UserMapper 与 UserMapper 映射配置文件

UserMapper 接口 :

package com.y.mapper;
import java.util.List;
import com.y.pojo.User;
public interface UserMapper {public void insertUser(User user);public List<User> selectUserAll();User findUserById(int userid);void updateUser(User user);
}

映射配置文件 :

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.y.mapper.UserMapper" ><insert id="insertUser" parameterType="com.y.pojo.User">insert into user(username,userage) values(#{username},#{userage})</insert><select id="selectUserAll" resultType="com.y.pojo.User">select * from user</select><select id="findUserById" resultType="com.y.pojo.User">select * from user where userid = #{userid}</select><update id="updateUser" parameterType="com.y.pojo.User">update user set username = #{username},userage = #{userage} where userid=#{userid}</update>
</mapper>

6.2UserService接口和UserServiceImpl实现类

UserService接口 :

package com.y.service;
import com.y.pojo.User;
public interface UserService {void addUser(User user);User findUserById(int userid);    void updateUser(User user);
}

UserServiceImpl实现类 :

package com.y.service.impl;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.y.commons.JsonUtils;
import com.y.jedisdao.JedisDao;
import com.y.mapper.UserMapper;
import com.y.pojo.User;
import com.y.service.UserService;@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Autowiredprivate JedisDao jedisDao;@Value("${REDIS_USERS_PRIFX}")private String REDIS_USERS_PRIFX;@Overridepublic void addUser(User user) {this.userMapper.insertUser(user);}//实现查询缓存业务@Overridepublic User findUserById(int userid) {//先查询内存中的redis有没有如果有则返回,如果没有,从关系型数据库查try { String json = this.jedisDao.get(this.REDIS_USERS_PRIFX + ":" + userid);if (json != null && json.length() > 0) {System.out.println(".........................");User user = JsonUtils.jsonToPojo(json, User.class);return user;}} catch (Exception e) {e.printStackTrace();}//从关系型数据库查,User user = this.userMapper.findUserById(userid);System.out.println(",,,,,,,,,,,,,,,,,,,,,,,,,,,,,");//从关系型数据库中查完后放入到redis中try {String res = JsonUtils.objectToJson(user);this.jedisDao.set(this.REDIS_USERS_PRIFX + ":" + userid, res);this.jedisDao.expire(this.REDIS_USERS_PRIFX + ":" + userid, 60);} catch (Exception e) {e.printStackTrace();}return user;}// 更新用户同步缓存@Overridepublic void updateUser(User user) {this.userMapper.updateUser(user);try{this.jedisDao.del(this.REDIS_USERS_PRIFX+":"+user.getUserid());}catch(Exception e){e.printStackTrace();}}
}

jedis操作set_使用 JedisAPI 操作 Redis相关推荐

  1. redis list操作_大厂面试高频Redis,记不住的多操作几次吧

    redis 的基本操作方法 1.redis 的连接 : //实例化redis $redis = new Redis(); //连接$redis->connect('127.0.0.1', 637 ...

  2. redis 操作list时Pop操作list为空?

    redis 操作list时Pop操作list为空? Pop操作分为 : leftPop(K key) 移除集合中的左边第一个元素. rightPop(K key) 移除集合中右边的元素. 问题:用ri ...

  3. redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...

    解决spring-data-redis操作redis集群报"Jedis does not support password protected Redis Cluster configura ...

  4. linux重命名tar命令,linux常用操作指令4 —— 文件操作相关命令(mkdir、touch、rm、mv、cp、cat 、 find 、tar、chmod)...

    文件操作相关命令 文件操作相关命令 1.创建文件夹mkdir 2.创建文件touch 3.移动文件夹mv(类似于剪切) 4.删除rm 5.重命名mv 6.复制cp 7.查看文件(cat.head.ta ...

  5. Git 取消上一次commit操作,但保留add操作

    为什么80%的码农都做不了架构师?>>>    场景重现 删除了代码中的一些空白行,习惯性添加&提交 git add .git commit -m "溢出一些空白行 ...

  6. 【java】在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException...

    场景: 在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException 错误: java.lang ...

  7. 嵌入式驱动之阻塞操作、非阻塞操作

    阻塞 阻塞操作     是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作. 被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足. 非阻塞操作   进 ...

  8. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

  9. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | 引入线程安全概念 )

    文章目录 一.引入线程安全概念 二.完整代码示例 一.引入线程安全概念 在上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 ) ...

最新文章

  1. RESTful API浅谈
  2. kafka 不同分区文件存储_Kafka深入理解-1:Kafka高效的文件存储设计
  3. 深度学习(五)caffe环境搭建
  4. Quartz在Spring中动态设置cronExpression
  5. 最大似然估计(最大可能性估计)(likelihood)
  6. some more debugging screenshot about timeformat in DatePicker 15
  7. 第五十三期:公司如何选择数据库?DynamoDB、Hadoop和MongoDB 大比拼
  8. SqlServer查询语句中用到的锁
  9. 使用Spring框架能带来那些好处?
  10. webpack打开项目命令_webpack打包好的页面在项目中怎么运行?
  11. Struts2 标签库 控制标签的使用 if append generator iterator merage sort subset
  12. AGV机器人核心部件——驱动轮
  13. 软件测试和调试的区别
  14. matlab实现简单图形的识别二
  15. VB打造QQ批量登陆器
  16. [源码和文档分享]基于SSM的网上购物系统的设计与开发
  17. Android8.1 MTK平台 修改系统默认语言和默认输入法
  18. 常用的RGB颜色值参考表
  19. R语言ROC曲线下的面积 - 评估逻辑回归中的歧视
  20. 学科实践活动感悟50字_社会实践活动的自我评价50字

热门文章

  1. 我们自己搞了个数据库设计工具(客户端)
  2. web安全的学习路线
  3. Unity lightmap shader
  4. python中startswith()函数的用法
  5. 201312-1-出现次数最多的数
  6. 9月22日云栖精选夜读:脑洞 | 横扫围棋界的AlphaGo竟然出纪录片了!介意剧透者慎点…...
  7. ubuntu 1404部署tomcat7
  8. 【李宏毅2020 ML/DL】P12 Brief Introduction of Deep Learning
  9. c语言用指针访问简单变量,关于C语言指针,个人认为最经典、最简单的一个应用...
  10. c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)