这几天逼着交Java,借鉴各位师傅的做出来这么个简陋的东西,各位大师傅不要笑我。(学都没有学过Java的我,QAQ~)

下面针对的都是SQL Server系列的连接,如果你使用MySQL那么不必看关于连接数据库的介绍。

数据库驱动JDBC在Ecilpse安装教程:点击进入

项目及素材下载链接:点击下载

常见问题:

端口拦截

连接数据库时,端口被防火墙拦截,检查端口是否开放,然后重启sql server服务。

代码使用

在使用代码时,需要额外创建一个包,如图创建

数据库账号密码问题

Java连接数据库需要SQL登录方式,需要账号密码,如果说不知道自己是否是混合登录,或者说忘记密码,可以这样做:

打开数据库软件,连接数据库(Windows登录就可以了)。

右键你的本地数据库

打开属性,点击安全性,查看是否是SQL Server和Windows混合登录。(不是就点上)

接着依次打开安全性-->登录名,那个sa就是我的管理员账号。

双击点开,就可以在账号框和密码框进行账号名,密码更改,最后确认就行。

如果没有账号的话,右键登录名,选择新建登录名,重新创建一个SQL登陆方式的账户。

查看自己的数据库名称:

这个“master”就是我的数据库名称,同时也储存着我的数据。

代码:

