SSM 实训笔记 -11- 使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven)

本篇是新建的一个数据库,新建的一个完整项目。

本篇内容:

(1)使用 Spring MVC + JDBC Template 实现数据库查询

(2)实现对数据库信息的筛选、检索功能

(3)分类查询的功能

效果演示:

一、创建数据库

(1)如果没有 Navicat 可以自己手动在命令行建库。

分享一篇文章:Navicat for MySQL 最新版安装与破解 + 报错解决办法

(2)创建 hrdb 数据库,创建 employee 表:

(3)创建 post 表(职位表):

二、创建和配置 Maven Web 项目、

(1)如果不会创建项目请参考:

(!特别提醒,建议项目名及包名和下面的本篇的项目文件名一致)

SSM 实训笔记 -05- 创建 Maven Web 项目 + Tomcat 及目录结构配置

(2)完整项目目录结构:

(3)先创建项目,标记文件夹(java、resources)

(4)使用 Maven 加载依赖包:

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.11</version>
  6. <scope>test</scope>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  9. <dependency>
  10. <groupId>mysql</groupId>
  11. <artifactId>mysql-connector-java</artifactId>
  12. <version>8.0.13</version>
  13. </dependency>
  14. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-jdbc</artifactId>
  18. <version>5.1.3.RELEASE</version>
  19. </dependency>
  20. <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-webmvc</artifactId>
  24. <version>5.1.3.RELEASE</version>
  25. </dependency>
  26. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
  27. <dependency>
  28. <groupId>com.alibaba</groupId>
  29. <artifactId>fastjson</artifactId>
  30. <version>1.2.54</version>
  31. </dependency>
  32. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  33. <dependency>
  34. <groupId>javax.servlet</groupId>
  35. <artifactId>javax.servlet-api</artifactId>
  36. <version>4.0.1</version>
  37. <scope>provided</scope>
  38. </dependency>
  39. </dependencies>

配置 pom 需要导入,我们选择自动导入:

(5)打开配置 web.xml 文件:

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. <context-param>
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>/WEB-INF/applicationContext.xml</param-value>
  9. </context-param>
  10. <listener>
  11. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  12. </listener>
  13. <servlet>
  14. <servlet-name>spring</servlet-name>
  15. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  16. <init-param>
  17. <param-name>contextConfigLocation</param-name>
  18. <param-value>/WEB-INF/springmvc.xml</param-value>
  19. </init-param>
  20. <load-on-startup>1</load-on-startup>
  21. </servlet>
  22. <servlet-mapping>
  23. <servlet-name>spring</servlet-name>
  24. <url-pattern>*.do</url-pattern>
  25. </servlet-mapping>
  26. </web-app>

(6)在 web.xml 文件的目录下,创建 springmvc.xml (建议名称一致):

  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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/cache"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
  7. <context:annotation-config/>
  8. <context:component-scan base-package="com.xpwi.controller"/>
  9. <!--配置 json 消息转换器-->
  10. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
  11. <property name="messageConverters">
  12. <list>
  13. <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"></bean>
  14. </list>
  15. </property>
  16. </bean>
  17. </beans>

(7)同样在 web.xml 文件的目录下,创建 applicationContext.xml (建议名称一致):

  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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  6. <context:annotation-config/>
  7. <context:component-scan base-package="com.xpwi.dao,com.xpwi.service"/>
  8. <!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  9. <property name="locations" value="classpath*:jdbcConfig.properties">
  10. </property>
  11. </bean>-->
  12. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  13. <property name="url" value="jdbc:mysql://localhost:3306/hrdb?serverTimezone=UTC"></property>
  14. <property name="username" value="root"></property>
  15. <property name="password" value="xiaopengwei"></property>
  16. <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
  17. </bean>
  18. <bean id="jdbcTemplage" class="org.springframework.jdbc.core.JdbcTemplate">
  19. <property name="dataSource" ref="dataSource"></property>
  20. </bean>
  21. </beans>

