加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
db_blog.sql 72.03 KB
一键复制 编辑 原始数据 按行查看 历史
Baymax 提交于 2021-07-10 03:25 . 数据库
/*
Navicat Premium Data Transfer
Source Server : TX
Source Server Type : MySQL
Source Server Version : 80011
Source Host : 1.15.78.53:3306
Source Schema : db_blog
Target Server Type : MySQL
Target Server Version : 80011
File Encoding : 65001
Date: 10/07/2021 11:25:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_blog
-- ----------------------------
DROP TABLE IF EXISTS `t_blog`;
CREATE TABLE `t_blog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`summary` varchar(400) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`releaseDate` datetime DEFAULT NULL,
`clickHit` int(11) DEFAULT NULL,
`replyHit` int(11) DEFAULT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci,
`typeId` int(11) DEFAULT NULL,
`keyWord` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
KEY `typeId` (`typeId`) USING BTREE,
CONSTRAINT `t_blog_ibfk_1` FOREIGN KEY (`typeId`) REFERENCES `t_blogtype` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_blog
-- ----------------------------
BEGIN;
INSERT INTO `t_blog` VALUES (39, 'Spring', 'Spring 是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护性。Spring 官网:https://spring.io/。\r\n 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。比如:Core Container 中的 Core 组件是Spring 所有组件的核心,Beans 组件和 Context 组件是实现IOC和依赖注入的基础,AOP组件用来实现面向切面编程。', '2020-08-04 10:00:42', 33, 0, '<h1 id=\"spring\">Spring</h1>\r\n <h2 id=\"ioc\">IoC</h2>\r\n <p>IoC(Inverse of Control 控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IoC在其他语言中也有应用,并非Spring特有。IoC容器是Spring用来实现IoC的载体,IoC容器实际上就是一个Map(key,value),Map中存放的是各种对象。</p>\r\n <p>将对象之间的相互依赖关系交给IoC容器来管理,并由IoC容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。IoC容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好的配置文件/注解即可,完全不用考虑对象是如何创建出来的。在实际项目中一个Service类可能有几百甚至上千个类作为他的底层,假如我们需要实例化这个Service,你可能要每次都要搞清这个Service所有的底层类的构造函数,这可能会把人逼疯。如果利用IoC的话,你只需要配置好,然后在需要的地方引用就行了,这大大增加了项目的可维护性且降低了开发难度。</p>\r\n <h2 id=\"aop\">AOP</h2>\r\n <p>AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。</p>\r\n <p>Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了,这时候Spring AOP会使用Cglib,这时候Spring AOP会使用Cglib生成一一个被代理对象的子类来作为代理。</p>\r\n <h2 id=\"comment-和-bean-的区别\">@Comment 和 @Bean 的区别</h2>\r\n <ol>\r\n <li>\r\n <p>作用对象不同:<code>@Component</code>注解作用于类,而<code>@Bean</code>注解作用于方法。</p>\r\n </li>\r\n <li>\r\n <p><code>@Component</code>通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用<code>@ComponentScan</code>注解定义要扫描的路径从中找出标识了需要装配的类自动装配到Spring的bean容器中)。<code>@Bean</code>注解通常是我们在标有该注解的方法中定义产生这个bean,<code>@Bean</code>告诉了Spring这是某个类的示例,当我需要用它的时候还给我。</p>\r\n </li>\r\n <li>\r\n <p><code>@Bean</code>注解比Component注解的自定义性更强,而且很多地方我们只能通过<code>@Bean</code>注解来注册bean。比如当我们引用第三方库中的类需要装配到Spring容器时,则只能通过<code>@Bean</code>来实现。</p>\r\n </li>\r\n </ol>\r\n <p><code>@Bean</code> 注解示例</p>\r\n <div class=\"code-toolbar\"><pre class=\"line-numbers language-java\"><code class=\" language-java\"><span class=\"token annotation punctuation\">@Configuration</span>\r\n <span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">AppConfig</span> <span class=\"token punctuation\">{</span>\r\n <span class=\"token annotation punctuation\">@Bean</span>\r\n <span class=\"token keyword\">public</span> <span class=\"token class-name\">TransferService</span> <span class=\"token function\">transferService</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">TransferServiceImpl</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n <span class=\"token punctuation\">}</span>\r\n\r\n <span class=\"token punctuation\">}</span>\r\n <span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><div class=\"toolbar\"><div class=\"toolbar-item\"><span>Java</span></div><div class=\"toolbar-item\"><button>Copy</button></div></div></div>\r\n <p>上面的代码相当于以下xml配置:</p>\r\n <div class=\"code-toolbar\"><pre class=\"line-numbers language-xml\"><code class=\" language-xml\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>beans</span><span class=\"token punctuation\">&gt;</span></span>\r\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>bean</span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>transferService<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>cn.tsxygfy.TransferServiceImpl<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/&gt;</span></span>\r\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>beans</span><span class=\"token punctuation\">&gt;</span></span>\r\n <span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span></span></code></pre><div class=\"toolbar\"><div class=\"toolbar-item\"><span>XML</span></div><div class=\"toolbar-item\"><button>Copy</button></div></div></div>\r\n <p>下面这个例子是通过<code>@Comment</code>无法实现的</p>\r\n <div class=\"code-toolbar\"><pre class=\"line-numbers language-java\"><code class=\" language-java\"><span class=\"token annotation punctuation\">@Bean</span>\r\n <span class=\"token keyword\">public</span> <span class=\"token class-name\">OneService</span> <span class=\"token function\">getService</span><span class=\"token punctuation\">(</span>status<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n <span class=\"token keyword\">case</span> <span class=\"token punctuation\">(</span>status<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n when <span class=\"token number\">1</span><span class=\"token operator\">:</span>\r\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">new</span> <span class=\"token function\">serviceImpl1</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n when <span class=\"token number\">2</span><span class=\"token operator\">:</span>\r\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">new</span> <span class=\"token function\">serviceImpl2</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n when <span class=\"token number\">3</span><span class=\"token operator\">:</span>\r\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">new</span> <span class=\"token function\">serviceImpl3</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n <span class=\"token punctuation\">}</span>\r\n <span class=\"token punctuation\">}</span>\r\n <span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><div class=\"toolbar\"><div class=\"toolbar-item\"><span>Java</span></div><div class=\"toolbar-item\"><button>Copy</button></div></div></div>\r\n <h2 id=\"将一个类声明为spring的bean的注解有哪些\">将一个类声明为Spring的bean的注解有哪些?</h2>\r\n <p>我们一般使用@Autowired注解自动装配bean,要想把类标识成可用于@Autowired注解自动装配的bean的类,采用以下注解可实现:</p>\r\n <ul>\r\n <li><code>@Component</code>:通用的注解,可标注任意类为Spring组件。如果一一个Bean不知道属于哪个层,可以使用<code>@Component</code>注解标注。</li>\r\n <li><code>@Repository</code>:对应持久层即Dao层,主要用于数据库相关操作。</li>\r\n <li><code>@Service</code>:对应服务层,主要涉及一-些复杂的逻辑,需要用到Dao层。</li>\r\n <li><code>@Controller</code>:对应Spring MVC控制层,主要用户接受用户请求并调用Service层返回数据给前端页面。.</li>\r\n </ul>\r\n <h2 id=\"bean的生命周期\">bean的生命周期</h2>\r\n <blockquote>\r\n <p>整理自 <a href=\"https://yemengying.com/2016/07/14/spring-bean-life-cycle/\">https://yemengying.com/2016/07/14/spring-bean-life-cycle/</a></p>\r\n </blockquote>\r\n <ul>\r\n <li>Bean容器找到配置文件中Spring Bean的定义。</li>\r\n <li>Bean容器利用Java Reflection API创建一个Bean的实例。</li>\r\n <li>如果涉及到一些属性值利用set方法设置一些属性值。</li>\r\n <li>如果Bean实现了<code>BeanNameAware</code>接口,调用<code>setBeanName()</code>方法,传入Bean的名字。</li>\r\n <li>如果Bean实现了<code>BeanClassLoaderAware</code>接口,调用<code>setBeanClassLoader()</code>方法, 传入<code>ClassLoader</code>对象的实例。</li>\r\n <li>如果Bean实现了<code>BeanFactoryAware</code>接口,调用<code>setBeanClassLoader()</code>方法, 传入<code>ClassLoader</code>对象的实例。</li>\r\n <li>与上面的类似,如果实现了其他<code>Aware</code>接口,就调用相应的方法。</li>\r\n <li>如果有和加载这个Bean的Spring容器相关的<code>BeanPostProcessor</code>对象,执行<code>postProcessBeforelnitialization()</code>方法</li>\r\n <li>如果Bean实现了<code>InitializingBean</code>接口,执行<code>afterPropertiesSet()</code>方法。</li>\r\n <li>如果Bean在配置文件中的定义包含<code>init- method</code>属性,执行指定的方法。</li>\r\n <li>如果有和加载这个Bean的Spring容器相关的<code>BeanPostProcessor</code>对象,执行<code>postProcessAfterlnitialization()</code>方法。</li>\r\n <li>当要销毁Bean的时候,如果Bean实现了<code>DisposableBean</code>接口,执行<code>destroy()</code>方法。</li>\r\n <li>当要销毁Bean的时候,如果Bean在配置文件中的定义包含<code>destroy-method</code>属性,执行指定的方法。</li>\r\n </ul>\r\n <h2 id=\"bean的作用域\">bean的作用域</h2>\r\n <ul>\r\n <li><code>singleton</code> : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。</li>\r\n <li><code>prototype</code> : 每次请求都会创建一个新的 bean 实例。</li>\r\n <li><code>request</code> : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。</li>\r\n <li><code>session</code> : 每一次HTTP请求都会产生一个新的 bean,该bean仅在当前 HTTP session 内有效。</li>\r\n <li><code>global-session</code>: 全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。Portlet是能够生成语义代码(例如:HTML)片段的小型Java Web插件。它们基于portlet容器,可以像servlet一样处理HTTP请求。但是,与 servlet 不同,每个 portlet 都有不同的会话。</li>\r\n </ul>\r\n <h1 id=\"spring-mvc\">Spring MVC</h1>\r\n <p>MVC是-一种设计模式,Spring MVC是一款很优秀的MVC框架。Spring MVC可以帮助我们进行更简洁的Web层的开发,并且它天生与Spring框架集成。Spring MVC下我们一般把后端项目分为Service层(处理业务)、Dao层( 数据库操作)、Entity层 (实体类)、Controller层(控制层,返回数据给前台页面)。</p>\r\n <h2 id=\"执行流程\">执行流程</h2>\r\n <ol>\r\n <li>\r\n <p>客户端(浏览器) 发送请求,直接请求到<code>DispatcherServlet</code>。</p>\r\n </li>\r\n <li>\r\n <p><code>DispatcherServlet</code>根据请求信息调用<code>HandlerMapping</code>,解析请求对应的Handler。</p>\r\n </li>\r\n <li>\r\n <p>解析到对应的Handler (也就是我们平常说的Controller控制器)后,开始由<code>HandlerAdapter</code>适配器处理。</p>\r\n </li>\r\n <li>\r\n <p><code>HandlerAdapter</code>会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。</p>\r\n </li>\r\n <li>\r\n <p>处理器处理完业务后,会返回一个<code>ModelAndView</code>对象,<code>Model</code>是返回的数据对象, <code>View</code>是个逻辑上的View。</p>\r\n </li>\r\n <li>\r\n <p><code>ViewResolver</code>会根据逻辑<code>View</code>查找实际的<code>View</code>。</p>\r\n </li>\r\n <li>\r\n <p><code>DispaterServlet</code>把返回的<code>Model</code>传给<code>View</code> ( 视图渲染)。</p>\r\n </li>\r\n <li>\r\n <p>把 <code>View</code> 返回给浏览器。</p>\r\n </li>\r\n </ol>\r\n <h1 id=\"spring中用到了哪些设计模式\">Spring中用到了哪些设计模式?</h1>\r\n <ul>\r\n <li>工厂设计模式: Spring使用工厂模式通过<code>BeanFactory</code>、<code>ApplicationContext</code> 创建bean对象。</li>\r\n <li>代理设计模式: Spring AOP功能的实现。</li>\r\n <li>单例设计模式: Spring中的Bean默认都是单例的。</li>\r\n <li>包装器设计模式:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。</li>\r\n <li>观察者模式: Spring事件驱动模型就是观察者模式很经典的一一个应用。</li>\r\n <li>适配器模式:Spring AOP的增强或通知(Advice)使用到了适配器模式、Spring MVC中也是用到了适配器模式适配Controller。</li>\r\n </ul>\r\n <h1 id=\"spring-事务\">Spring 事务</h1>\r\n <h2 id=\"spring-事务管理的方式\">Spring 事务管理的方式</h2>\r\n <ol>\r\n <li>编程式事务,在代码中硬编码(不推荐)</li>\r\n <li>声明式事务,在配置文件中配置(推荐使用)\r\n <ul>\r\n <li>基于 XML 的声明式事务</li>\r\n <li>基于注解的声明式事务</li>\r\n </ul>\r\n </li>\r\n </ol>\r\n <h2 id=\"spring-事务中的隔离级别\">Spring 事务中的隔离级别</h2>\r\n <p><strong>TransactionDefinition 接口中定义了五个表示隔离级别的常量:</strong></p>\r\n <ul>\r\n <li><strong>TransactionDefinition.ISOLATION_DEFAULT:</strong> 使用后端数据库默认的隔离级别,Mysql 默认采用的 REPEATABLE_READ隔离级别 Oracle 默认采用的 READ_COMMITTED隔离级别.</li>\r\n <li><strong>TransactionDefinition.ISOLATION_READ_UNCOMMITTED:</strong> 最低的隔离级别,允许读取尚未提交的数据变更,<strong>可能会导致脏读、幻读或不可重复读</strong></li>\r\n <li><strong>TransactionDefinition.ISOLATION_READ_COMMITTED:</strong> 允许读取并发事务已经提交的数据,<strong>可以阻止脏读,但是幻读或不可重复读仍有可能发生</strong></li>\r\n <li><strong>TransactionDefinition.ISOLATION_REPEATABLE_READ:</strong> 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,<strong>可以阻止脏读和不可重复读,但幻读仍有可能发生。</strong></li>\r\n <li><strong>TransactionDefinition.ISOLATION_SERIALIZABLE:</strong> 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,<strong>该级别可以防止脏读、不可重复读以及幻读</strong>。但是这将严重影响程序的性能。通常情况下也不会用到该级别。</li>\r\n </ul>\r\n <h2 id=\"spring-事务中的事务传播行为\">Spring 事务中的事务传播行为</h2>\r\n <p><strong>支持当前事务的情况:</strong></p>\r\n <ul>\r\n <li>\r\n <p><strong>TransactionDefinition.PROPAGATION_REQUIRED:</strong> 如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。</p>\r\n </li>\r\n <li>\r\n <p><strong>TransactionDefinition.PROPAGATION_SUPPORTS:</strong> 如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。</p>\r\n </li>\r\n <li>\r\n <p><strong>TransactionDefinition.PROPAGATION_MANDATORY:</strong> 如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。(mandatory:强制性)</p>\r\n </li>\r\n </ul>\r\n <p><strong>不支持当前事务的情况:</strong></p>\r\n <ul>\r\n <li><strong>TransactionDefinition.PROPAGATION_REQUIRES_NEW:</strong> 创建一个新的事务,如果当前存在事务,则把当前事务挂起。</li>\r\n <li><strong>TransactionDefinition.PROPAGATION_NOT_SUPPORTED:</strong> 以非事务方式运行,如果当前存在事务,则把当前事务挂起。</li>\r\n <li><strong>TransactionDefinition.PROPAGATION_NEVER:</strong> 以非事务方式运行,如果当前存在事务,则抛出异常。</li>\r\n </ul>\r\n <p><strong>其他情况:</strong></p>\r\n <ul>\r\n <li><strong>TransactionDefinition.PROPAGATION_NESTED:</strong> 如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。</li>\r\n </ul>\r\n <h2 id=\"transactionalrollbackfor--exceptionclass注解\">@Transactional(rollbackFor = Exception.class)注解</h2>\r\n <p>我们知道:Exception分为运行时异常RuntimeException和非运行时异常。事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。</p>\r\n <p>当<code>@Transactional</code>注解作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。如果类或者方法加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。</p>\r\n <p>在<code>@Transactional</code>注解中如果不配置<code>rollbackFor</code>属性,那么事物只会在遇到<code>RuntimeException</code>的时候才会回滚,加上<code>rollbackFor=Exception.class</code>,可以让事物在遇到非运行时异常时也回滚。</p>\r\n <h1 id=\"jpa\">JPA</h1>\r\n <p>假设我们有下面这个类:</p>\r\n <div class=\"code-toolbar\"><pre class=\"line-numbers language-java\"><code class=\" language-java\"><span class=\"token annotation punctuation\">@Entity</span><span class=\"token punctuation\">(</span>name<span class=\"token operator\">=</span><span class=\"token string\">\"USER\"</span><span class=\"token punctuation\">)</span>\r\n <span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">User</span> <span class=\"token punctuation\">{</span>\r\n <span class=\"token annotation punctuation\">@Id</span>\r\n <span class=\"token annotation punctuation\">@GeneratedValue</span><span class=\"token punctuation\">(</span>strategy <span class=\"token operator\">=</span> <span class=\"token class-name\">GenerationType</span><span class=\"token punctuation\">.</span>AUTO<span class=\"token punctuation\">)</span>\r\n <span class=\"token annotation punctuation\">@Column</span><span class=\"token punctuation\">(</span>name <span class=\"token operator\">=</span> <span class=\"token string\">\"ID\"</span><span class=\"token punctuation\">)</span>\r\n <span class=\"token keyword\">private</span> <span class=\"token class-name\">Long</span> id<span class=\"token punctuation\">;</span>\r\n \r\n <span class=\"token annotation punctuation\">@Column</span><span class=\"token punctuation\">(</span>name<span class=\"token operator\">=</span><span class=\"token string\">\"USERNAME\"</span><span class=\"token punctuation\">)</span>\r\n <span class=\"token keyword\">private</span> <span class=\"token class-name\">String</span> username<span class=\"token punctuation\">;</span>\r\n \r\n <span class=\"token annotation punctuation\">@Column</span><span class=\"token punctuation\">(</span>name<span class=\"token operator\">=</span><span class=\"token string\">\"PASSWORD\"</span><span class=\"token punctuation\">)</span>\r\n <span class=\"token keyword\">private</span> <span class=\"token class-name\">String</span> password<span class=\"token punctuation\">;</span>\r\n \r\n <span class=\"token keyword\">private</span> <span class=\"token class-name\">String</span> secrect<span class=\"token punctuation\">;</span>\r\n <span class=\"token punctuation\">}</span>\r\n <span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><div class=\"toolbar\"><div class=\"toolbar-item\"><span>Java</span></div><div class=\"toolbar-item\"><button>Copy</button></div></div></div>\r\n <p>如果我们想让<code>secrect</code> 这个字段不被持久化,也就是不被数据库存储怎么办?我们可以采用下面几种方法:</p>\r\n <div class=\"code-toolbar\"><pre class=\"line-numbers language-java\"><code class=\" language-java\"><span class=\"token keyword\">static</span> <span class=\"token class-name\">String</span> transient1<span class=\"token punctuation\">;</span> <span class=\"token comment\">// not persistent because of static</span>\r\n\r\n <span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> transient2 <span class=\"token operator\">=</span> “<span class=\"token class-name\">Satish</span>”<span class=\"token punctuation\">;</span> <span class=\"token comment\">// not persistent because of final</span>\r\n\r\n <span class=\"token keyword\">transient</span> <span class=\"token class-name\">String</span> transient3<span class=\"token punctuation\">;</span> <span class=\"token comment\">// not persistent because of transient</span>\r\n\r\n <span class=\"token annotation punctuation\">@Transient</span>\r\n <span class=\"token class-name\">String</span> transient4<span class=\"token punctuation\">;</span> <span class=\"token comment\">// not persistent because of @Transient</span>\r\n <span aria-hidden=\"true\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><div class=\"toolbar\"><div class=\"toolbar-item\"><span>Java</span></div><div class=\"toolbar-item\"><button>Copy</button></div></div></div>\r\n <p>个人比较喜欢注解方式。</p>', 1, 'java');
INSERT INTO `t_blog` VALUES (40, '大学必须掌握的软件基础课程', ' 大学软件专业有很多课程,有些学生搞不清哪些是重点,以下是笔者根据多年经验,认真很重要的课程罗列下:1,C语言 很重要,作为学编程的入门语言,也是众多流行编程语言之父。2,数据结构和算法很重要,以后深入理解一些东西有帮助,即使是Java把很多数据结构都进行了封装,但是学习本课程,可以对性能有深入理解;3,计', '2020-08-03 12:41:52', 41, 0, '<p><img src=\"http://img.baidu.com/hi/jx2/j_0013.gif\"/>&nbsp;大学软件专业有很多课程,有些学生搞不清哪些是重点,以下是笔者根据多年经验,认真很重要的课程罗列下:</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>1,C语言 &nbsp;</strong></span></p><p>很重要,作为学编程的入门语言,也是众多流行编程语言之父。</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>2,数据结构和算法</strong></span></p><p>很重要,以后深入理解一些东西有帮助,即使是Java把很多数据结构都进行了封装,但是学习本课程,可以对性能有深入理解;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>3,计算机组成原理</strong></span></p><p>一般,学习一下;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>4,编译原理</strong></span></p><p>一般,学习一下;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>5,数据库原理</strong></span></p><p>很重要,对以后系统的数据库设计有帮助,站的层次高;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>6,操作系统原理</strong></span></p><p>很重要,对以后技术提供,和层次有帮助;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>7,计算机网络</strong></span></p><p>一般,学习一下;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>8,软件工程</strong></span></p><p>非常重要,对整个软件开发体系的熟悉,直接可以影响到一个技术人员的职业生涯;</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong>9,计算机英语</strong></span></p><p>非常重要,有一些屌丝不重视,这个真的很重要,以后学习一些新技术的时候,有时候中文资源比较少,这时候学习,基本是直接看官方英文文档,假如英语不行,会很苦逼;</p><p><br/></p><p><strong><span style=\"color: rgb(255, 0, 0);\">10,英语</span></strong></p><p>非常重要,这个和上面的计算机英语有区别,计算机英语主要是一些专业词汇的中文专业翻译;而英语的话,是更加广泛的概念,最少要达到4级,最好6级。大学时候通读基本英文技术书籍,我推荐 Head First系列,以及Thining in Java;</p><p><br/></p><p>以上是我认为比较重要的10个课程。大家可以参考下。。可以有遗漏,大家可以评论留言。讨论交流。</p><p><br/></p><p><span style=\"color: rgb(255, 0, 0);\"><strong><br/></strong></span></p>', 4, '大学');
INSERT INTO `t_blog` VALUES (41, '大学里应该掌握的两个能力', ' 根据我的经验,我总结了下,大学里掌握以下两种,毕业的时候,用人单位比较喜欢;第一种能力,自学能力;所谓自学能力,顾名思义,就是自我学习知识,技术的能力,这种能力,人与人之间的差距有大,就像有的人毕业能拿13K,有的人只能拿3K;这种能力如何培养呢?根据我的经验,没有捷径,就是多读书,多思考,多实践,还有就', '2020-08-05 13:14:53', 57, 1, '<p><br/></p><p><img src=\"http://img.baidu.com/hi/jx2/j_0003.gif\"/> &nbsp;根据我的经验,我总结了下,大学里掌握以下两种,毕业的时候,用人单位比较喜欢;</p><p><br/></p><p><strong><span style=\"color: rgb(255, 0, 0);\">第一种能力,自学能力;</span></strong></p><p>所谓自学能力,顾名思义,就是自我学习知识,技术的能力,这种能力,人与人之间的差距有大,就像有的人毕业能拿13K,有的人只能拿3K;</p><p>这种能力如何培养呢?</p><p>根据我的经验,没有捷径,就是多读书,多思考,多实践,还有就是稍微多做点笔记,多总结;</p><p>很多人自学能力差,大多数原因不是笨,是读书少,见识少。读书少,基础差,想学点新东西都吃力,底子问题;</p><p>学习方法方面,我有些心得;</p><p>有些二货拿到书,直接从头读到尾,而且不允许自己有遗漏,这个是一种效率很底下的学习方法;</p><p>我的建议如下:</p><p>第一:拿到一本书,先自己想想,是不是自己需要的书,网上多查查,这本书好不好,书的人写的,作者有牛逼的,也有比较渣;</p><p>第二:决定看一本书的时候,一定要先看目录大纲,把目录好好看看,这本书讲啥,章节的划分;然后脑海里有大体映像之后,再看具体章节;说简单点,就是先总后分;</p><p>第三:学习的时候,一定要做笔记,写总结;这样才会有提高;最好是写到自己的博客里;</p><p><br/></p><p><br/></p><p><strong><span style=\"color: rgb(255, 0, 0);\">第二种能力,分析问题和解决问题的能力;</span></strong></p><p>第二种能力,很关键,尤其是搞开发的人,这种能力直接关系到自己的前途;</p><p>比如组长或者项目经理给你一个需求,让你开发出来,我举个具体的例子,组长让你开发一个功能,从数据库取数据库,生成word,并且导出;</p><p>有些人一看这功能,顿时晕了,自己没搞过,老师没教过。无从下手。顿时感觉人生好迷茫;</p><p>这时候就是体现一个人分析问题和解决问题的能力了;</p><p>正常分析过程是这样的,首先是查询数据,然后生成一个word,页面请求,返回word文件流;这里涉及到生成word,可以通过百度关键字 java生成word;</p><p>可以看到有很多的技术方案,这时候,你再百度具体的方案的比较,当然也可以论坛,群里交流。比如velocity freemarker;找到方案后,就是学习这个技术,</p><p>这个就是上面的自学能力的体现,如何快速入门掌握,当然,这种简单的技术,直接搞点demo,运行下,很容易上手;不需要看书;</p><p>如何这种培养能力呢?</p><p>没有捷径,就是要多读书,多学习,多思考,以及最重要,多实践,多搞点小项目,搞的时候会遇到很多问题,设计问题,调试问题,技术方案问题等等;</p><p>遇到问题,解决问题。能力就是这样慢慢提高的。不是什么一下子就变成大神,除非你在做梦;<br/></p><p><br/></p><p><img src=\"http://img.baidu.com/hi/jx2/j_0013.gif\"/>加油吧。骚年们!</p><p><br/></p>', 4, '大学');
INSERT INTO `t_blog` VALUES (42, 'Mysql中文乱码问题解决', '有些学员经常遇到 项目jdbc获取数据库数据,中文乱码;这里给出一些解决方案:第一种,修改Mysql数据库编码,改成utf-8,默认是latin1 (推荐); 如图,找到mysql安装,点mysql实例配置 一直点next知道下面这个界面:记住,前面那个圈 一点要点。。下拉框选utf8继续next直到:写你', '2020-08-01 13:29:33', 12, 0, '<p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">有些学员经常遇到 项目jdbc获取数据库数据,中文乱码;</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">这里给出一些解决方案:</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><span style=\"color: rgb(255, 0, 0);\">第一种,修改Mysql数据库编码,改成utf-8,默认是latin1 (推荐);</span></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img alt=\"QQ鍥剧墖20160202132103.png\" src=\"/static/userImages/20160202/1454390480343030776.png\" title=\"1454390480343030776.png\"/> 如图,找到mysql安装,点mysql实例配置</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img src=\"/static/userImages/20160202/1454390537171022264.jpg\" alt=\"1454390537171022264.jpg\"/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">&nbsp;</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">&nbsp;一直点next知道下面这个界面:</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img alt=\"QQ鍥剧墖20160202132310.png\" src=\"/static/userImages/20160202/1454390616812058607.png\" title=\"1454390616812058607.png\"/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">记住,前面那个圈 一点要点。。下拉框选utf8</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">继续next直到:</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img alt=\"QQ鍥剧墖20160202132431.png\" src=\"/static/userImages/20160202/1454390692687028654.png\" title=\"1454390692687028654.png\"/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">写你原来的密码继续,然后继续Next:</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img alt=\"QQ鍥剧墖20160202132517.png\" src=\"/static/userImages/20160202/1454390731515038389.png\" title=\"1454390731515038389.png\"/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">点击 执行</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><img alt=\"QQ鍥剧墖20160202132618.png\" src=\"/static/userImages/20160202/1454390793796097934.png\" title=\"1454390793796097934.png\"/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">这样就OK了;</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">这个执行完。记得要把原来导入的项目数据库删除,重新的导入下即可;<br/></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><br/><span style=\"color: rgb(255, 0, 0);\"></span></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\"><span style=\"color: rgb(255, 0, 0);\">第二种,修改jdbc请求url 指定编码 (不推荐)<br/></span></p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">在jdbc url后面 加上 ?useUnicode=true&amp;characterEncoding=UTF8 指定下编码;</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">假如是在xml配置文件里 要转义下 搞成 ?useUnicode=true&amp;amp;characterEncoding=UTF-8 ;</p><p style=\"margin: 5px 0px; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;\">比如在spring配置文件里:</p><pre class=\"brush:xml;toolbar:false\">&lt;!--&nbsp;配置数据源&nbsp;--&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&quot;dataSource&quot;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class=&quot;com.alibaba.druid.pool.DruidDataSource&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&quot;url&quot;&nbsp;value=&quot;jdbc:mysql://localhost:3306/db_blog?useUnicode=true&amp;amp;characterEncoding=UTF-8&quot;/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&quot;username&quot;&nbsp;value=&quot;root&quot;/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&quot;password&quot;&nbsp;value=&quot;123456&quot;/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;</pre><p><br/></p><p>推荐第一种;</p><p><br/></p>', 2, 'mysql 乱码');
INSERT INTO `t_blog` VALUES (45, 'shiro介绍以及推荐视频教程', 'shiro是apache提供的强大而灵活的开源安全框架,它主要用来处理身份认证,授权,企业会话管理和加密。shiro功能:用户验证、用户执行访问权限控制、在任何环境下使用session API,如cs程序。可以使用多数据源如同时使用oracle、mysql。单点登录(sso)支持。remember me服务。', '2018-12-01 17:00:30', 15, 0, '<p>shiro是apache提供的强大而灵活的开源安全框架,它主要用来处理身份认证,授权,企业会话管理和加密。</p><p>shiro功能:用户验证、用户执行访问权限控制、在任何环境下使用session API,如cs程序。可以使用多数据源如同时使用oracle、mysql。单点登录(sso)支持。remember me服务。</p><p><br/></p><p>推荐视频教程 一头扎进shiro&nbsp;</p><p>课程目录:<span class=\"Apple-tab-span\" style=\"white-space: pre;\"> </span><a href=\"http://www.java1234.com/zy032.html\" target=\"_blank\" title=\"http://www.java1234.com/zy032.html\">http://www.java1234.com/zy032.html</a><span class=\"Apple-tab-span\" style=\"white-space: pre;\"> </span></p><p>百度云打包下载: &nbsp;<a href=\"http://pan.baidu.com/s/1ntEifgt\" target=\"_blank\" title=\"http://pan.baidu.com/s/1ntEifgt\">http://pan.baidu.com/s/1ntEifgt</a></p>', 7, 'shiro java');
INSERT INTO `t_blog` VALUES (48, '百度云资源,是程序员们的发家致富一块肥肉', ' 百度云在前两年的“云大战”中,最终获胜,当年各种云盘,相互厮杀,有技术方面的,有公关方面的原因,最终还是百度云大获全胜; 百度云经过几年的发展,逐渐成熟,性能稳定。开始的时候是不考虑盈利的,无广告。一直花钱投入,立志把这个云技术项目做好。时间证明了一切,百度云是一个优秀的,用户量最大的,资源最多,并且处', '2019-12-01 18:49:15', 19, 0, '<p>&nbsp; 百度云在前两年的“云大战”中,最终获胜,当年各种云盘,相互厮杀,有技术方面的,有公关方面的原因,最终还是百度云大获全胜;</p><p>&nbsp; 百度云经过几年的发展,逐渐成熟,性能稳定。开始的时候是不考虑盈利的,无广告。一直花钱投入,立志把这个云技术项目做好。时间证明了一切,百度云是一个优秀的,用户量最大的,资源最多,</p><p>并且处理违法信息的手段都是成熟的。</p><p>&nbsp; 大家看了标题也许有疑问,“百度云资源,是程序员们的发家致富一块肥肉” 根本原因是百度云拥有海量的用户分享的资源, 但为什么是程序员的肥肉呢。据本人观察,中国至少有500家网站吃到百度云这块肥肉,一种一家就是我,<a href=\"http://pan.java1234.com/\" target=\"_blank\" title=\"http://pan.java1234.com/\">http://pan.java1234.com/</a></p><p>我这个项目,主要是利用谷歌自定义搜索,来搜索用户需要的资源。日IP 2万左右,但是钱赚得不多。</p><p>&nbsp;下面我来谈谈如何利用百度云来赚钱,这里只针对程序员,因为只有程序员有技术来实现。说简单点,就是百度云的海量资源,程序员们可以看作是海量的页面,可以拿过来,搞成自己的资源页面。这样自己搞的站点,就拥有了海量的页面,只要seo搞得还行,一天搞个几万个流量,甚至几十万流量都没问题。然后挂google广告,百度联盟广告,我看到过类似网站,成功申请到谷歌广告,百度联盟广告的。</p><p>&nbsp;这块蛋糕,以后肯定会被越来越多的程序员看重,并且分享。但是我个人觉得,这块蛋糕非常大,大得我估计能养活10万个程序员。<img src=\"http://img.baidu.com/hi/jx2/j_0005.gif\"/> 当然有些人觉得我吹牛逼,其实我说的还是保守的值。</p><p>&nbsp;下面我来分析下,如何来搞这个项目 要用到哪些技术,传统的php ,asp.net,jsp 都可以来实现这项目。我自己也去看了人家的实现,核心的是采集技术,怎么个采集法呢,不是随便瞎搞的,一条比较好的方法是先去采集百度云分享达人的帐号,然后挨个的采集他们的分享资源。就是搞这个项目,说实话,要花不少时间,就是在采集资源这块。我估计有不少程序员是全职搞这个项目的,我上次看到几个,根据流量和广告。我估计他们一个月至少有2,3万。流量很大。采集到数据后,然后就是显示,这个再简单不过了。作为程序员,如果连这个都不会,那只能称技术员了。</p><p>&nbsp;&nbsp;</p><p>&nbsp; 好了,今天就把这个牛逼蛋糕介绍到这里,希望大家看到我这个文章,假如技术上满足条件,可以试着业余先搞搞。或许你从此屌炸天了。</p><p><br/></p><p><img src=\"/static/userImages/20160204/1454582940339078791.jpg\" title=\"1454582940339078791.jpg\" alt=\"QQ鎴浘20160204184853.jpg\"/></p><p><br/></p><p><br/></p>', 4, '百度云 赚钱');
INSERT INTO `t_blog` VALUES (50, '使用Jsoup解析出html中的img元素', 'jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。博客项目有个需求。展示博客列表的时候,显示一些博客里的图片,增强用户体验;这里的话,有两种方案,第一种 是在后台处理,把', '2020-04-01 12:52:43', 22, 0, '<p><span style=\"color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px; background-color: rgb(255, 255, 255);\">jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。</span></p><p><img src=\"/static/userImages/20160214/1455425736515085353.jpg\" title=\"1455425736515085353.jpg\" alt=\"QQ鎴浘20160214125257.jpg\"/></p><p><span style=\"color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px; background-color: rgb(255, 255, 255);\"><br/></span></p><p><span style=\"color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; text-indent: 28px; background-color: rgb(255, 255, 255);\">博客项目有个需求。展示博客列表的时候,显示一些博客里的图片,增强用户体验;</span></p><p>这里的话,有两种方案,第一种 是在后台处理,把解析好的图片存集合里,然后转发到页面,遍历显示;还有一种是把博客内容送到页面,用Jquery处理。</p><p>我考虑了下。还是在后台处理好比较好,因为项目本身用到了 cnd加速,所以在前端处理反而影响效率。</p><p>在后端处理,可以使用Jsoup,很方便;</p><p><br/></p><p>Jsoup主页:<a href=\"http://jsoup.org/\" target=\"_blank\" title=\"http://jsoup.org/\">http://jsoup.org/</a></p><p><br/></p><p>maven地址:</p><pre class=\"brush:xml;toolbar:false\">&lt;dependency&gt;\n &lt;groupId&gt;org.jsoup&lt;/groupId&gt;\n &lt;artifactId&gt;jsoup&lt;/artifactId&gt;\n &lt;version&gt;1.8.3&lt;/version&gt;\n &lt;/dependency&gt;</pre><p><br/></p><p><br/></p><p>这里给下关键代码:</p><pre class=\"brush:java;toolbar:false\">for(Blog&nbsp;blog:blogList){\n List&lt;String&gt;&nbsp;imagesList=blog.getImagesList();\n String&nbsp;blogInfo=blog.getContent();\n Document&nbsp;doc=Jsoup.parse(blogInfo);\n Elements&nbsp;jpgs=doc.select(&quot;img[src$=.jpg]&quot;);&nbsp;// 查找扩展名是jpg的图片\n for(int&nbsp;i=0;i&lt;jpgs.size();i++){\n Element&nbsp;jpg=jpgs.get(i);\n imagesList.add(jpg.toString());\n if(i==2){\n break;\n }\n }\n }</pre><p><br/></p><p>主要涉及到一些选择器。不难。大家可以参考下官方文档。或者百度很容易上手。</p><p><br/></p>', 10, 'jsoup java');
INSERT INTO `t_blog` VALUES (53, 'CXF处理JavaBean以及复合类型', '前面讲的是处理简单类型,今天这里来讲下CXF处理JavaBean以及复合类型,比如集合;这里实例是客户端传一个JavaBean,服务器端返回集合类型;在原来的项目实例基础上,我们先创建一个实体类User:package com.java1234.entity;/** * 用户实体类 * @author Adm', '2019-08-01 10:31:19', 10, 0, '<p>前面讲的是处理简单类型,今天这里来讲下CXF处理JavaBean以及复合类型,比如集合;</p><p><br/></p><p>这里实例是客户端传一个JavaBean,服务器端返回集合类型;</p><p><br/></p><p>在原来的项目实例基础上,我们先创建一个实体类User:<br/></p><pre class=\"brush:java;toolbar:false\">package&nbsp;com.java1234.entity;\n\n/**\n&nbsp;*&nbsp;用户实体类\n&nbsp;*&nbsp;@author&nbsp;Administrator\n&nbsp;*\n&nbsp;*/\npublic&nbsp;class&nbsp;User&nbsp;{\n\n private&nbsp;Integer&nbsp;id;&nbsp;//&nbsp;编号\n private&nbsp;String&nbsp;userName;&nbsp;//&nbsp;用户名\n private&nbsp;String&nbsp;password;&nbsp;//&nbsp;密码\n \n public&nbsp;Integer&nbsp;getId()&nbsp;{\n return&nbsp;id;\n }\n public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;{\n this.id&nbsp;=&nbsp;id;\n }\n public&nbsp;String&nbsp;getUserName()&nbsp;{\n return&nbsp;userName;\n }\n public&nbsp;void&nbsp;setUserName(String&nbsp;userName)&nbsp;{\n this.userName&nbsp;=&nbsp;userName;\n }\n public&nbsp;String&nbsp;getPassword()&nbsp;{\n return&nbsp;password;\n }\n public&nbsp;void&nbsp;setPassword(String&nbsp;password)&nbsp;{\n this.password&nbsp;=&nbsp;password;\n }\n \n \n}</pre><p><br/></p><p>再创建一个Role实体类:</p><pre class=\"brush:java;toolbar:false\">package&nbsp;com.java1234.entity;\n\n/**\n&nbsp;*&nbsp;角色实体\n&nbsp;*&nbsp;@author&nbsp;Administrator\n&nbsp;*\n&nbsp;*/\npublic&nbsp;class&nbsp;Role&nbsp;{\n\n private&nbsp;Integer&nbsp;id;&nbsp;//&nbsp;编号\n private&nbsp;String&nbsp;roleName;&nbsp;//&nbsp;角色名称\n \n \n \n public&nbsp;Role()&nbsp;{\n super();\n //&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub\n }\n \n \n \n public&nbsp;Role(Integer&nbsp;id,&nbsp;String&nbsp;roleName)&nbsp;{\n super();\n this.id&nbsp;=&nbsp;id;\n this.roleName&nbsp;=&nbsp;roleName;\n }\n\n\n\n public&nbsp;Integer&nbsp;getId()&nbsp;{\n return&nbsp;id;\n }\n public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;{\n this.id&nbsp;=&nbsp;id;\n }\n public&nbsp;String&nbsp;getRoleName()&nbsp;{\n return&nbsp;roleName;\n }\n public&nbsp;void&nbsp;setRoleName(String&nbsp;roleName)&nbsp;{\n this.roleName&nbsp;=&nbsp;roleName;\n }\n \n \n}</pre><p><br/></p><p><br/></p><p>然后HelloWorld再加一个接口方法getRoleByUser,通过用户查找角色:<br/></p><pre class=\"brush:java;toolbar:false\">package&nbsp;com.java1234.webservice;\n\nimport&nbsp;java.util.List;\n\nimport&nbsp;javax.jws.WebService;\n\nimport&nbsp;com.java1234.entity.Role;\nimport&nbsp;com.java1234.entity.User;\n\n@WebService\npublic&nbsp;interface&nbsp;HelloWorld&nbsp;{\n\n public&nbsp;String&nbsp;say(String&nbsp;str);\n \n public&nbsp;List&lt;Role&gt;&nbsp;getRoleByUser(User&nbsp;user);\n}</pre><p><br/></p><p><br/></p><p>然后HelloWorld接口实现类 HelloWorldImpl写下新增的方法的具体实现,我们这里写死,模拟下即可:<br/></p><pre class=\"brush:java;toolbar:false\">package&nbsp;com.java1234.webservice.impl;\n\nimport&nbsp;java.util.ArrayList;\nimport&nbsp;java.util.List;\n\nimport&nbsp;javax.jws.WebService;\n\nimport&nbsp;com.java1234.entity.Role;\nimport&nbsp;com.java1234.entity.User;\nimport&nbsp;com.java1234.webservice.HelloWorld;\n\n@WebService\npublic&nbsp;class&nbsp;HelloWorldImpl&nbsp;implements&nbsp;HelloWorld{\n\n public&nbsp;String&nbsp;say(String&nbsp;str)&nbsp;{\n return&nbsp;&quot;Hello&nbsp;&quot;+str;\n }\n\n public&nbsp;List&lt;Role&gt;&nbsp;getRoleByUser(User&nbsp;user)&nbsp;{\n List&lt;Role&gt;&nbsp;roleList=new&nbsp;ArrayList&lt;Role&gt;();\n //&nbsp;模拟&nbsp;直接写死\n if(user!=null){\n if(user.getUserName().equals(&quot;java1234&quot;)&nbsp;&amp;&amp;&nbsp;user.getPassword().equals(&quot;123456&quot;)){\n roleList.add(new&nbsp;Role(1,&quot;技术总监&quot;));\n roleList.add(new&nbsp;Role(2,&quot;架构师&quot;));\n }else&nbsp;if(user.getUserName().equals(&quot;jack&quot;)&nbsp;&amp;&amp;&nbsp;user.getPassword().equals(&quot;123456&quot;)){\n roleList.add(new&nbsp;Role(3,&quot;程序员&quot;));\n }\n return&nbsp;roleList;\n }else{\n return&nbsp;null; \n }\n \n }\n \n \n\n}</pre><p><br/></p><p>服务端其他地方不用动;<br/></p><p><br/></p><p>下面我们来处理下客户端,和前面讲的一样。我们用wsdl2java工具重新生成代码,这里就不再讲;</p><p><br/></p><p><img src=\"/static/userImages/20160218/1455762437448028677.jpg\" title=\"1455762437448028677.jpg\" alt=\"QQ鎴浘20160218103035.jpg\"/></p><p><br/></p><p>这里我看到,实体类,以及接口实现,代码都生成了。</p><p><br/></p><p>我们改下Client类:</p><pre class=\"brush:java;toolbar:false\">package&nbsp;com.java1234.webservice;\n\nimport&nbsp;java.util.List;\n\npublic&nbsp;class&nbsp;Client&nbsp;{\n\n public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{\n HelloWorldService&nbsp;service=new&nbsp;HelloWorldService();\n HelloWorld&nbsp;helloWorld=service.getHelloWorldPort();\n //System.out.println(helloWorld.say(&quot;java1234&quot;));\n User&nbsp;user=new&nbsp;User();\n user.setUserName(&quot;jack&quot;);\n user.setPassword(&quot;123456&quot;);\n List&lt;Role&gt;&nbsp;roleList=helloWorld.getRoleByUser(user);\n for(Role&nbsp;role:roleList){\n System.out.println(role.getId()+&quot;,&quot;+role.getRoleName());\n }\n }\n}</pre><p><br/></p><p>运行截图:<br/></p><p><img src=\"/static/userImages/20160218/1455762521698070806.jpg\" title=\"1455762521698070806.jpg\" alt=\"QQ鎴浘20160218103159.jpg\"/></p><p><br/></p><p>完整代码:<a href=\"http://pan.baidu.com/s/1c1drMYO\" target=\"_blank\" title=\"http://pan.baidu.com/s/1c1drMYO\">http://pan.baidu.com/s/1c1drMYO</a></p><p><br/></p>', 9, 'webservice cxf');
INSERT INTO `t_blog` VALUES (90, '需要修改的小bug', '(1)、使用GitHub上的一套SpringBoot开源后端系统:(http://47.99.218.99:8080/springboot_v2/admin/login 账号:admin 密码:admin)进行二次改造作为该博客后台使用,原博客后台管理系统太单调。(2)、jsp页面性能差,需要做个redis缓存,提高访问性能。(3)、评论数量,博客文章的评论需要审核通过才可以在博客下面显示。--> 已完成(4)、后台关于博主功能完善。--> 已完成(5)、友情链接单调、需修改。--> 已完成(6)、后台评论信息提示框需完善。--> 已完成(7)、后台修改', '2020-09-21 15:41:18', 154, 1, '<p><br/></p><p><span style=\"background-color: rgb(255, 255, 255);\">(1)、使用GitHub上的一套SpringBoot开源后端系统:(</span><span style=\"text-decoration-line: underline; box-sizing: border-box; background: rgb(255, 255, 255); color: rgb(9, 94, 171); cursor: pointer; overflow-wrap: break-word;\"><a href=\"http://47.99.218.99:8080/springboot_v2/\" style=\"box-sizing: border-box; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; color: rgb(9, 94, 171); cursor: pointer; overflow-wrap: break-word;\">http://47.99.218.99:8080/springboot_v2/</a>admin/login</span><span style=\"background-color: rgb(255, 255, 255);\">&nbsp;账号:admin 密码:admin)进行二次改造作为该博客后台使用,原博客后台管理系统太单调。</span></p><p>(2)、jsp页面性能差,需要做个redis缓存,提高访问性能。</p><p><span style=\"background-color: rgb(146, 208, 80);\"><span style=\"background-color: rgb(255, 255, 255);\">(3)、评论数量,博客文章的评论需要审核通过才可以在博客下面显示。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></span></span></p><p>(4)、后台关于博主功能完善。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></p><p>(5)、友情链接单调、需修改。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></p><p>(6)、后台评论信息提示框需完善。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></p><p>(7)、后台修改密码的js弹窗换成layui弹出窗。--&gt; <span style=\"text-decoration: none; background-color: rgb(146, 208, 80);\">已完成</span></p><p>(8)、后台博客列表中的博客标题修改成可以点击跳转到该博客文章。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></p><p>(9)、写完博客后的内容需截取一段作为摘要,用于前端页面的显示。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\"><span style=\"background-color: rgb(146, 208, 80);\">已完成</span></span></p><p>(10)、后台个人信息的修改,如果未修改图片,则该图片上传为空,需要后台做个判断。<span style=\"background-color: rgb(255, 255, 255);\">--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></span></p><p><span style=\"background-color: rgb(255, 255, 255);\">(11)、前端发表评论,请求后台时的</span><span style=\"background-color: rgb(255, 255, 0);\">模型和视图</span>转发<span style=\"background-color: rgb(255, 255, 255);\">改为Ajax请求,后台只需返回数据,不需要返回视图。--&gt;&nbsp;<span style=\"background-color: rgb(146, 208, 80);\">已完成</span></span></p><p><span style=\"background-color: rgb(255, 255, 255);\"></span><br/></p>', 5, 'bug');
INSERT INTO `t_blog` VALUES (95, 'SpringCloud微服务组件', ' Spring Cloud是一系列框架的 有序集合 。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消', '2021-02-04 03:20:23', 0, 0, '<h2> <span style=\"color: rgb(51, 51, 51);\">Spring Cloud是一系列框架的</span> <a href=\"https://baike.baidu.com/item/%E6%9C%89%E5%BA%8F%E9%9B%86%E5%90%88/994839\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(19, 110, 194);\">有序集合</a> <span style=\"color: rgb(51, 51, 51);\">。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。</span></h2>', 1, 'Eureka、Zookeeper、Nacos');
INSERT INTO `t_blog` VALUES (117, 'SpringCloud', ' Spring Cloud是一系列框架的 有序集合 。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消', '2021-02-04 07:36:40', 0, 0, '<h3> <span style=\"color: rgb(51, 51, 51);\">Spring Cloud是一系列框架的</span> <a href=\"https://baike.baidu.com/item/%E6%9C%89%E5%BA%8F%E9%9B%86%E5%90%88/994839\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"color: rgb(19, 110, 194);\">有序集合</a> <span style=\"color: rgb(51, 51, 51);\">。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。</span></h3>', 1, 'Eureka、Zookeeper、Nacos');
COMMIT;
-- ----------------------------
-- Table structure for t_blogger
-- ----------------------------
DROP TABLE IF EXISTS `t_blogger`;
CREATE TABLE `t_blogger` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`profile` text CHARACTER SET utf8 COLLATE utf8_general_ci,
`nickName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`sign` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`imageName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`roles` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_blogger
-- ----------------------------
BEGIN;
INSERT INTO `t_blogger` VALUES (1, 'java1234', '70f57208b804bd90d51fdac84afe6472', 'xx', 'Java1234_小锋2', '知识改变命运,技术改变世界2', 'xiaofeng.jpg', '普通用户');
INSERT INTO `t_blogger` VALUES (2, 'zhf', 'ef7892b96f93fe4644180359922ad433', '捕获.PNG', '小杰', '写代码是热爱,写到世界充满爱!', '1.png', '管理员');
INSERT INTO `t_blogger` VALUES (3, 'test', 'cb35360d64d80bf9210e0cff1ad5079e', 'zhfInfo13.PNG', '游客', '知识改变命运,技术改变世界', '1.png', '管理员');
COMMIT;
-- ----------------------------
-- Table structure for t_blogtype
-- ----------------------------
DROP TABLE IF EXISTS `t_blogtype`;
CREATE TABLE `t_blogtype` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`typeName` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`orderNo` int(11) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_blogtype
-- ----------------------------
BEGIN;
INSERT INTO `t_blogtype` VALUES (1, 'Spring', 1);
INSERT INTO `t_blogtype` VALUES (2, 'Mysql', 2);
INSERT INTO `t_blogtype` VALUES (3, 'Tomcat', 3);
INSERT INTO `t_blogtype` VALUES (4, 'IT之路', 44);
INSERT INTO `t_blogtype` VALUES (5, '随心生活', 7);
INSERT INTO `t_blogtype` VALUES (7, 'shiro', 4);
INSERT INTO `t_blogtype` VALUES (9, 'webservice', 5);
INSERT INTO `t_blogtype` VALUES (10, 'jsoup5', 4);
INSERT INTO `t_blogtype` VALUES (15, 'mybatis-plus', 8);
INSERT INTO `t_blogtype` VALUES (16, 'Eureka', 9);
INSERT INTO `t_blogtype` VALUES (17, 'Consul', 10);
INSERT INTO `t_blogtype` VALUES (20, 'OpenFeign', 11);
COMMIT;
-- ----------------------------
-- Table structure for t_click
-- ----------------------------
DROP TABLE IF EXISTS `t_click`;
CREATE TABLE `t_click` (
`click` int(11) NOT NULL,
PRIMARY KEY (`click`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_click
-- ----------------------------
BEGIN;
INSERT INTO `t_click` VALUES (343);
COMMIT;
-- ----------------------------
-- Table structure for t_comment
-- ----------------------------
DROP TABLE IF EXISTS `t_comment`;
CREATE TABLE `t_comment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`blogId` int(11) DEFAULT NULL,
`date` datetime DEFAULT NULL,
`state` int(11) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_comment
-- ----------------------------
BEGIN;
INSERT INTO `t_comment` VALUES (25, '牛皮!!!', '113.104.33.182', 90, '2020-09-29 20:10:11', 1);
INSERT INTO `t_comment` VALUES (28, '测试评论!!!', '113.104.33.113', 41, '2020-11-03 16:20:59', 0);
COMMIT;
-- ----------------------------
-- Table structure for t_link
-- ----------------------------
DROP TABLE IF EXISTS `t_link`;
CREATE TABLE `t_link` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`linkName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`linkUrl` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`orderNo` int(11) DEFAULT NULL,
`linkImage` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_link
-- ----------------------------
BEGIN;
INSERT INTO `t_link` VALUES (1, 'Java知识分享网', 'http://www.java1234.com/', 1, '20210104035349.jpg');
INSERT INTO `t_link` VALUES (2, '博客静态网页模板', 'https://github.com/feiyangbeyond/halo-theme-sagiri', 2, '20210104035357.jpg');
INSERT INTO `t_link` VALUES (3, 'Jar包-中央仓库', 'https://mvnrepository.com/', 3, '20210104035408.png');
INSERT INTO `t_link` VALUES (4, '免费logo在线制作', 'http://www.uugai.com/', 4, '20210104035414.jpeg');
INSERT INTO `t_link` VALUES (5, 'EasyUI中文站', 'https://www.jeasyui.cn/', 5, '20210104035420.jpg');
INSERT INTO `t_link` VALUES (6, '河源职业技术学院', 'http://www.hycollege.net', 6, '20210104035425.jpg');
INSERT INTO `t_link` VALUES (8, 'LayUI前端框架', 'https://www.layui.com', 7, '20210104035430.jpg');
COMMIT;
-- ----------------------------
-- Table structure for t_message
-- ----------------------------
DROP TABLE IF EXISTS `t_message`;
CREATE TABLE `t_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`date` date DEFAULT NULL,
`state` int(11) DEFAULT NULL,
`commentName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`sizeUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of t_message
-- ----------------------------
BEGIN;
INSERT INTO `t_message` VALUES (5, 'gfh', '2020-09-29', 1, '小杰', '344473866@qq.com', 'www.zhf943.top/zhf_blog');
INSERT INTO `t_message` VALUES (6, '测试1', '2020-11-03', 1, '朱某', '22222@qq.com', '');
COMMIT;
-- ----------------------------
-- Table structure for upload_file
-- ----------------------------
DROP TABLE IF EXISTS `upload_file`;
CREATE TABLE `upload_file` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` int(11) DEFAULT NULL COMMENT '文件类型',
`url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'URL地址',
`createDate` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=147 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='文件上传';
-- ----------------------------
-- Records of upload_file
-- ----------------------------
BEGIN;
INSERT INTO `upload_file` VALUES (144, 1, '3', '2018-05-25 15:20:04');
INSERT INTO `upload_file` VALUES (145, 1, '2', '2018-05-25 15:20:29');
INSERT INTO `upload_file` VALUES (146, 1, '1', '2018-05-25 15:21:16');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化