JDBC连接MySQL数据库并实现简单功能

1、在数据库中建立表格(table)

简单说说MySQL :一个数据库软件,实质是数据库管理系统(不够准确的表达),作用是可以创建n个数据库,每个数据库里又可以创建n个表

use test;//使用test数据库
create table user_info(//在test数据库中创建一张,名为user_info的表,表中设置id,user_name和password属性
	id char(36),
	user_name varchar(12) unique,//unique约束user_name字段的唯一性
	password varchar(15)
)
//此处需注意char和varchar的区别:都是用于保存字符串;如果表中字段长度始终相同,则使用char类型,否则使用varchar类型。

2、使用JDBC实现查询功能

代码示例如下

	public static void main(String[] args) {
		//在finally代码块中需要关闭资源[.close()方法],在此处定义变量而不是在try代码块中,目的是提升变量的作用范围,减少重复代码
		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;

		try {
			Class.forName("com.mysql.jdbc.Driver");//加载驱动
		    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");//2、建立连接
		    statement = connection.createStatement();//创建SQL语句对象
		    String sql = "select * from user_info";
		    resultSet = statement.executeQuery(sql);
		    while (resultSet.next()) {
				String id = resultSet.getString("id");
				String name = resultSet.getString("user_name");
				String password = resultSet.getString("password");
				System.out.println(id+","+name+","+password);//使用while循环遍历结果集
			}//while循环每执行一次,遍历一条数据
		} catch (Exception e) {
			e.printStackTrace();
		}finally {//释放资源
			//注意:此处释放资源的顺序必须为ResultSet、Statement、Connection,因为如果先释放Connection,那么ResultSet和Statement占用的资源就会得不到释放。
			try {
				if (resultSet!=null) {//此处需要判断对象是否为空,因为如果在赋值之前该对象为空,不加if判断的话,此时会报空指针异常的错误。
					resultSet.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (statement!=null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection!=null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

3、JDBC实现添加,删除和修改

添加部分代码示例:

		Connection connection=null;
		Statement statement=null;
		ResultSet resultSet=null;
		try {
			Class.forName("com.mysql.jdbc.Driver");//加载驱动
			connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root","root");//建立连接
			statement= connection.createStatement();//创建sql语句对象
			String sql = "select*from user_info";
			resultSet=statement.executeQuery(sql);
			while(resultSet.next()) {//"指针"跳一下,判断是否有数据
				String id=resultSet.getString("id");
				String userName=resultSet.getString("user_name");
				String password=resultSet.getString("password");
				System.out.println(id+","+userName+","+password);//while循环每执行一次,遍历一条数据
			}
		} catch (Exception e) {			
			e.printStackTrace();
		}finally {//释放资源  依然要注意顺序
			try {
				if (resultSet!=null) {
					resultSet.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
			try {
				if (statement!=null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
			try {
				if (connection!=null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

删除和修改功能的部分代码:

//		实现删除的SQL语句为:
		delete * from user_info;//此语句为删除表中所有数据
		delete * from user_info where name='tom';//此语句为删除表中姓名是admin的所有数据
//		实现修改的SQL语句为:
			update user_info set id='42b56e41-ebcf-47ae-a636-569ce02f7c73',user_name='tom',password='666666';

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值