JDBC(Java DataBase Connectivity)的基本操作------修改和查询

33 篇文章 0 订阅
22 篇文章 0 订阅

修改用户信息 

​import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Up {

	public static void main(String[] args) {
		Statement statement = null; // try语句和finally语句属于不同的代码块,需提升变量的适用范围
		Connection connection = 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 = "update user_info set user_name='admin',password='admin' where user_name='1'";
			if (statement.executeUpdate(sql) > 0) {
				System.out.println("修改成功");
			} else {
				System.out.println("修改失败");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {

			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}
​

方法步骤大致与前面的添加和删除一致:

运行结果为:修改成功,然后查看数据库:

 

查询用户信息

​import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Query {

	public static void main(String[] args) {

		Statement statement = null; // try语句和finally语句属于不同的代码块,需提升变量的适用范围		
                Connection connection = 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循环获得查询到的数据
			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);
			}
		} 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();
			}
		}
	}
}​

运行结果:

总结:

1.与添加、删除、修改操作相比,查询操作需要使用到ResultSet对象,释放资源时也需要先释放对应的资源(因为关闭的顺序同样需要遵守后开先关的原则(否则有可能出现异常)类似于栈的思想(先进后出)

2.查询,调用Statement的executeQuery(sql)方法用于产生单个结果集的语句,该方法会返回一个ResultSet对象

 修改,调用的statement的Statement的executeUpdate(sql)方法该方法返回的是int值,指受影响的行数(即更新计数)

3.在查询的过程中,有可能是查询表内的多条数据,所以需要while循环遍历所有数据。

resultSet.next()方法就可以指向符合条件的下一个数据,如果下一条数据存在返回true,否则返回false。

4.resultSet.getString()方法的使用是与数据库中表的数据类型相一致的,因为该数据库表中id,user_name,password都是字符串的,如果是数字,则使用getInt()。

5.resultSet调用getString()方法时需要传入表的列名,也可以传入表中列的索引(索引从1开始 ),结果不变

String id = resultSet.getString(1);                   ---------------   String id = resultSet.getString("id");

String userName = resultSet.getString(2);     ---------------   String userName = resultSet.getString("user_name");

String password = resultSet.getString(3);      ---------------   String password = resultSet.getString("password");

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值