Login.java

  1. import java.awt.Color;
  2. import java.awt.Cursor;
  3. import java.awt.Font;
  4. import java.awt.Image;
  5. import java.awt.Point;
  6. import java.awt.Toolkit;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9.  
  10. import javax.swing.BorderFactory;
  11. import javax.swing.ButtonGroup;
  12. import javax.swing.Icon;
  13. import javax.swing.ImageIcon;
  14. import javax.swing.JButton;
  15. import javax.swing.JFrame;
  16. import javax.swing.JLabel;
  17. import javax.swing.JOptionPane;
  18. import javax.swing.JPanel;
  19. import javax.swing.JPasswordField;
  20. import javax.swing.JRadioButton;
  21. import javax.swing.JTextField;
  22.  
  23. import pack.VerCode;
  24. public class Login {
  25. String StudentAccount="123456";
  26. String StudentPassWord="123456";
  27. JLabel L, L1, L2, L3, L4, BK;
  28. JTextField te1, te3;
  29. JPasswordField te2;
  30. JRadioButton value1, value2;
  31. JButton B1, B2;
  32. ButtonGroup bg;
  33. JPanel jp1,jp2,jp3,jp4;
  34. //设置图标
  35. Icon v1 = new ImageIcon("p3.png");
  36. Icon v2 = new ImageIcon("p4.png");
  37. Icon v3 = new ImageIcon("p5.png");
  38. Icon v4 = new ImageIcon("p6.png");
  39. private VerCode VerCode = new VerCode();//引用验证码函数
  40.  
  41. public static void main(String[] args) {
  42. Login frame=new Login();
  43. frame.show();
  44. }
  45. JFrame frame=new JFrame();//frame界面
  46. public void show() {
  47. setBackgroudImage();
  48.  
  49. Toolkit tk = Toolkit.getDefaultToolkit();//默认加载方式
  50. Image image = new ImageIcon(getClass().getResource("p6.png")).getImage();//设置光标图片
  51. Cursor cursor = tk.createCustomCursor(image, new Point(10, 10), "biubiubiu");//光标image属性,指定光标中心,光标文字描述
  52. frame.setCursor(cursor);
  53.  
  54. L1=new JLabel("<html>账号:</html>");
  55. L1.setIcon(v1);
  56. te1=new JTextField(80);
  57. //设置密码窗口,使用'*'隐藏密码
  58. L2=new JLabel("<html>密码:</html>");
  59. L2.setIcon(v2);
  60. te2=new JPasswordField(80);//
  61. te2.setEchoChar('*');
  62. L4 = new JLabel("验证码:");
  63. L4.setIcon(v3);
  64. te3=new JTextField(80);
  65.  
  66. //设置登录身份选择按钮
  67. jp2 = new JPanel();
  68. L3 = new JLabel("身份:");
  69. L3.setIcon(v4);
  70. value2=new JRadioButton("学生");
  71. SetBt(value2);
  72.  
  73. //设置位置和大小
  74. L1.setBounds(60, 90, 60, 40);
  75. L2.setBounds(60, 140, 60, 40);
  76. L3.setBounds(60, 240, 60, 40);
  77. L4.setBounds(60, 190, 60, 40);
  78.  
  79. jp2.setBounds(80, 240, 60, 40);
  80. te1.setBounds(130, 90, 150, 30);
  81. te2.setBounds(130, 140, 150, 30);
  82. te3.setBounds(130, 190, 150, 30);
  83. VerCode.setBounds(290, 190, 100, 40);
  84. value2.setBounds(120, 240, 60, 40);
  85.  
  86. //设置'登录'及'重置'按钮
  87. B1=new JButton("登录");
  88. B1.setBounds(120, 280, 80, 40);
  89. SetBt(B1);
  90. ButtonListener li1=new ButtonListener(te1,te2);
  91.  
  92. B2=new JButton("注册");
  93. B2.setBounds(250, 280, 80, 40);
  94. SetBt(B2);
  95. ButtonListener li2=new ButtonListener(te1,te2);
  96.  
  97. //设置监听
  98. B1.addActionListener(li1);
  99. B2.addActionListener(li2);
  100.  
  101. //组键添加到窗口
  102. frame.setLayout(null);
  103. //frame.add(L);
  104.  
  105. frame.add(L1);
  106. frame.add(te1);
  107.  
  108. frame.add(L2);
  109. frame.add(te2);
  110.  
  111. frame.add(L3);
  112. frame.add(value2);
  113.  
  114. frame.add(L4);
  115. frame.add(te3);
  116. frame.add(VerCode);
  117.  
  118. frame.add(B1);
  119. frame.add(B2);
  120. frame.setVisible(true);//窗体设置为可见
  121.  
  122. frame.setTitle("学生管理系统");
  123. frame.setSize(700,403);
  124. frame.setLocationRelativeTo(null);
  125. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  126. frame.setVisible(true);
  127. frame.setResizable(false);
  128.  
  129. }
  130.  
  131. private void SetBt(JButton b12) {
  132. b12.setBackground(new Color(102, 0, 204));//设置色值
  133. b12.setFont(new Font("宋体", Font.BOLD, 24));//设置字体,样式。字号
  134. b12.setOpaque(false);//设置控件透明
  135. b12.setBorder(BorderFactory.createEmptyBorder());
  136.  
  137. }
  138. private void SetBt(JRadioButton b12) {
  139. b12.setBackground(new Color(102, 0, 204));
  140. b12.setFont(new Font("Dialog", Font.BOLD, 15));
  141. b12.setOpaque(false);//设置控件透明
  142. b12.setBorder(BorderFactory.createEmptyBorder());
  143.  
  144. }
  145.  
  146. public boolean isValidCodeRight() {//判断验证码是否有效
  147. if(te3 == null) {
  148. return false;
  149. }else if(VerCode == null) {
  150. return true;
  151. }else if(VerCode.getCode() .equals(te3.getText())) {
  152. return true;
  153. }else
  154. return false;
  155. }
  156.  
  157. private void setBackgroudImage() {
  158. // TODO Auto-generated method stub
  159. ((JPanel) frame.getContentPane()).setOpaque(false);
  160. ImageIcon img = new ImageIcon("3.gif"); // 添加图片
  161. BK = new JLabel(img);
  162. frame.getLayeredPane().add(BK, new Integer(Integer.MIN_VALUE));
  163. BK.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
  164. }
  165.  
  166. //创建类实现接口
  167. public class ButtonListener implements java.awt.event.ActionListener{ //实现ActionListener 接口 implement
  168. JTextField te1=new JTextField(); //传参
  169. JPasswordField te2=new JPasswordField();
  170. Function hua=new Function(); //一个画板对象
  171. ButtonListener(JTextField te1,JPasswordField te2) {//重载 窗体上的账号框,密码框传到监听上来
  172. this.te1=te1;
  173. this.te2=te2;
  174. }
  175. public ButtonListener(JTextField ID) {
  176. // TODO Auto-generated constructor stub
  177. }
  178. @Override
  179. public void actionPerformed(ActionEvent ch) {
  180. // TODO Auto-generated method stub
  181. if(ch.getActionCommand()=="登录")
  182. {
  183. if(te3.getText().isEmpty()) {
  184. JOptionPane.showMessageDialog(null, "请输入验证码!");
  185. }else {
  186. if(!isValidCodeRight()) {
  187. JOptionPane.showMessageDialog(null, "验证码错误,请重新输入!","错误",JOptionPane.ERROR_MESSAGE);
  188. hua.bClear(te3);
  189. }
  190. else if(value2.isSelected())
  191. {
  192. hua.Student(StudentAccount, StudentPassWord, te1, te2, frame, hua);//学生
  193. }
  194.  
  195. else if(ch.getActionCommand()=="重置")
  196. {
  197. hua.Clear(te1, te2);
  198. }
  199. }
  200.  
  201. }
  202.  
  203. }
  204.  
  205. }
  206. }