(8)在 resources/jdbc.properties(手动创建的目录,没有直接创建此类的文件的方式,直接新建 file,自己写后缀名即可,内容:

(填写自己创建的数据库的信息)

  1. url=jdbc:mysql://localhost:3306/hrdb?serverTimezone=UTC
  2. username=root
  3. password=xiaopengwei
  4. driverClassName=com.mysql.cj.jdbc.Driver

**(9)在 webapp/node 目录下,安装 jQuery 和 Bootstrap3 **:

步骤:

  • 安装 node.js
  • 在 cmd 进入上述目录
  • 使用:
  1. npm install jquery
  1. npm install bootstrap3

三、项目源代码

(1)index.html 文件:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>查询用户</title>
  6. <link rel="stylesheet" href="node/node_modules/bootstrap3/dist/css/bootstrap.min.css">
  7. <script type="text/javascript" src="node/node_modules/jquery/dist/jquery.js"></script>
  8. <script type="text/javascript" src="node/node_modules/bootstrap3/dist/js/bootstrap.min.js"></script>
  9. <script type="text/javascript">
  10. $(function () {
  11. $.ajax({
  12. url:"findAllPost.do",
  13. //async:false,
  14. method:"get",
  15. dataType:"json",
  16. success:function (data) {
  17. //alert(data);
  18. var str="<option value='0'>未选择</option>";
  19. //var jsonObj = JSON.parse(data);
  20. $.each(data,function (index,row,rs) {
  21. str+="<option value='"+row.id+"'>"+row.post_name+"</option>";
  22. });
  23. $("#input_post").html(str);
  24. },
  25. error:function () {
  26. alert("请求失败");
  27. }
  28. });
  29. });
  30. function doSelect() {
  31. var input_name = $("#input_name").val();
  32. var input_post = $("#input_post").val();
  33. $.ajax({
  34. // url:"http://10.2.21.34:8080/StudentSystem/userServletForAjax",
  35. url:"doSelect.do",
  36. method:"get",
  37. data:{
  38. "emp_name":input_name,
  39. "post_type":input_post
  40. },
  41. dataType:"json",
  42. success:function (data) {
  43. //alert("成功");
  44. var str = "";
  45. $.each(data,function (i,item) {
  46. //对数据库数据进行转换
  47. if (item.post_type == 1) {
  48. item.post_type = "行政助理";
  49. }else if(item.post_type == 2) {
  50. item.post_type = "业务经理";
  51. }else{
  52. item.post_type = "总经理";
  53. };
  54. if (item.emp_sex == 1) {
  55. item.emp_sex = "男";
  56. }else{
  57. item.emp_sex = "女";
  58. };
  59. str+="<tr><td><input type='checkbox' value='"
  60. +item.id+"'></td><td>"
  61. +item.id+"</td><td>"
  62. +item.post_type+"</td><td>"
  63. +item.emp_name+"</td><td>"
  64. +item.emp_sex+"</td><td>"
  65. +item.emp_age+"</td><td>"
  66. +item.emp_depart+"</td><td>"
  67. +item.emp_year+"</td><td>"
  68. +"<a href='javascript:deleteUserById(\""+data.id+"\")' title='删除' onclick='return confirm(\"是否真的删除记录?\")'><span class='glyphicon glyphicon-remove'></span>删除</a></td></tr>";
  69. });
  70. $("#alluser").html(str);
  71. },
  72. error:function () {
  73. alert("服务器请求失败")
  74. }
  75. })
  76. }
  77. </script>
  78. <!--数据展示部分 js -->
  79. <script>
  80. function addUserInfo() {
  81. $.post("deleteUserByIdServlet",{"uname":$("#uname").val(),"role":$("#role").val()},function (data) {
  82. if (data == "true"){
  83. alert("添加成功!");
  84. findAllUser();
  85. } else {
  86. alert("添加失败!");
  87. }
  88. });
  89. }
  90. function showAddModal() {
  91. $("#myModal").modal("show");
  92. }
  93. //删除
  94. function deleteUserById(id) {
  95. $.ajax({
  96. url:"deleteUserByIdServlet",
  97. data:{"id":id},
  98. success:function (result) {
  99. if (result=="true"){
  100. findAllUser();
  101. } else {
  102. alert("删除记录失败!");
  103. }
  104. },error:function () {
  105. alert("访问服务器失败")
  106. }
  107. })
  108. }
  109. //查询
  110. function findAllUser() {
  111. $.ajax({
  112. // url:"http://10.2.21.34:8080/StudentSystem/userServletForAjax",
  113. url:"doFindAllUser.do",
  114. method:"get",
  115. dataType:"json",
  116. success:function (data) {
  117. //alert("成功");
  118. var str = "";
  119. $.each(data,function (i,item) {
  120. //对数据库数据进行转换
  121. if (item.post_type == 1) {
  122. item.post_type = "行政助理";
  123. }else if(item.post_type == 2) {
  124. item.post_type = "部门经理";
  125. }else{
  126. item.post_type = "总经理";
  127. };
  128. if (item.emp_sex == 1) {
  129. item.emp_sex = "男";
  130. }else{
  131. item.emp_sex = "女";
  132. };
  133. str+="<tr><td><input type='checkbox' value='"
  134. +item.id+"'></td><td>"
  135. +item.id+"</td><td>"
  136. +item.post_type+"</td><td>"
  137. +item.emp_name+"</td><td>"
  138. +item.emp_sex+"</td><td>"
  139. +item.emp_age+"</td><td>"
  140. +item.emp_depart+"</td><td>"
  141. +item.emp_year+"</td><td>"
  142. +"<a href='javascript:deleteUserById(\""+data.id+"\")' title='删除' onclick='return confirm(\"是否真的删除记录?\")'><span class='glyphicon glyphicon-remove'></span>删除</a></td></tr>";
  143. });
  144. $("#alluser").html(str);
  145. },
  146. error:function () {
  147. alert("服务器请求失败")
  148. }
  149. })
  150. }
  151. findAllUser();
  152. </script>
  153. </head>
  154. <body>
  155. <div style="width: 80%;margin-left: 10%">
  156. <div class="panel panel-default">
  157. <div class="panel-heading">
  158. <h3 class="text-info">
  159. 雇员信息管理系统
  160. </h3>
  161. </div>
  162. <form name="loginForm">
  163. <div class="panel-body">
  164. 雇员姓名
  165. <input class="form-control" name="input_name" id="input_name" placeholder="请输入姓名"><br>
  166. 雇员职位
  167. <select id="input_post" name="input_post" class="form-control">
  168. <option value="0">请选择</option>
  169. </select>
  170. </div>
  171. <!--查询按钮-->
  172. <a class="btn btn-primary" style="margin-left: 10%" onclick="doSelect()">查询一下</a>
  173. </form>
  174. </div>
  175. </div>
  176. <!--最外层控制-->
  177. <hr>
  178. <!--数据展示部分-->
  179. <div style="width: 80%;margin-left: 10%">
  180. <div class="well" style="height: 70px">
  181. <h3>用户信息</h3>
  182. <!--<a class="btn btn-primary" style="float:right;margin-right: 10%" onclick="showAddModal()"><span class="glyphicon glyphicon-plus"></span>添加</a>-->
  183. </div>
  184. <table class="table table-striped table-hover">
  185. <tr>
  186. <td>全选</td>
  187. <td>雇员编号</td>
  188. <td>雇员职位</td>
  189. <td>雇员姓名</td>
  190. <td>雇员性别</td>
  191. <td>雇员年龄</td>
  192. <td>所属部门</td>
  193. <td>雇员工龄</td>
  194. <td>操作</td>
  195. </tr>
  196. <tbody id="alluser">
  197. </tbody>
  198. </table>
  199. <!-- 按钮触发模态框 -->
  200. <!--<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>-->
  201. <!-- 模态框(Modal) -->
  202. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  203. <div class="modal-dialog">
  204. <div class="modal-content">
  205. <div class="modal-header">
  206. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  207. <h4 class="modal-title" id="myModalLabel">添加用户信息</h4>
  208. </div>
  209. <div class="modal-footer">
  210. <div>
  211. <!--输入框内容-->
  212. <div class="input-group">
  213. <input id="uname" type="text" class="form-control" placeholder="请输入用户名">
  214. <span class="glyphicon glyphicon-user input-group-addon"></span>
  215. </div>
  216. <br>
  217. <select id="role" name="role" class="form-control ">
  218. <option value="">请选择</option>
  219. <option value="admin">管理员</option>
  220. <option value="teacher">教师</option>
  221. <option value="student">学生</option>
  222. </select>
  223. </div>
  224. <br>
  225. <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  226. <button type="button" class="btn btn-primary" onclick="addUserInfo()">添加</button>
  227. </div>
  228. </div><!-- /.modal-content -->
  229. </div><!-- /.modal -->
  230. </div>
  231. </div>
  232. <!--80% 控制-->
  233. </body>
  234. </html>

(2)pojo/UserInfo.java 文件:

  1. package pojo;
  2. import org.springframework.jdbc.core.ResultSetExtractor;
  3. import java.util.List;
  4. import java.util.Map;
  5. public class UserInfo {
  6. private int id;
  7. private int post_type;
  8. private String emp_name;
  9. private int emp_sex;
  10. private int emp_age;
  11. private String emp_depart;
  12. private int emp_year;
  13. public int getId() {
  14. return id;
  15. }
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19. public int getPost_type() {
  20. return post_type;
  21. }
  22. public void setPost_type(int post_type) {
  23. this.post_type = post_type;
  24. }
  25. public String getEmp_name() {
  26. return emp_name;
  27. }
  28. public void setEmp_name(String emp_name) {
  29. this.emp_name = emp_name;
  30. }
  31. public int getEmp_sex() {
  32. return emp_sex;
  33. }
  34. public void setEmp_sex(int emp_sex) {
  35. this.emp_sex = emp_sex;
  36. }
  37. public int getEmp_age() {
  38. return emp_age;
  39. }
  40. public void setEmp_age(int emp_age) {
  41. this.emp_age = emp_age;
  42. }
  43. public String getEmp_depart() {
  44. return emp_depart;
  45. }
  46. public void setEmp_depart(String emp_depart) {
  47. this.emp_depart = emp_depart;
  48. }
  49. public int getEmp_year() {
  50. return emp_year;
  51. }
  52. public void setEmp_year(int emp_year) {
  53. this.emp_year = emp_year;
  54. }
  55. }

(3)service/EmployeeService.java 文件:

  1. package com.xpwi.service;
  2. import com.xpwi.dao.EmployeeDAO;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import java.util.List;
  6. import java.util.Map;
  7. @Service
  8. public class EmployeeService {
  9. @Autowired
  10. EmployeeDAO employeeDAO;
  11. public List<Map<String, Object>> findPost() {
  12. return employeeDAO.findPost();
  13. }
  14. public List<Map<String, Object>> doFindAllUser() {
  15. return employeeDAO.doFindAllUser();
  16. }
  17. public List<Map<String, Object>> doSelect(String emp_name, int post_type) {
  18. return employeeDAO.doSelect(emp_name,post_type);
  19. }
  20. }

(4)dao/Employee.java 文件:

  1. package com.xpwi.dao;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import org.springframework.jdbc.core.ResultSetExtractor;
  6. import org.springframework.stereotype.Repository;
  7. import java.util.List;
  8. import java.util.Map;
  9. @Repository
  10. public class EmployeeDAO {
  11. @Autowired
  12. JdbcTemplate jdbcTemplate;
  13. public List<Map<String,Object>> findPost(){
  14. String sql="select * from post";
  15. List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
  16. return maps;
  17. }
  18. public List<Map<String, Object>> doFindAllUser() {
  19. String sql="select * from employee";
  20. List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
  21. return maps;
  22. }
  23. public List<Map<String, Object>> doSelect(String emp_name, int post_type) {
  24. String sql = "select * from employee where emp_name = '"+emp_name +"'";
  25. String sql2 = "select * from employee where post_type = "+ post_type;
  26. //System.out.println("111");
  27. //System.out.println("**2**:"+post_type);
  28. List<Map<String, Object>> maps;
  29. maps = jdbcTemplate.queryForList(sql);
  30. if (maps.isEmpty()){
  31. maps = jdbcTemplate.queryForList(sql2);
  32. return maps;
  33. }else {
  34. return maps;
  35. }
  36. }
  37. }

(5)controller/Employee.java 文件:

  1. package com.xpwi.controller;
  2. import com.xpwi.service.EmployeeService;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Controller;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestMethod;
  7. import org.springframework.web.bind.annotation.ResponseBody;
  8. import pojo.UserInfo;
  9. import java.io.UnsupportedEncodingException;
  10. import java.util.List;
  11. import java.util.Map;
  12. @Controller
  13. public class Employee {
  14. @Autowired
  15. EmployeeService employeeService;
  16. @RequestMapping(value = "/findAllPost.do",method = RequestMethod.GET)
  17. @ResponseBody
  18. public List<Map<String, Object>> findPost() throws UnsupportedEncodingException {
  19. List<Map<String, Object>> post = employeeService.findPost();
  20. return post;
  21. }
  22. @RequestMapping(value = "/doFindAllUser.do",method = RequestMethod.GET)
  23. @ResponseBody
  24. public List<Map<String, Object>> doFindAllUser() throws UnsupportedEncodingException {
  25. List<Map<String, Object>> post = employeeService.doFindAllUser();
  26. return post;
  27. }
  28. @RequestMapping(value = "/doSelect.do")
  29. @ResponseBody
  30. public List<Map<String, Object>> doSelect(UserInfo userInfo) throws UnsupportedEncodingException {
  31. System.out.println(userInfo.getEmp_name()+userInfo.getPost_type());
  32. if (userInfo.getEmp_name()==""){
  33. userInfo.setEmp_name("1");
  34. }
  35. String emp_name = userInfo.getEmp_name();
  36. int post_type = userInfo.getPost_type();
  37. List<Map<String, Object>> post = employeeService.doSelect(emp_name,post_type);
  38. return post;
  39. }
  40. }

四、运行调试

更多文章链接:

SSM 实训笔记 -11- 使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven)的更多相关文章

  1. Spring的JDBC Template

    Spring的JDBC Template(JDBC模板)简化JDBC API开发,使用上和Apache公司的DBUtils框架非常类似) 快速入门实例 1.创建项目后,导入Spring基础核心开发包. ...

  2. Spring MVC 学习总结(十一)——IDEA+Maven+多模块实现SSM框架集成

    一.SSM概要 与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC ...

  3. 【Spring学习笔记-MVC-12】Spring MVC视图解析器之ResourceBundleViewResolver

    场景 当我们设计程序界面的时候,中国人希望界面是中文,而美国人希望界面是英文. 我们当然希望后台代码不需改变,系统能够通过配置文件配置,来自己觉得是显示中文界面还是英文界面. 这是,Spring mv ...

  4. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

  5. 【Spring学习笔记-MVC-15】Spring MVC之异常处理

    作者:ssslinppp       1. 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理 ...

  6. 【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

    作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html  http://www.cnb ...

  7. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  8. 【Spring学习笔记-MVC-10】Spring MVC之数据校验

    作者:ssslinppp       1.准备 这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证.首先 ...

  9. SSM学习(三)--集成spring mvc

    spirng mvc是一个mvc框架,与struts2类似,都是基于Servlet封装而成的框架,所以要了解spring mvc或者struts2比需先了解Servlet,本篇我们先把spring m ...

