【Mysql】Java中对Mysql数据库的增删改查、Java的System类

这部分也是所谓JDBC、网站数据源的内容,把名字弄得很高深似得,实际上只是Java中对Mysql数据库的增删改查的内容。非常简单,之前写了这么多Mysql的内容,没好好总结一下,实在是不应该。今天就实现一个Java中对Mysql数据库的增删改查,随便带点Java取出当前系统的系统名与系统时间的知识,完成一个还算有点意思的小例子。

一、基本目标

首先,在Mysql数据库中有一张名为testtable的空表,id为自增列,username,class都是文本列,但是class里面都存放数字,也就是整形,我们以后在Java中取出这一列要当作整形处理。

每次执行程序,程序都会向里面的username插入当前的系统名(不会变的)与当前系统的时分秒(会变的),毫秒、年月日就不插入了,因为超出整形的范围,这也不是什么问题,但是为了避免程序过于复杂,就不引入《【Java】自从有了BigInteger,我再也不用担心要处理的数据有多大了》(点击打开链接)的内容了。

二、制作过程

1、首先,Java要连接Mysql数据库,不像asp链接Access,c#链接SQL Server那样,都是自带好的。毕竟那是人家微软的配备,虽然我们还是经常使用windows来编程、开发,但是我们还要从网上下载一个mysql-connector-java-5.1.32.jar的东西,这个东西在Mysql的官网已经无从可考了,里面没有跨平台的版本,就一个Windows版本的msi安装文件,各位还是网上搜一下mysql-connector-java吧,版本号不重要,就没见过代码写正确还连接失败的。

2、然后,在你的工程目录下面新建一个lib文件夹,把这个mysql-connector-java-5.1.32.jar放进去,不叫这个名字也可以,但是据说业内基本都这样弄,某些公司不这样甚至还会弄给上面那个已经越来越不会写代码的经理骂的

3、之后,右击你的工程选择“属性”

4、在Java Build Path的标签页,选择Add JARs...,在lib文件夹中找到刚才放进来的mysql-connector-java-5.1.32.jar,之后点击确定就可以开始愉快地写代码了

5、首先你要在开头引入下面的东西:

import java.sql.*;
import java.text.*;
import java.util.*;
import java.util.Date;

为了能够获取当前的时间,同时下面也使用到ArrayList动态数组,这东西是什么,请翻我之前的《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接),必须在文件头引入import java.util.*;,由于sql类里面同样有Date()这个类,因此必须多加一句import
java.util.Date;消除歧义,import java.text.*;同样是为了之后对系统当前的时间处理的时候使用了,不然只能获取从1970年元旦到现在的毫秒数

6、之后写一个数据库链接类Dbcon

class Dbcon {
	// 此处连接数据库,独立开一个类,以后操作数据库的每次连接就不用写这么多
	public Connection getCon() {
		Connection con = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			// 其中test是我们要链接的数据库,user是数据库用户名,password是数据库密码。
			// 3306是mysql的端口号,一般是这个
			// 后面那串长长的参数是为了防止乱码,免去每次都需要在任何语句都加入一条SET NAMES UTF8
			String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useOldAliasMetadataBehavior=true";
			String user = "root";
			String password = "root";
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}
}

7、之后就是整个程序的核心如何操作数据库:

