新建工具类
package cn.tedu.demo;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;
/**
驱动的加载创建连接关闭连接 */ public class JDBCUtil { private static String className = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/db01?&characterEncoding=utf8"; private static String user = "root"; private static String password = "root"; /* * 静态代码块:static */ static { //加载驱动 try { Class.forName(className); } catch (ClassNotFoundException e) { System.out.println("驱动加载失败"); e.printStackTrace(); } } /** * 创建连接 * 方法的设计: * 返回值类型 * 参数列表 * @return * @throws SQLException */ ```java public static Connection getConn() throws SQLException { Connection conn = DriverManager.getConnection(url, user, password); return conn; } /** * 关闭连接 * @throws SQLException * */ // rs,ps 都是自己定义的 public static void close(ResultSet rs,PreparedStatement ps,Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } //测试代码 public static void main(String[] args) throws Exception { Connection conn = JDBCUtil.getConn(); System.out.println(conn); } }数据库与java的连接
package cn.tedu.demo;
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Scanner;
/**
预处理语句对象,是ststement接口的子接口可以避免sql注入 sql注入:由于用户的输入改变了程序中sql语句的本意 增强sql语句的可读性 使用:如果我们在写sql语句时 select id,username,password,email from t_user where username = ? and password = ?*/
public class Demo04 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入账号:"); String username = sc.nextLine(); System.out.print("请输入密码:"); String password = sc.nextLine(); ResultSet rs =null; PreparedStatement ps =null; Connection conn = null; try { conn = JDBCUtil.getConn(); String sql = "select id,username,password,email from t_user" + " where username = ? and password = ?"; ps = conn.prepareStatement(sql); //使用占位符? 设置参数 ps.setString(1, username); ps.setString(2, password); //执行sql语句 rs = ps.executeQuery(); if (rs.next()) { System.out.println("登录成功...3秒后进入"); }else { System.out.println("账号或密码错误,请重新输入..."); } } catch (Exception e) { e.printStackTrace(); }finally { JDBCUtil.close(rs,ps,conn); } } }