JavaWeb JDBC

2023-11-18

1.实现第一个JDBC程序

在MySQL中创建一个名称为jdbc的数据库,然后在该数据库中创建一个users表,创建
数据库和表的SQL语句如下所示。


 CREATE DATABASE jdbc;
 USE jdbc;
 
 CREATE TABLE users(
   id INT PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(40),
   password VARCHAR(40),
   email VARCHAR(60),
   birthday DATE
   )CHARACTER SET utf8 COLLATE utf8_general_ci;

数据库和表创建成功后,创建插入记录:

INSERT INTO users (NAME, PASSWORD, email, birthday)
VALUES('zs', '123456','zs@sina.com','1980-12-04');
INSERT INTO users (NAME, PASSWORD, email,birthday)
VALUES('lisi','123456','lisi0sina.com','1981-12-04');
INSERT INTO users (NAME, PASSWORD, email,birthday)
VALUES('wangwu','123456','wangwu@sina.com','1979-12-04');

执行结果如图

 

2.编写JDBC程序

在项目chapter09的src目录下,新建一个名称为chapter02.jdbc.example的包,在该包中创建类Example01,该类用于读取数据库中的users表,并将结果输出到控制台

package chapter12.jdbc.example;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

public class example01 {
	public static void main(String[] args) throws SQLException{
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs  = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url,username,password);
			stmt = conn.createStatement();
			String sql = "select * from users";
			rs = stmt.executeQuery(sql);
			while (rs.next()) {
				int id = rs.getInt("id");
				String name = rs.getString("name");
				String psw = rs.getString("password");
				String email = rs.getString("email");
				Date birthday = rs.getDate("birthday");
				System.out.println(id+" "+name+" "+email+" "+birthday);
			}
		}catch (ClassNotFoundException e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally {
			if(rs!=null) {
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				rs=null;
			}
			if (stmt!=null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				stmt=null;
			}
			if (conn!=null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				conn=null;
			}
		}
	}
}

结果如图

 

PreparedStatement对象

在该类中使用PreparedStatement对象对数据库进行插入数据的操作

package chapter12.jdbc.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
 
public class example02 {
	public static void main(String[] args) throws SQLException{
		Connection conn = null;
		PreparedStatement preStmt = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url,username,password); 
			String sql ="INSERT INTO users (NAME, PASSWORD, email,birthday)"+"VALUES(?,?,?,?)";
			preStmt =conn.prepareStatement(sql);
			preStmt.setString(1, "zl");
			preStmt.setString(2, "123456");
			preStmt.setString(3, "zl@sina.com");
			preStmt.setString(4, "1789-12-23");
			preStmt.executeUpdate();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} finally {
			if(preStmt!=null) {
				try {
					preStmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				preStmt = null;
			}
			if(conn!=null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				conn=null;
			}
		}
	}
}

查询结果如图

 

ResultSet对象

使用ResultSet对象取出指定数据的信息

 