public class JavaDbTest {
	public static void main(String[] args) {
		//这里是数据库的链接
		Connection con = new Dbcon().getCon();
		String sql = null;
		// 这样能够获取当前操作系统的名字

		//数据库插入操作的开始,修改与查询的道理一样,就不做了,请修改下面sql字符串中的sql语句
		String username = System.getProperty("os.name");
		// 这样能够获取当前的时间,但必须在文件头引入import java.util.*;
		// 由于sql类里面同样有Date()这个类,因此必须多加一句import java.util.Date;消除歧义
		String classString = new SimpleDateFormat("hhmmss").format(
				new Date(System.currentTimeMillis())).toString();
		sql = "INSERT INTO testtable(username,class) VALUES ('" + username
				+ "','" + classString + "') ";
		// 注意:操作数据库的语句Insert into,update与查询数据库的语句select在Java的语句是不同的
		// 操作数据库为con.createStatement().execute(sql);
		// 查询数据库为rs=con.prepareStatement(sql).executeQuery();且查询结果必须被ResultSet对象rs接住
		try {
			con.createStatement().execute(sql);
			// 弄完之后人走带门
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		sql = "select * from testtable";
		ResultSet rs = null;
		// 这几个存放查询结果的ArrayList一定要放在try-catch的外围,注意变量有效范围
		ArrayList<Integer> idArraylist = new ArrayList<Integer>();
		ArrayList<String> usernameArraylist = new ArrayList<String>();
		ArrayList<Integer> classArraylist = new ArrayList<Integer>();
		try {
			rs = con.prepareStatement(sql).executeQuery();
			// 这个循环的结果是把整个查询结构读出来
			while (rs.next()) {
				// 取出各个列打印出来
				idArraylist.add(rs.getInt("id"));
				usernameArraylist.add(rs.getString("username"));
				// 纵使class一列全是数字,但是由于这一列用的是varchar来存储
				// 如果要把class当作整形处理,因此不可用rs.getInt,只能先以String取出来再擦写为整形
				rs.getString("class");
				classArraylist.add(Integer.parseInt(rs.getString("class")));
			}
			// 弄完之后人走带门
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("id username class");
		for (int i = 0; i < idArraylist.size(); i++)
			System.out.println(idArraylist.get(i) + " "
					+ usernameArraylist.get(i) + " " + classArraylist.get(i));
	}

}

8、至此,整个程序连起来就是这样的:

package test;

import java.sql.*;
import java.text.*;
import java.util.*;
import java.util.Date;

class Dbcon {
	// 此处连接数据库,独立开一个类,以后操作数据库的每次连接就不用写这么多
	public Connection getCon() {
		Connection con = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			// 其中test是我们要链接的数据库,user是数据库用户名,password是数据库密码。
			// 3306是mysql的端口号,一般是这个
			// 后面那串长长的参数是为了防止乱码,免去每次都需要在任何语句都加入一条SET NAMES UTF8
			String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useOldAliasMetadataBehavior=true";
			String user = "root";
			String password = "root";
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}
}

public class JavaDbTest {
	public static void main(String[] args) {
		//这里是数据库的链接
		Connection con = new Dbcon().getCon();
		String sql = null;
		// 这样能够获取当前操作系统的名字

		//数据库插入操作的开始,修改与查询的道理一样,就不做了,请修改下面sql字符串中的sql语句
		String username = System.getProperty("os.name");
		// 这样能够获取当前的时间,但必须在文件头引入import java.util.*;
		// 由于sql类里面同样有Date()这个类,因此必须多加一句import java.util.Date;消除歧义
		String classString = new SimpleDateFormat("hhmmss").format(
				new Date(System.currentTimeMillis())).toString();
		sql = "INSERT INTO testtable(username,class) VALUES ('" + username
				+ "','" + classString + "') ";
		// 注意:操作数据库的语句Insert into,update与查询数据库的语句select在Java的语句是不同的
		// 操作数据库为con.createStatement().execute(sql);
		// 查询数据库为rs=con.prepareStatement(sql).executeQuery();且查询结果必须被ResultSet对象rs接住
		try {
			con.createStatement().execute(sql);
			// 弄完之后人走带门
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		sql = "select * from testtable";
		ResultSet rs = null;
		// 这几个存放查询结果的ArrayList一定要放在try-catch的外围,注意变量有效范围
		ArrayList<Integer> idArraylist = new ArrayList<Integer>();
		ArrayList<String> usernameArraylist = new ArrayList<String>();
		ArrayList<Integer> classArraylist = new ArrayList<Integer>();
		try {
			rs = con.prepareStatement(sql).executeQuery();
			// 这个循环的结果是把整个查询结构读出来
			while (rs.next()) {
				// 取出各个列打印出来
				idArraylist.add(rs.getInt("id"));
				usernameArraylist.add(rs.getString("username"));
				// 纵使class一列全是数字,但是由于这一列用的是varchar来存储
				// 如果要把class当作整形处理,因此不可用rs.getInt,只能先以String取出来再擦写为整形
				rs.getString("class");
				classArraylist.add(Integer.parseInt(rs.getString("class")));
			}
			// 弄完之后人走带门
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("id username class");
		for (int i = 0; i < idArraylist.size(); i++)
			System.out.println(idArraylist.get(i) + " "
					+ usernameArraylist.get(i) + " " + classArraylist.get(i));
	}

}
时间: 2025-01-02 14:37:00

【Mysql】Java中对Mysql数据库的增删改查、Java的System类的相关文章

Django中ORM对数据库的增删改查操作

什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在Django中定义一个类,就是在数据库中创建一张表格.在Django中实例化一个类的对象,就是在数据库中增加了一条记录.在Django中删除一个对象,就是在数据库中删除了一条记录.在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值.在django中遍历查询对象的属性值,就是在数据库中查询记录的值.

Sqlserver 实际开发中常见的数据库操作增删改查----增

注意我说的常见查询,可不是简单到一个表得增删改查,做过实际开发得人都知道,在实际开发中,真正牵扯到一个表得增删改查只能说占很小得一部分,大多都是好几个表的关联操作的. 下面我就说一下我在实际开发中经常用到得一些增删改查方式.(首先我还要说一下,就是我虽然能写,但是我不知道这种查询方式叫什么类型查询,毕竟数据库这块以前都没干过,做.net开发也就一年左右,大家看我写的博客也会知道,以前搞前端U3D游戏开发的,不接触数据库,取数据调后台接口就行了,其他不用管.所以没做.net前,我也就是会大学时候学

Sqlserver 实际开发中常见的数据库操作增删改查----删

--我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id int IDENTITY(1,1) NOT NULL,--学校id 自增量 YuanXiName varchar(50) null, --院系名字 ) create TABLE [dbo].Class ( Id int IDENTITY(1,1) NOT NULL,--班级id 自增量 YuanXiID int null,--院系id ClassName varchar(50) null --班级

Sqlserver 实际开发中常见的数据库操作增删改查----改

--我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id int IDENTITY(1,1) NOT NULL,--学校id 自增量 YuanXiName varchar(50) null, --院系名字 ) create TABLE [dbo].Class ( Id int IDENTITY(1,1) NOT NULL,--班级id 自增量 YuanXiID int null,--院系id ClassName varchar(50) null --班级

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

Java通过JDBC进行简单的增删改查(以MySQL为例)

Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作   (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,

用SpringBoot+MySql+JPA实现对数据库的增删改查和分页

使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页      JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.  使用Springboot和jpa对数据库进行操作时,能够大大减少我们的工作量,在jpa中,已经在底层封装好了增删查的功能和sql语句,可以使我们进行快速开发 项目流程 一.新建一个项目 二.配置文件 #数据源配置 spring.dat