VerCode.java

  1. package pack;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Font;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Graphics2D;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.event.MouseListener;
  10.  
  11. import java.util.Random;
  12.  
  13. import javax.swing.JComponent;
  14.  
  15. public class VerCode extends JComponent implements MouseListener {
  16.  
  17. private String typeface;
  18.  
  19. private int V1, V2 = 30;
  20.  
  21. private int Len = 4;
  22.  
  23. private Random random = new Random();
  24.  
  25. public VerCode() {
  26. V1 = this.Len * 16 + (this.Len - 1) * 10;
  27. setPreferredSize(new Dimension(V1, V2));
  28. setSize(V1, V2);
  29. this.addMouseListener(this);
  30. setToolTipText("点击可以更换验证码");
  31. }
  32.  
  33. public int getCodeLength() {
  34. return Len;
  35. }
  36.  
  37. //设置验证码长度
  38. public void setCodeLength(int Len) {
  39. if(Len < 4) {
  40. this.Len = 4;
  41. } else {
  42. this.Len = Len;
  43. }
  44.  
  45. }
  46.  
  47. public String getCode() {
  48. return typeface;
  49. }
  50.  
  51. //产生随机颜色
  52. public Color getRandColor(int min, int max) {
  53.  
  54. if (min > 255)
  55. min = 255;
  56. if (max > 255)
  57. max = 255;
  58. int red = random.nextInt(max - min) + min;
  59. int green = random.nextInt(max - min) + min;
  60. int blue = random.nextInt(max - min) + min;
  61. return new Color(red, green, blue);
  62. }
  63. //设置验证码字母
  64. protected String generateCode() {
  65. char[] codes = new char[this.Len];
  66. for (int i = 0, len = codes.length; i < len; i++) {
  67. if (random.nextBoolean()) {
  68. codes[i] = (char) (random.nextInt(26) + 65);
  69. } else {
  70. codes[i] = (char) (random.nextInt(26) + 97);
  71. }
  72. }
  73. this.typeface = new String(codes);
  74. return this.typeface;
  75. }
  76.  
  77. @Override
  78. protected void paintComponent(Graphics g) {
  79. super.paintComponent(g);
  80. if(this.typeface == null || this.typeface.length() != this.Len) {
  81. this.typeface = generateCode();
  82. }
  83. V1 = this.Len * 16 + (this.Len - 1) * 10;
  84. super.setSize(V1, V2);
  85. super.setPreferredSize(new Dimension(V1, V2));
  86. Font mFont = new Font("Arial", Font.BOLD | Font.ITALIC, 25);
  87. g.setFont(mFont);
  88. //绘制验证码的背景的矩形轮廓
  89. Graphics2D g2d = (Graphics2D) g;
  90. g2d.setColor(getRandColor(200, 250));
  91. g2d.fillRect(0, 0, V1, V2);
  92. g2d.setColor(getRandColor(180, 200));
  93. g2d.drawRect(0, 0, V1 - 1, V2 - 1);
  94. //绘制验证码背景的线
  95. int i = 0, len = 150;
  96. for (; i < len; i++) {
  97. int x = random.nextInt(V1 - 1);
  98. int y = random.nextInt(V2 - 1);
  99. int x1 = random.nextInt(V1 - 10) + 10;
  100. int y1 = random.nextInt(V2 - 4) + 4;
  101. g2d.setColor(getRandColor(180, 200));
  102. g2d.drawLine(x, y, x1, y1);
  103. }
  104.  
  105. //绘制出验证码的具体字母
  106. i = 0; len = this.Len;
  107. FontMetrics fm = g2d.getFontMetrics();
  108. int base = (V2 - fm.getHeight())/2 + fm.getAscent();
  109. for(;i<len;i++) {
  110. int b = random.nextBoolean() ? 1 : -1;
  111. g2d.rotate(random.nextInt(10)*0.01*b);
  112. g2d.setColor(getRandColor(20, 130));
  113. g2d.drawString(typeface.charAt(i)+"", 16 * i + 10, base);
  114. }
  115. }
  116.  
  117. //下一个验证码
  118. public void nextCode() {
  119. generateCode();
  120. repaint();
  121. }
  122.  
  123. @Override
  124. public void mouseClicked(MouseEvent e) {
  125.  
  126. nextCode();
  127. }
  128.  
  129. @Override
  130. public void mousePressed(MouseEvent e) {
  131. // TODO Auto-generated method stub
  132.  
  133. }
  134.  
  135. @Override
  136. public void mouseReleased(MouseEvent e) {
  137. // TODO Auto-generated method stub
  138.  
  139. }
  140.  
  141. @Override
  142. public void mouseEntered(MouseEvent e) {
  143. // TODO Auto-generated method stub
  144.  
  145. }
  146.  
  147. @Override
  148. public void mouseExited(MouseEvent e) {
  149. // TODO Auto-generated method stub
  150.  
  151. }
  152. }