package chapter12.jdbc.example;


	import java.sql.Connection;
	import java.sql.DriverManager;
	import java.sql.ResultSet;
	import java.sql.SQLException;
	import java.sql.Statement;
	 
	public class example03 {
		public static void main(String[] args) {
			Connection conn = null;
			Statement stmt = null;
			try {
				Class.forName("com.mysql.cj.jdbc.Driver");
				String url = "jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC";
				String username = "root";
				String password = "123456";
				conn = DriverManager.getConnection(url,username,password);
				String sql = "select * from users";
				stmt = conn.createStatement(
						ResultSet.TYPE_SCROLL_INSENSITIVE,
						ResultSet.CONCUR_READ_ONLY);
				ResultSet rs = stmt.executeQuery(sql);
				System.out.print("第2条数据的name值为:");
				rs.absolute(2);
				System.out.println(rs.getNString("name"));
				System.out.print("第1条数据的name值为:");
				rs.beforeFirst();  //将指针定位到结果集中第一行数据之前
				rs.next();	//指针向后滚动
				System.out.println(rs.getString("name"));
				System.out.print("第4条数据的name值为:");
				rs.afterLast(); //将指针定位到结果集中最后一条数据之后
				rs.previous();	//指针向前滚动
				System.out.println(rs.getString("name"));
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if(stmt!=null) {
					try {
						stmt.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
					stmt = null;
				}
				if(conn!=null) {
					try {
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
					conn=null;
				}
			}
		}
}

程序的运行结果如图 

 

使用JDBC完成数据的增删改查

1.创建JavaBean

User类的具体实现方式如下

package chapter12.jdbc.example;

import java.util.Date;

	public class user {
		private int id;
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getUsername() {
			return username;
		}
		public void setUsername(String username) {
			this.username = username;
		}
		public String getPassword() {
			return password;
		}
		public void setPassword(String password) {
			this.password = password;
		}
		public String getEmail() {
			return email;
		}
		public void setEmail(String email) {
			this.email = email;
		}
		public Date getBirthday() {
			return birthday;
		}
		public void setBirthday(Date birthday) {
			this.birthday = birthday;
		}
		private String username;
		private String password;
		private String email;
		private Date birthday;
	}


2.创建工具类

由于每次操作数据库时,都需要加载数据库驱动、建立数据库连接以及关闭数据库连接,为了避免代码的重复书写,下面建立一个专门用于数据库相关操作的工具类。在包中创建一个封装了上述操作的工具类JDBCUtils,JDBCUtils的具体实现方式如下

package chapter12.jdbc.example;

	import java.sql.Connection;
	import java.sql.DriverManager;
	import java.sql.ResultSet;
	import java.sql.SQLException;
	import java.sql.Statement;
	 
	public class JDBCUtils {
		public static Connection getConnection() throws SQLException,ClassNotFoundException{
				Class.forName("com.mysql.cj.jdbc.Driver");
				String url = "jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC";
				String username = "root";
				String password = "123456";
				Connection conn = DriverManager.getConnection(url,username,password);
				return conn;
		}
		public static void release(Statement stmt, Connection conn) {
			if(stmt!=null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				stmt = null;
			}
			if(conn!=null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				conn=null;
			}
		}
		public static void release(ResultSet rs,Statement stmt,Connection conn) {
			if(rs!=null) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				rs = null;
			}
			release(stmt, conn);
		}
	}

3.创建DAO

代码如下:

package chapter12.jdbc.example;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
 
import chapter12.jdbc.example.user;
import chapter12.jdbc.example.JDBCUtils;
 
public class UsersDao {
	//添加用户的操作
	public boolean insert(user user) {
		Connection conn = null;
		Statement stmt=null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();
			stmt = conn.createStatement();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String birthday = sdf.format(user.getBirthday());
			String sql = "INSERT INTO users(id,name,password,email,birthday)"+
						"VALUES("
						+user.getId()
						+",'"
						+user.getUsername()
						+"','"
						+user.getPassword()
						+"','"
						+user.getEmail()
						+"','"
						+birthday + "')";
			System.out.println(sql);
			int num = stmt.executeUpdate(sql);
			if (num > 0) {
				return true;
			}
			return false;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs,stmt,conn);
		}
		return false;
	}
	public ArrayList<user> findAll(){
		Connection conn = null;
		Statement stmt=null;
		ResultSet rs = null;
		ArrayList<user> list = new ArrayList<user>();
		try {
			conn = JDBCUtils.getConnection();
			stmt = conn.createStatement();
			String sql = "SELECT * FROM users";
			rs = stmt.executeQuery(sql);
			while(rs.next()) {
				user user = new user();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("name"));
				user.setPassword(rs.getString("password"));
				user.setEmail(rs.getString("email"));
				user.setBirthday(rs.getDate("birthday"));
				list.add(user);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stmt, conn);
		}
		return null;
	}
	public user find(int id) {
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();
			stmt=conn.createStatement();
			String sql = "SELECT * FROM users WHERE id=" + id;
			rs = stmt.executeQuery(sql);
			while(rs.next()) {
				user user = new user();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("name"));
				user.setPassword(rs.getString("password"));
				user.setEmail(rs.getString("email"));
				user.setBirthday(rs.getDate("birthday"));
				return user;
			}
			return null;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs,stmt, conn);
		}
		return null;
	}
	public boolean delete(int id) {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();
			stmt= conn.createStatement();
			String sql = "DELETE FROM users WHERE id=" + id;
			int num =stmt.executeUpdate(sql);
			if(num > 0) {
				return true;
			}
			return false;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stmt,conn);
		}
		return false;
	}
	public boolean update(user user) {
		Connection conn =null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			conn= JDBCUtils.getConnection();
			stmt = conn.createStatement();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String birthday =sdf.format(user.getBirthday());
			String sql = "UPDATE users set name='"+user.getUsername()
						+"',password='"+user.getPassword() + "',email='"
						+user.getEmail() + "',birthday='" + birthday
						+"'WHERE id=" + user.getId();
			int num = stmt.executeUpdate(sql);
			if (num > 0) {
				return true;
			}
			return false;
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, stmt, conn);
		}
		return false;
	}
}