随机推荐

  1. (转)Python3之pickle模块

    原文:https://www.cnblogs.com/wang-yc/p/5616579.html https://www.cnblogs.com/yuanzhaoyi/p/6093362.html- ...

  2. Redis 缓存服务配置与使用

    缓存服务器Couchbase另外一种选择Redis documentation http://redis.io/documentation http://redis.cn/documentation. ...

  3. GO入门——5. 函数

    1 函数 Go 函数 不支持 嵌套.重载和默认参数 定义函数使用关键字 func,且左大括号不能另起一行 函数也可以作为一种类型使用 无需声明原型 不定长度变参 func A(a string,c . ...

  4. postgresql逻辑结构--用户及权限管理(七)

    一.用户和角色 二.创建用户和角色 三.权限管理 四.

  5. linux less命令详情

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有办 ...

  6. Spring总结 1.装配bean

    本随笔内容要点如下: 依赖注入 Spring装配bean的方式 条件化装配 一.依赖注入 我理解的依赖注入是这样的:所谓的依赖,就是对象所依赖的其他对象.Spring提供了一个bean容器,它负责创建 ...

  7. CORS实践

    $.ajax("http://yafbox.18touch.com/", { type: "POST", data: {id:id,v:v}, //header ...

  8. offsetTop、offsetLeft、offsetWidth、offsetHeight的用法

    假设 obj 为某个 HTML 控件. obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素. obj.offsetLeft ...

  9. 描述linux系统从开机到登陆界面的启动过程

    简述:1.开机BIOS自检2.MBR引导3.grub引导菜单4.加载内核kernel5.启动init进程6.读取inittab文件,执行rc.sysinit,rc等脚本7.启动mingetty,进入系 ...

  10. 呼叫WCF Service的方法出现Method not allowed异常

    asp.net mvc练习程序,经常性在家里电脑,笔记本或是公司的电脑之间拷贝与粘贴,如果忘记携带最新的练习程序,一些小功能只能重新写了.如前一篇<ASP.NET MVC呼叫WCF Servic ...