Function.java

  1. import java.awt.*;
  2.  
  3. import javax.swing.table.DefaultTableModel;
  4. import java.awt.event.*;
  5. import java.sql.*;
  6.  
  7. import javax.swing.*;
  8.  
  9. public class Function extends JFrame implements ActionListener{
  10. String StuID, Stud_Name;
  11. String num;
  12. JTextField ID;
  13. JButton Select;
  14. JPanel Va, Vb;
  15. JTable ival;
  16. JScrollPane qval;
  17. DefaultTableModel rval;
  18. JLabel label;
  19. static Connection ct;
  20. PreparedStatement ps;
  21. ResultSet rs;
  22.  
  23. //Connect connect = new Connect();
  24. //学生登录界面
  25. public void StudentShow() {
  26. Icon v1 = new ImageIcon("p3.png");
  27. Va=new JPanel();
  28. label=new JLabel();
  29. label.setIcon(v1);
  30. label.setText("学号");
  31. ID = new JTextField(15);
  32.  
  33. Select=new JButton("查询");
  34. Select.addActionListener(this);
  35. //界面表格名添加
  36. String[] colnames = { "学号","姓名", "学院", "Java", "Python", "数据结构"};
  37. rval = new DefaultTableModel(colnames, 3);
  38. ival = new JTable(rval);
  39. qval = new JScrollPane(ival);
  40.  
  41. Va = new JPanel();
  42. Vb = new JPanel();
  43.  
  44. Va.add(label);
  45. Va.add(ID);
  46. Va.add(Select);
  47. Vb.add(qval);
  48. //查询位置调整
  49. this.add(Va,BorderLayout.SOUTH);
  50. this.add(Vb);
  51.  
  52. //界面属性设置
  53. this.setLocationRelativeTo(null); //居中
  54. this.setVisible(true);
  55. this.setSize(500,600);
  56. this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  57. this.setTitle("学生管理系统");
  58.  
  59. }
  60.  
  61. //学生登录判断
  62. public void Student(String StudentAccount, String StudentPassWord,JTextField te1, JPasswordField te2, JFrame frame, Function hua)
  63. {
  64. if(StudentAccount.equals(te1.getText())&&StudentPassWord.equals(te2.getText()))
  65. {
  66. JOptionPane.showMessageDialog(this, "登录成功!");
  67. frame.setVisible(false);//窗口不可见
  68. hua.StudentShow();//调用一个画板对象中的函数 弹出一个界面
  69. }else if(te1.getText().isEmpty()&&te2.getText().isEmpty())
  70. {
  71. JOptionPane.showMessageDialog(this, "请输入账号或密码");
  72. }else if(te1.getText().isEmpty())
  73. {
  74. JOptionPane.showMessageDialog(this,"请输入用户名!");
  75. }else if(te2.getText().isEmpty())
  76. {
  77. JOptionPane.showMessageDialog(this,"请输入密码!");
  78. }else
  79. {
  80. JOptionPane.showMessageDialog(this,"<html>账户或密码错误!!!<br>请重新输入</html>","错误",JOptionPane.ERROR_MESSAGE);
  81. //清空输入框
  82. Clear(te1, te2);
  83. }
  84. }
  85. //清空文本框和密码框
  86. public void Clear(JTextField te1, JPasswordField te2) {
  87. te1.setText("");
  88. te2.setText("");
  89. }
  90. //清空密码
  91. public void aClear(JPasswordField te2)
  92. {
  93. te2.setText("");
  94. }
  95. public void bClear(JTextField te3)
  96. {
  97. te3.setText("");
  98. }
  99.  
  100. public class ButtonListener implements java.awt.event.ActionListener{ //实现ActionListener 接口 implement
  101. JTextField te1=new JTextField(); //传参
  102. JPasswordField te2=new JPasswordField();
  103. Function hua=new Function(); //一个画板对象
  104. ButtonListener(JTextField te1,JPasswordField te2) {//重载 窗体上的账号框,密码框传到监听上来
  105. this.te1=te1;
  106. this.te2=te2;
  107. }
  108. public ButtonListener(JTextField ID) {
  109. // TODO Auto-generated constructor stub
  110. }
  111. @Override
  112. public void actionPerformed(ActionEvent e) {
  113. // TODO Auto-generated method stub
  114.  
  115. }
  116. }
  117.  
  118. public void actionPerformed(ActionEvent ch) {
  119. if(ch.getActionCommand()=="查询")
  120. {
  121. Connect.ConnectSQL();//连接数据库
  122. Connect.GetStudeInfor(ID.getText());//获取ID
  123.  
  124. ID.setText("");
  125. ival.setValueAt(Connect.sID, 0, 0);
  126. ival.setValueAt(Connect.sname, 0, 1);
  127. ival.setValueAt(Connect.Dept, 0 , 2);
  128. ival.setValueAt(Connect.Java, 0, 3);
  129. ival.setValueAt(Connect.Python, 0, 4);
  130. ival.setValueAt(Connect.DataStructure, 0, 5);
  131. }
  132.  
  133. }
  134. }

