JDBC

【摘要】 一、JDBC是什么?

JDBC(Java Data Base Connectivity) 是 Java 访问数据库的标准规范,程序员使用统一的代码,便可以访问到不同的数据库。

二、普通方法使用JDBC连接数据库
public class jdbc { public static void main(String[] args) throws Except…

一、JDBC是什么?

JDBC(Java Data Base Connectivity) 是 Java 访问数据库的标准规范,程序员使用统一的代码,便可以访问到不同的数据库。

二、普通方法使用JDBC连接数据库

public class jdbc { public static void main(String[] args) throws Exception{ // 1.注册驱动(可以省略从jdbc3开始) Class.forName("com.mysql.jdbc.Driver"); // 2.获取连接 connection连接对象 String url="jdbc:mysql://localhost:3306/db1?characterEncoding=UTF-8"; Connection connection=DriverManager.getConnection(url,"root","root"); // 3.获取语句执行平台 Statement Statement statement=connection.createStatement(); //4.传入需要执行的sql语句 String sql="select  * from user "; //(ResultSet是结果集对象,只有查询的时候会使用到) ResultSet resultSet=statement.executeQuery(sql); // 处理结果集对象 用resultSet //while循环,遍历获取resultSet中的数据 while (resultSet.next()){ int id= resultSet.getInt("id"); String name= resultSet.getString("name"); System.out.println(id+name); } //关闭流,先开启的后关闭,跟栈的操作机制是一样的 resultSet.close(); statement.close(); con.close(); }

}
  
 

三、使用JDBC工具类连接数据库并进行一些列操作

JDBC工具类(JDBCUtils)

import java.sql.*;
import static java.lang.Class.forName;

public class JDBCUtils { // 1.将连接信息定义为 字符串常量 public static final String DRIVERNAME = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/db1?characterEncoding=utf-8"; public static final String User = "root"; public static final String PASSWORD = "root"; // 2.静态代码块(静态代码块是一定可以执行的)(注册驱动是可以省略的因此该代码块理论上来说是可以省略的) static { try { // 注册驱动 Class.forName(DRIVERNAME); } catch (ClassNotFoundException e) { e.printStackTrace(); } } //3.获取连接的静态方法 public static Connection getConnection(){ try { //获取连接对象并返回 Connection connection = DriverManager.getConnection(URL, User, PASSWORD); return connection; } catch (SQLException e) { e.printStackTrace(); return null; } } //关闭资源的方法(重载方法,执行查询操作的时候关闭的内容需要多一个流) public static void close(Connection connection, Statement statement){ if(connection !=null && statement !=null ){ try{ statement.close(); connection.close(); }catch (SQLException e){ e.printStackTrace(); } } } public static void close(ResultSet resultSet,Connection connection, Statement statement){ if(connection !=null && statement !=null && resultSet !=null ){ try{ resultSet.close(); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } } }
}

  
 

通过JDBCUtils登录数据库

public class Test03 { public static void main(String[] args) throws SQLException { //获取连接 Connection connection= JDBCUtils.getConnection(); // 使用?占位符的方式来设置参数 String sql="select * from user where name=? and password=?"; PreparedStatement preparedStatement=connection.prepareStatement(sql); //3.获取用户输入的用户名和密码 Scanner sc=new Scanner(System.in); System.out.println("请输入用户名:"); String name=sc.nextLine(); System.out.println("请输入密码:"); String pass=sc.next(); // 4.设置参数 使用setXXX(占位符的位置(整数),要设置的值)的方法设置占位符的参数 preparedStatement.setString(1,name); //设置第一个问号值为name preparedStatement.setString(2,pass); //设置第二个问号值为pass // 5.执行查询 ResultSet resultSet=preparedStatement.executeQuery(); if(resultSet.next()){ System.out.println("登录成功"+name); }else{ System.out.println("登陆失败!"); }
		// 6.关闭流操作(注意执行查询操作当中关闭流的时候多一个参数resultSet)
		JDBCUtils.close(connection,preparedStatement,resultSet); }
}

  
 

通过JDBCUtils向数据库中插入数据

public class Test04 { public static void main(String[] args) throws SQLException {
		//获取连接 Connection connection = JDBCUtils.getConnection(); // 使用?占位符的方式来设置参数 String sql="insert into user values (?,?);"; PreparedStatement preparedStatement = connection.prepareStatement(sql); Scanner sc=new Scanner(System.in); System.out.println("请输入用户名:"); String name=sc.nextLine(); System.out.println("请输入密码:"); String pass=sc.next(); //设置参数 使用setXXX(占位符的位置(整数),要设置的值)的方法设置占位符的参数 preparedStatement.setString(1, name); preparedStatement.setString(2, pass); //  执行插入 System.out.println(sql);
		// 更新数据 preparedStatement.executeUpdate(); System.out.println("插入成功!"); //关闭流 JDBCUtils.close(connection,preparedStatement); }
}
  
 

文章来源: blog.csdn.net,作者:大晓吖,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_51483932/article/details/115739517

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享