4.创建测试类

代码如下:

package chapter12.jdbc.example;

import java.util.Date;
import chapter12.jdbc.example.user;
import chapter12.jdbc.example.JDBCUtils;
 
public class JdbcInsertTest {
	public static void main(String[] args) {
		//向users表插入一个用户信息
		UsersDao ud = new UsersDao();
		user user=new user();
		user.setId(5);
		user.setUsername("hl");
		user.setPassword("123");
		user.setEmail("hl@sina.com");
		user.setBirthday(new Date());
		boolean b= ud.insert(user);
		System.out.println(b);
	}

}

结果如图

 

从查询结果可以看出,users表中添加了一条name为h1的数据,该数据正是文件 JdbclnsertTest.java中所插入的数据。

 编写测试类FindAllUsersTest,该类用于实现读取users表中所有的数据:

package chapter12.jdbc.example;

import java.util.ArrayList;

public class FindAllUsersTest {
	public static void main(String[] args) {
		UsersDao usersDao = new UsersDao();
		ArrayList<user> list = usersDao.findAll();
		for (int i=0; i< list.size(); i++) {
			System.out.println("第" + (i+1) + "条数据的username的值为:"
					+list.get(i).getUsername());
		}
	}

}

结果如图:

 

编写测试类FindUserByldTest,在该类中实现读取 users表中指定的数据:

package chapter12.jdbc.example;
import chapter12.jdbc.example.UsersDao;
import chapter12.jdbc.example.user;
 
public class FindUserByldTest {
	public static void main(String[] args) {
		UsersDao usersDao = new UsersDao();
		user user = usersDao.find(1);
		System.out.println("id为1的User对象的name值为:"+user.getUsername());
	}

}

结果如图:

 

编写测试类UpdateUserTest,在该类中实现修改users表中数据的操作:

package chapter12.jdbc.example;

import java.util.Date;

import chapter12.jdbc.example.UsersDao;
import chapter12.jdbc.example.user;
 
public class UpdateUserTest {
	public static void main(String[] args) {
		UsersDao usersDao = new UsersDao();
		user user = new user();
		user.setId(4);
		user.setUsername("zhaoxiaoliu");
		user.setPassword("456");
		user.setEmail("zhaoxiaoliu@sina.com");
		user.setBirthday(new Date());
		boolean b=usersDao.update(user);
		System.out.println(b);
	}

}

查询结果如图:

 

编写测试类DeleteUserTest,该类实现了删除users 表中数据的操作:

package chapter12.jdbc.example;