Connect.java

  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7.  
  8. import javax.swing.JOptionPane;
  9. import java.awt.Cursor;
  10. public class Connect {
  11. static String sID, sname, Dept, Java, Python, DataStructure;
  12. static Connection Co;
  13. static PreparedStatement nValue;
  14. static ResultSet ResultInfor;
  15. static Statement ST;
  16. //数据库连接函数
  17. public static void ConnectSQL() {
  18. String url = "jdbc:sqlserver://localhost:1433;DatabaseName=master;";//master是自己储存数据的数据库名
  19. try {
  20. // 连接数据库
  21. Co = DriverManager.getConnection(url, "sa", "biubiubiu");//sa是SQL账号,后面是密码
  22. // 建立Statement对象
  23. ST = Co.createStatement();
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26. JOptionPane.showMessageDialog(null,"<html>数据库连接错误!!!<br>请联系管理员修复。</html>","错误",JOptionPane.ERROR_MESSAGE);
  27. }
  28. }
  29.  
  30. public static void GetStudeInfor(String Str) {
  31. try {
  32. // 给?赋值,防止SQL注入,
  33. String sql = "select * from Infor where Stud_ID = ?";
  34. nValue = Co.prepareStatement(sql);
  35. nValue.setString(1, Str);
  36. ResultInfor = nValue.executeQuery();
  37. if(ResultInfor.next())
  38. {
  39. //获取学生信息
  40. sID = ResultInfor.getString("Stud_ID");
  41. sname = ResultInfor.getString("Stud_Name");
  42. Dept = ResultInfor.getString("Stud_Dept");
  43. Java = ResultInfor.getString("JavaGrade");
  44. Python = ResultInfor.getString("PythonGrade");
  45. DataStructure = ResultInfor.getString("DataStructureGrade");
  46. JOptionPane.showMessageDialog(null, "查询成功!");
  47. }else
  48. {
  49. JOptionPane.showMessageDialog(null, "没有此学生!");
  50. }
  51.  
  52. } catch (Exception e1) {
  53. // TODO Auto-generated catch block
  54. e1.printStackTrace();
  55. }
  56. }
  57. }

