/**JDBC课程2--实现Statement(用于执行SQL语句) * 1.Statement :用于执行SQL语句的对象; * 1): 通过Connection 的createStatement()方法获取; * 2): 通过executeUpdate(sql) 可以执行SQL语句; * 3): 通过传入的sql 可以是insert、update或者delete ;但不能使select; * 2.connection 和 Statement 都是服务器和应用程序的连接资源,需要及时关闭; * 需要在finally 中最终关闭. * 3.关闭的顺序,先关闭后获取的,即先关闭Statement ,后关闭connection */ 1.try/catch 代码块里的变量进行初始化成null 即可;
封装好的 testStatement 程序代码:
public class testStatement { /* 一个通用的版本的三个方法: 包括insert、update、delete */ @Test public void test01(){ //测试JDBCTools的工具类,包括insert、update、delete update3("update customers set name='Alix' where id='1' "); //成功 update3("INSERT INTO customers(NAME,EMAIL,BIRTH)" +" VALUES('name4','WWW.ssssss.com','2008-9-8');"); //成功 update3("delete from customers where id=2 "); //成功 } public void update3(String sql){ Connection conn=null; Statement statement=null; try { conn=JDBCTools.getConnection(); //调用静态类,获取连接 statement=conn.createStatement(); //调用静态类,执行sql语句 statement.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.release(statement, conn); } } }
操纵JDBC的工具类
/**操纵JDBC的工具类, 其中封装了一些工具方法 * Version 1 : getConnection() : 通过读取配置文件从数据库服务器获取一个连接; * Version 2 : release() : 关闭数据库资源的 */ public class JDBCTools { public static void release(Statement statement,Connection conn){ if(statement!=null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e2) { e2.printStackTrace(); } } } public static Connection getConnection() throws Exception{ //1.准备数据库的连接的四个字符串 String driverClass=null,jdbcUrl=null,user=null,password=null; //jdbc:mysql:///books ;也可以将localhost省略掉! //2.读取类路径下的jdbc.properties 文件 InputStream in= JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties =new Properties(); properties.load(in); driverClass =properties.getProperty("driver"); jdbcUrl=properties.getProperty("jdbcUrl"); user = properties.getProperty("user"); password = properties.getProperty("password"); //3.加载数据库驱动程序(注册驱动),driver对应的实现类中有注册驱动的静态代码块 // Class.forName(driverClass); // //或这么手动加载,也可以注册多个数据库连接的代码块 //DriverManager.registerDriver( Class.forName(driverClass).newInstance()); //4.通过DriverManager 的getConnection()方法获取数据库连接。 Connection connection=DriverManager.getConnection(jdbcUrl,user,password); System.out.print(connection); //com.mysql.jdbc.JDBC4Connection@19e1023e return connection; } }
mysql数据库books 的信息:
jdbc.properties 同一src资源库下
driver = com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/books user=root password=123456