import chapter12.jdbc.example.UsersDao;

public class DeleteUserTest {
	public static void main(String[] args) {
		UsersDao usersDao = new UsersDao();
		boolean b = usersDao.delete(4);
		System.out.println(b);
	}

}

 结果如图:

从图中可以看出,users表中id为4的User对象已被成功删除了。至此,使用JDBC对数据库中数据进行增删改查的操作已经完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaWeb JDBC 的相关文章

  • SQL:删除SQL Server中的重复记录

    我有一个 sql server 数据库 我预先加载了大量数据行 不幸的是 数据库中没有主键 并且表中现在存在重复信息 我不担心没有主键 但我担心数据库中有重复项 有什么想法吗 原谅我是一个sql server新手 嗯 这就是表上应该有主键的
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • 如何返回调用不同数据库中的存储过程的远程数据库名称?

    我在一个 SQL Server 2008 R2 上有许多不同的数据库 为了便于论证 我们将它们称为 DB A DB B 和 DB C 我被要求开发一个将存在于 DB A 上的存储过程 该存储过程将用于删除和创建索引 并在 DB A 的表中存
  • SQL Server 2008中与其他列的排序树

    我有一个使用它实现树的表层次结构ID column 样本数据 People Girls 1 Zoey 1 1 Kate 1 2 Monica 1 3 Boys 2 Mark 2 1 David 2 2 这是使用的顺序层次结构ID列作为排序列
  • 将静态值添加到 SQL 查询的结果

    我想知道是否有一种方法可以通过 SQL 查询来完成此任务 我有一个表 我们称之为 LISTOFTHINGS 它有两个感兴趣的字段 ID 和 NAMEOFTHING 我想要做的是构造一个查询 以便返回的是该查询的结果 SELECT ID NA
  • 将交易数据从时间和状态列标准化为每个状态值的分钟数

    我有一个用户状态变化表 例如 insert time status 1 1 2017 0 00 AVAILABLE 1 1 2017 0 15 BUSY 1 1 2017 0 30 NOT AVAILABLE 1 1 2017 1 30 A
  • 我可以从列 CHECK 约束调用用户定义的函数吗?

    我有一个返回 1 或 0 的用户定义的 SQL 函数 我想从列 CHECK 约束中调用它 是的 SQL Anywhere 没有布尔数据类型 因此您必须编写一个生成 TRUE FALSE 或 UNKNOWN 的谓词 换句话说 如果函数返回 1
  • PostgreSQL 8.3 中不为空且唯一约束的增量字段

    我有一个表 项目 其中有一列 位置 位置具有唯一且非空的约束 为了在位置 x 插入新行 我首先尝试增加后续项目的位置 UPDATE items SET position position 1 WHERE position gt x 这会导致
  • mysql 将 varchar 字段排序为整数

    我的表中有一个 varchar 字段 我想对其进行排序 但我需要将此字段作为整数处理 意思是如果按文本排序 顺序是 19 2 20 但我想得到正确的顺序 2 19 20 谁能帮我 我不知何故没有设法运行查询CAST 我总是得到Error C
  • MySql 5.7 函数 UUID() 默认排序规则 - 非法混合排序规则

    Problem MySQL uuid 默认排序规则与配置连接排序规则不进行比较 我有一个使用字符集创建的数据库 表 字段 utf 8和排序规则utf8 polish ci my cnf 如下 init connect SET NAMES u
  • 如何在同一列中选择多个值?

    我正在尝试在单个列中选择多个值 基本上我希望查询选择列下的所有内容family有价值观Software 1Y XI 1Y and P1 1Y 我正在运行这个查询 SELECT salesorder masterproduct family
  • 如何延长SQL查询的超时时间

    这不是连接超时 因为与数据库的连接正常 问题是我调用的存储过程花费的时间超过 30 秒 并导致超时 该函数的代码如下所示 SqlDatabase db new SqlDatabase connectionManager SqlConnect
  • HQL:从 Eager 表中获取连接集合

    我有四张桌子 RootNode Will return multiple root nodes SubNode Will return one sub node per root node SubNodeChildren1 Will ret
  • 检测 MySQL 中的 utf8 损坏字符

    我有一个数据库 其中有一堆损坏的 utf8 字符分散在多个表中 字符列表不是很广泛 AFAIK 修复给定的表非常简单 update orderItem set itemName replace itemName 但我无法找到检测损坏字符的方
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • SQL 未插入到 Yii 中具有关系的表中

    我正在尝试创建一个用户 但所有值都没有插入到数据库中 Systems user 表与partys 表有关系 因为party id 是sytems user 的主键 没有插入任何内容 甚至没有错误 它只是返回到 创建 页面 这是我的架构 Ta
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • CS0246 找不到类型或命名空间名称“ErrorViewModel”(您是否缺少 using 指令或程序集引用?)

    我收到 CS0246 错误代码 我正在做一个 MVC net core 项目 我正在将 Razor 合并到我的 C 代码中 我在进行构建时收到此错误 我在最后一行收到错误 有人能帮我解决这个问题吗 global Microsoft AspN