Java学生管理系统(连接数据库查询)超详细的更多相关文章

  1. Java学生管理系统项目案例

    这是一个不错的Java学生管理系统项目案例,希望能够帮到大家的学习吧. 分代码如下 package com.student.util; import java.sql.Connection; impo ...

  2. Java中的三大特性 - 超详细篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的三大特性 - 超详细篇>,希望对大家有帮助,谢谢 这一节的内容可能有点多,大家可以选择性的来看 简介 Java的三大特性:封装.继 ...

  3. java学生管理系统

    student类 package cn.itheima.Manag; /** * *标准类 * **/public class Student { //学号 private String id; // ...

  4. Java学生管理系统(IO版)

    图解: cade: student.java /* * 这是我的学生类 */ public class Student { //学号 private String id; //姓名 private S ...

  5. Java学生管理系统(详解)

    相信大部分人都有接触过这个 Java 小项目--学生管理系统,下面会分享我在做这个项目时的一些方法以及程序代码供大家参考(最后附上完整的项目代码). 首本人只是个初学Java的小白,可能项目中有许多地 ...

  6. bootStrap-table服务器端后台分页的使用,以及自定义搜索框的实现,前端代码到数据查询超详细讲解

    关于分页,之前一直纯手写js代码来实现,最近又需要用到分页,找了好多最终确定bootstrap-table,正好前端页面用的是bootstrap. 首先下载BootStrap-table的js和CSS ...

  7. java学生管理系统(增、删、改、查功能)

    package mm; import java.util.Scanner;import java.util.ArrayList; class Student1 { private String stu ...

  8. (转)Java多线程学习(吐血超详细总结)

    本文转自:http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能 ...

  9. Java并发知识总结,超详细!

    首先给大家分享一个github仓库,上面放了200多本经典的计算机书籍,包括C语言.C++.Java.Python.前端.数据库.操作系统.计算机网络.数据结构和算法.机器学习.编程人生等,可以sta ...

随机推荐

  1. mysql存取blob类型数据

    参考网址:http://www.cnblogs.com/jway1101/p/5815658.html 首先是建表语句,需要实现将表建立好. CREATE TABLE `blobtest` ( `pr ...

  2. Jquery 插件开发——citylinkage(省、市、县城市联动选择)

    第一部分:背景  开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了. ...

  3. 关于webapi练习过程中遇到的一系列问题记录

    最近在尝试本地进行webapi调用的过程中,遇到一系列的问题,demo很小但着实让人头疼,先附上demo. 前台页面,目的是展示新闻的分类: 类别模型如下: 控制器代码如下: public Actio ...

  4. 企业建立私有云的N个理由

    简而言之,私有云意味着高效.安全.可控(技术路线是否可控另说了),也意味着高成本.有限弹性.(政绩工程不在讨论范围) 全面回答这个问题,其实包括两个部分:为什么要上云计算,以及为什么要采用私有化部署模 ...

  5. Ground Truth

    ground truth就是参考标准,一般用来做误差量化.比方说要根据历史数据预测某一时间的温度,ground truth就是那个时间的真实温度.error就是(predicted temperatu ...

  6. 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )

    情景说明 前段时间应公司需求,需要将内网的服务映射到公网.由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成. 当时有几种方案: 1.花生壳:但是目前需要乱七八糟的 ...

  7. [SinGuLaRiTy] 2017-07-22 NOIP2017 模拟赛

    [SInGuLaRiTy-1029] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. <全是看看代码就会的水题,偷个懒不单独写题解了~& ...

  8. QueryTask,FindTask,IdentifyTask三种查询的区别

    1:QueryTask是一个进行空间和属性查询的功能类,它可以在某个地图服务的某个子图层内进行查询,顺便需要提一下的是,QueryTask进行查询的地图服务并不必项加载到Map中进行显示.QueryT ...

  9. join与os.path.join

    Python中有join和os.path.join()两个函数,具体作用如下: join:连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符)连接生成一个新的字符串os.path.joi ...

  10. 复习一知识点:回调函数callback

    比如我们常用的异步请求: $.ajax({ url:"test.json", type: "GET", data: {username:$("#use ...