package testJDBC;
import java.sql.*;
/**
- @Author 小猪上天
- @Email [email protected]
- @Data 2019/8/28 14:27
- @Version V1.0
- @description JDBC 查询数据库示例
*/
public class JDBCdemo1 {public static void main(String[] args){
Connection conn = null;
Statement statement = null;
ResultSet resultSet = null;
//1.注册数据库驱动
try {Class.forName("com.mysql.jdbc.Driver"); //加载一个类到内存中,该类中有一静态代码块,该代码块中有注册驱动的代码 //静态代码块伪代码如下:DriverManager.registerDriver( new Driver() ) //2.获取数据库连接 String url = "jdbc:mysql://localhost:3306/" + "jt_db" + "?characterEncoding=utf-8"; /** * jdbc:mysql: 协议名 * localhost:3306 主机地址及端口 * jt_db 数据库名 * ?characterEncoding=utf-8 ?+参数 */ String user = "root"; //数据库连接用户名 String passWord = "123456"; //数据库连接密码 conn = DriverManager.getConnection(url, user, passWord); //3.获取传输器 statement = conn.createStatement(); /** * Statement s = con.createStatement(); * PreparedStatement p = con.preparedStatement(); * *PreparedStatement是Statement的子类 * 可以使用占位符,是预编译的,批处理比Statement效率高 * * 例: * String sql = "update user set password=? where username=?"; * preparedStatement = conn.prepareStatement(sql); * //preparedStatement.setString(第N个问号,代表的变量); * preparedStatement.setString(1,password); * preparedStatement.setString(2,username); * preparedStatement.executeUpdate(); * */ //4.执行sql语句,返回执行结果 String sql = "select * from account"; /** * executeQuery(); 用于产生单个结果集的语句,被用来执行 SELECT 语句,返回值是一个ResultSet结果集对象,其中包括sql查询的结果 * executeUpdate(); 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,返回一个int值,记录受影响记录行数 */ resultSet = statement.executeQuery(sql); //5.处理结果 /** * ResultSet 结果集对象 * ResultSet 是执行查询类的sql语句后返回的结果集对象 其中包括sql查询的结果 * a.遍历数据行的方法 * next() – 使指向数据行的索引向下移动一行 * b.获取数据的方法 * getInt(int columnIndex) * getInt(String columnLable) * getString(int columnIndex) * getString(String columnLable) * getDouble(int columnIndex) * getDouble(String columnLable) * getObject(int columnIndex) * getObject(String columnLable) */ while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); double money = resultSet.getDouble("money"); System.out.println(id + ":" + name + ":" + money); } }catch (Exception e){ e.printStackTrace(); }finally { //6.释放资源 //越晚获取越先释放!! //最好将释放资源代码放在finally里 if(resultSet!=null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } finally { resultSet = null; } } if(statement!=null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } finally { statement = null; } } if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } finally { conn = null; } } }
}
}
原文地址:https://blog.51cto.com/13886506/2433887
时间: 2024-09-30 11:49:23