随机推荐

  • 12000字解读白小T:成立1年创收1亿,单品类策略如何引爆流行?

    主笔 西兰卡普 研究员 白婷丹 Leo 西兰卡普 陆压 出品 增长黑盒研究组 研究支持 久谦中台 飞瓜数据 App Growing 前言 最近两年 当我们与新消费品牌创业者及操盘手探讨服饰赛道最新风向时 大家高频提及的不外乎是Bosie A
  • kubernetes Ingress资源管理

    k8s 对外服务之 Ingress Ingress 简介 service的作用体现在两个方面 对集群内部 它不断跟踪pod的变化 更新endpoint中对应pod的对象 提供了ip不断变化的pod的服务发现机制 对集群外部 他类似负载均衡器
  • 关于STM32的IAP与APP互相跳转

    关于STM32的IAP与APP互相跳转 之前做了一个不带系统的IAP与APP互相跳转 在网上找了资料后 很顺畅就完成了 后来在IAR集成开发环境下 IAP无系统 APP用UCOS系统做互相跳转出现了很多问题 现将IAP学习过程和实际遇到问题
  • 柏林噪声(Perlin Noise) 介绍及应用

    什么是噪声 信号处理中一般指原信号中不存在的无规则的额外信号 在处理过程中一般是我们不需要的 需要被处理掉的 噪声和信号本身无关 其频率和强弱变化无规律 噪声有什么用处 就如上面提到的那样 噪声是干扰原信号的存在 在信号处理中 我们一般都希
  • Spring基础总结

    Spring基础总结篇 1 获取 Spring 的 IOC 容器 并根据 bean 的 id 获取注入对象 1 通过 BeanFactory 获取 Bean 2 通过 ApplicationContext 应用上下文获取 Bean 2 Be
  • 玩转Mysql系列 - 第8篇:详解排序和分页(order by & limit),及存在的坑

    这是Mysql系列第7篇 环境 mysql5 7 25 cmd命令中进行演示 代码中被 包含的表示可选 符号分开的表示可选其一 本章内容 详解排序查询 详解limit limit存在的坑 分页查询中的坑 排序查询 order by 电商中
  • RedditVideoMakerBot 视频制作机器人自动生成视频搭建教程

    https github com elebumm RedditVideoMakerBot搭建教程 RedditVideoMakerBot视频制作机器人 有些在抖音 快手上的视频获得了数百万的观看次数 你仔细分析他们的视频 他们唯一做的原创事
  • 修改pip国内源

    修改pip国内源 修改源方法 临时使用 可以在使用pip的时候在后面加上 i参数 指定pip源 例如 pip install scrapy i https pypi tuna tsinghua edu cn simple 永久修改 linu
  • 【计算机视觉】直接线性变换(DLT)求解P矩阵(3 加入坐标的归一化)(附MATLAB代码)

    引言 本来上一篇帖子就已经达到了精度要求 不过经过同学提醒才发现老师的作业要求中有要求考虑归一化 emmmmm 坐标归一化 进行归一化的必要性和方法参考 计算机视觉中的多视几何 中的描述 上面的是从 2D到2D的结论 不过与从3D到2D的结
  • el-table添加行/单元格样式

    文章目录 一 官方文档释义 1 row style cell style 2 row class name cell class name 二 row style cell style的使用 1 row style 使用Object 使用F
  • 前端基础第一天:HTML常用标签知识点

    学习目标 理解 相对路径三种形式 应用 排版标签 文本格式化标签 图像标签 链接 相对路径 绝对路径的使用 1 HTML常用标签 首先 HTML和CSS是两种完全不同的语言 我们学的是结构 就只写HTML标签 认识标签就可以了 不会再给结构
  • antdv表格的rowSelection设置单选禁用选中等

    这个问题在项目中已经遇到过两次了 一次为表格想实现单选 禁用等 另一次则是今天 遇上需求需要在初始化表格的时候默认选中项目 鉴于自己的记性太差 记录记录 万一哪天又遇到这个问题心血来潮来翻了一翻博客 那问题就解决了 犹记得实现表格项单选和禁
  • 决策树(信息熵、增益率、基尼指数)

    目录 前言 一 决策树是什么 二 实验过程 1 选择数据集中各个决策属性的优先级 1 1信息熵 1 2增益率 1 3基尼指数 2 决策树的构造 2 1创建决策树 2 2准备数据 2 3 读取和保存决策树 2 4绘制决策树 3运行结果 3 1
  • 升级Linux中的默认JDK的版本

    我用的Linux是 红帽企业级Linux AS版 TLF SOFT Redhat Enterprise Linux AS V4 0 UPDATE 7 DVD 因工作需要 将Linux中默认安装的Jdk 版本为1 4 进行升级 将升级的经验和
  • BigDecimal的常用方法

    一 BigDecimal概述 Java在java math包中提供的API类BigDecimal 用来对超过16位有效位的数进行精确的运算 双精度浮点型变量double可以处理16位有效数 但在实际应用中 可能需要对更大或者更小的数进行运算
  • Python学习笔记(基础篇)

    目录 一 Python编程基础 1 1print 1 2 input 1 3 ASC 码 1 4注释 二 数据类型与基本运算符 2 1变量 2 2数值类型 整数 浮点数 复数 2 3字符串 2 4布尔类型 2 5数据类型转换 2 6算数运算
  • 【mysql】mysql group by分组后取每组的最小值

    方法一 非严格模式下 group by后 会取分组后多个create time 的其中一个 由于我们的 create time 时间是有序的 会取第一条 如果是无序字段 很可能取的顺序会有问题 可以在create time 前面加上grou
  • 苹果系统 macOS Mojave 10.14.4上安装 Ubuntu 18.04 双系统

    macOS Mojave 10 14 4 安装Ubuntu 18 04 双系统 0 准备工作 系统情况 1 制作Ubuntu安装盘 U盘 2 硬盘分区 3 安装Ubuntu 4 正常使用GRUB 5 调整Ubuntu设置 2019 07 1
  • Tomcat开启远程调试端口

    部署环境 Linux 亲测成功 tomcat7 bin startup sh的文件开头位置添加 declare x CATALINA OPTS server Xdebug Xnoagent Djava compiler NONE Xrunj
  • JavaWeb JDBC

    1 实现第一个JDBC程序 在MySQL中创建一个名称为jdbc的数据库 然后在该数据库中创建一个users表 创建 数据库和表的SQL语句如下所示 CREATE DATABASE jdbc USE jdbc CREATE TABLE us