前言:
JDBC编程6步:
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接( 表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道)
第三步:获取数据库操作对象(专门执行sq1语句的对象)
第四步:执行SQL语句(DQL DML ....)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源( 使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)
我们在使用JDBC连MySql的时候可以发现写重复的代码是非常痛苦的,所以我这里把它封装成一个工具类进行使用,简化代码!
编写配置文件信息:
注意:最好将jdbc.properties配置文件放在项目的src目录下,以便能够正常通过代码找到
#编写配置文件信息
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/donglijiedian
name=root
passwd=zhixi158
封装:
import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JUtil { private static String driver = null; private static String url = null; private static String name = null; private static String passwd = null; //1、注册驱动(只需要一次) static { try { //1、获取到流文件 InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties"); //2、加载流文件 Properties properties = new Properties(); properties.load(is); driver = properties.getProperty("driver"); url = properties.getProperty("url"); name = properties.getProperty("name"); passwd = properties.getProperty("passwd"); //3、注册驱动 Class.forName(driver); } catch (Exception e) { e.printStackTrace(); } } //4、获取连接 public Connection getCollection() throws SQLException { return DriverManager.getConnection(url, name, passwd); } //5、关闭流 public void close(Connection conn, Statement s, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (s != null) { try { s.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
测试:
import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class 包装类测试文件 { public static void main(String[] args) { //1、注册驱动(会执行静态代码块) JUtil util = new JUtil(); Connection conn = null; Statement st = null; ResultSet rs = null; try { //2、获取连接 conn = util.getCollection(); //3、获取数据库操作对象 st = conn.createStatement(); //4、执行SQL String sql = "select * from emp"; rs = st.executeQuery(sql); //5、处理查询结果集 while (rs.next()) { String s1 = rs.getString(1); String s2 = rs.getString(2); String s3 = rs.getString(3); String s4 = rs.getString(4); String s5 = rs.getString(5); String s6 = rs.getString(6); String s7 = rs.getString(7); String s8 = rs.getString(8); System.out.println(s1 + " " + s2 + " " + s3 + " " + s4 + " " + s5 + " " + s6 + " " + s7 + " " + s8); } } catch (Exception e) { e.printStackTrace(); } finally { //6、释放资源 util.close(conn, st, rs); } } }
可以看到正常连接数据库执行代码!